VR-Moving: Asesor Experto para MetaTrader 5

Mike 2018.06.16 19:15 26 0 0
Archivos adjuntos

Idea por: Vladimir Pastushak.

Código MQL5 por: Vladimir Karputov.

Este Asesor Experto (EA) opera utilizando el indicador Media Móvil, con todas las funciones de preparación y trading implementadas en la clase de trading CMoving, que se encuentra en un archivo separado llamado Moving.mqh.


Parámetros de Entrada

  • número mágico - el identificador único del EA;
  • Lots - volumen de la posición (el volumen de la posición debe ser mayor a cero o el tamaño de riesgo mayor a cero);
  • Riesgo - riesgo en porcentaje del margen libre por operación (el volumen de la posición debe ser mayor a cero o el tamaño de riesgo mayor a cero);
  • MA: período - indicador Media Móvil: marco de tiempo;
  • MA: período de promediado - indicador Media Móvil: período de promediado;
  • MA: desplazamiento horizontal - indicador Media Móvil: desplazamiento horizontal;
  • MA: tipo de suavizado - indicador Media Móvil: método de promediado;
  • MA: tipo de precio - indicador Media Móvil: tipo de precios sobre el que se calcula el indicador;
  • Take Profit - Take Profit (para el caso en que se abra una posición);
  • Multiplicador de Lot para una serie de Posiciones - aumento del volumen de una posición para una serie de posiciones;
  • Distancia desde la Media Móvil - distancia desde el indicador Media Móvil;
  • Adición en presencia de ganancias generales - añadir al margen, si hay ganancias generales.

El EA utiliza el principio de swing, permitiendo incrementar el número de lots; se emplea una estrategia sencilla para su funcionamiento:

  • Si el precio está por encima del indicador Media Móvil en una Distancia preestablecida desde la Media Móvil, abriremos una posición de COMPRA;
  • Si el precio baja del indicador Media Móvil en una Distancia preestablecida desde la Media Móvil, abriremos una posición de VENTA con el mismo lot;
  • Si el precio ha subido desde la posición de COMPRA alcanzando el precio más alto en una Distancia preestablecida desde la Media Móvil, abriremos la siguiente posición de COMPRA;
  • Si el precio ha bajado desde la posición de COMPRA alcanzando el precio más bajo en una Distancia preestablecida desde la Media Móvil, abriremos la siguiente posición de VENTA;


Clase CMoving

Parámetros de configuración
Inicialización

Inicialización principal - se configuran los siguientes parámetros:

  • símbolo - nombre del símbolo sobre el que operará el EA
  • mágico - identificador único del EA
  • deslizamiento - deslizamiento.
GetFlag
Devuelve el estado de la bandera de inicialización. Se utiliza como función auxiliar al llamar desde el EA base para verificar el estado de la variable interna m_init de la clase CMoving.
LotsOrRisk
Definiendo el tipo de cálculo de posición de lots: ya sea manualmente (el parámetro lots es mayor a cero) o en porcentaje del margen libre por operación (el parámetro risk es mayor a cero).
CreateMA
Creando el indicador Media Móvil.
TakeProfit
Definiendo el parámetro de Take Profit.
Multiplier
Definiendo el parámetro de aumento de lotes.
DistanceMA
Definiendo el margen desde el indicador Media Móvil.
ProfitPlus
Definiendo el margen adicional al obtener ganancias generales.
Función principal
Processing
Función principal, donde se realizan todos los cálculos.
Funciones de clase con el especificador de acceso protegido
RefreshRates
Actualizando las cotizaciones para el símbolo.
CheckVolumeValue
Verificando la corrección del volumen de posición ingresado (la verificación se utiliza al definir el volumen de posición manualmente).
IsFillingTypeAllowed
Comprobando el modo de llenado de la orden.
iMAGet
Obteniendo los valores del indicador Media Móvil en la barra con el índice de índice.
CalculateAllPositions

Obteniendo la información sobre las posiciones por llamada:

  • count_buys - número de posiciones de COMPRA;
  • price_highest_buy - precio de la posición de COMPRA más alta;
  • price_lowest_buy - precio de la posición de COMPRA más baja;
  • lot_highest_buy - volumen de la posición de COMPRA más alta;
  • lot_lowest_buy - volumen de la posición de COMPRA más baja;
  • total_lots_buy - volumen total de posiciones de COMPRA;
  • count_sells - número de posiciones de VENTA;
  • price_lowest_sell - precio de la posición de VENTA más baja;
  • price_highest_sell - precio de la posición de VENTA más alta;
  • lot_lowest_sell - volumen de la posición de VENTA más baja;
  • lot_highest_sell - volumen de la posición de VENTA más alta;
  • total_lots_sell - volumen total de posiciones de VENTA.
Prices
Obteniendo los precios de referencia para posiciones de COMPRA y VENTA, considerando la Distancia preestablecida desde la Media Móvil.
LotCheck
Verificando y normalizando el volumen de la posición (se utiliza al definir el tamaño de la posición manualmente).
OpenBuy
Abrir una posición de COMPRA.
OpenSell
Abrir una posición de VENTA.
PrintResult
Imprimiendo los resultados de una operación al abrir una posición.
SetTakeProfit
Estableciendo el nivel de Take Profit para posiciones o eliminando todos los niveles de Take Profit y Stop Loss (donde el parámetro delete_take_profit es igual a "true").
CompareDoubles
Comparando dos números reales para verificar si son iguales.
AwerageTakeProfit
Calculando y estableciendo un único nivel de Take Profit para una posición de cierto tipo pos_type.

GBPUSD, H1, "Cada tick basado en ticks reales."

VR---MUVING

Lista
Comentarios 0