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:
|
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:
|
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."

Comentarios 0