Inicio Trading Sistemático Publicación

Smart Trend Follower: Asesor Experto para MetaTrader 5

Archivos adjuntos
53022.zip (3.5 KB, Descargar 0 veces)

1. Tipos de Enum (enumJnsSignal, enumOrderType)

enumJnsSignal: Este enum define el tipo de señal que utiliza el Asesor Experto. Existen dos opciones de señal:

  • eTypeCrossMA: Utiliza la señal de Cruz de 2 MA (el cruce de dos Medias Móviles).
  • eTypeTrend: Sigue la tendencia usando Medias Móviles y Stochastic.

enumOrderType: Este enum define el tipo de orden:

  • eBuy: Una orden de Compra.
  • eSell: Una orden de Venta.
  • eNone: Sin orden ejecutada.

2. Parámetros de Entrada

  • inMagicNumber: Un número mágico único para distinguir las órdenes de este Asesor Experto.
  • inLotSize: El tamaño inicial del lote para cada orden.
  • inMultiply: El factor multiplicador utilizado en la estrategia de tamaño de lote.
  • inJarakLayer: La distancia en pips entre posiciones de trading en la estrategia de rejilla/capa.
  • inMAPeriodFast & inMAPeriodSlow: Los períodos para las Medias Móviles rápida y lenta.
  • inSTOKPeriod, inSTODPeriod, inSTOSlowing: Parámetros para el Oscilador Estocástico.
  • inTakeProfit & inStopLoss: Configuraciones para el Take Profit y el Stop Loss.

3. Estructura de datos dataTrades

Esta estructura se utiliza para almacenar datos relacionados con las posiciones de trading abiertas, como el número total de posiciones (ttlPos), el precio promedio de las posiciones (hargaTA, hargaTB) y el volumen total (ttlLot).


4. Función OnInit()

Esta función maneja la inicialización del Asesor Experto, incluyendo la validación de los parámetros de entrada (por ejemplo, asegurándose de que el período de la MA rápida sea menor que el de la MA lenta) y creando manejadores para los indicadores de MA y Stochastic.


5. Función OnTick()

La función principal que se ejecuta cada vez que el precio se mueve (tick). Se llama a la función para verificar una nueva señal con GetSignal(), y si se encuentra una señal, se utiliza manageTrading() para ejecutar las operaciones. También se llama a setTPSL() para garantizar que el Take Profit y el Stop Loss se actualicen siempre.


6. Función isNewCandle()

Esta función detecta si se ha formado una nueva vela. Esto es importante porque el Asesor Experto solo verifica señales en nuevas formaciones de velas.


7. Función GetSignal()

Esta función determina si existe una señal de trading válida según la estrategia seleccionada:

  • Para eTypeCrossMA, la señal se determina por el cruce de las Medias Móviles rápida y lenta.
  • Para eTypeTrend, la señal utiliza confirmación de la MA y Stochastic.

8. Función manageTrading()

Esta función gestiona la ejecución de operaciones. Si se detecta una señal válida, el Asesor Experto abre una posición con el tamaño de lote determinado utilizando la función getLotSize(). También se aplica una estrategia de rejilla/capa para abrir posiciones adicionales basadas en la distancia de precio (inJarakLayer).


9. Función updateDataTrades()

Esta función actualiza los datos relacionados con las posiciones de trading en curso, como el cálculo del precio promedio y el volumen total de las posiciones abiertas.


10. Función openTrade()

Esta función abre una nueva posición de trading basada en la señal generada y el tamaño de lote calculado. Utiliza OrderSend() para ejecutar la orden.


11. Función setTPSL()

Esta función establece o actualiza el Take Profit y el Stop Loss para cada posición abierta.


12. Función modifTPSL()

Esta función modifica el Take Profit y el Stop Loss de las posiciones existentes si los valores difieren de lo que se había establecido anteriormente.


13. Función validateLot()

Esta función asegura que el tamaño del lote utilizado esté dentro del rango mínimo y máximo permitido, así como en línea con el paso mínimo de lote (gLotStep).


14. Función getLotSize()

Esta función calcula el tamaño del lote a utilizar en base al tamaño inicial del lote y el número de posiciones ya abiertas, teniendo en cuenta el factor multiplicador (inMultiply).


Este código está diseñado para capturar las tendencias del mercado y gestionar las posiciones de trading automáticamente utilizando señales técnicas de Medias Móviles y Stochastic.

Publicaciones relacionadas

Comentarios (0)