EvolutionaryTrader
- Asesores Expertos
- Dipak Dilip Reddy
- Versión: 3.4
El código proporcionado es un ejemplo de un Asesor Experto (EA) escrito en MQL5, un lenguaje de programación utilizado para la creación de sistemas algorítmicos de comercio en MetaTrader 5. He aquí un desglose del código:
El código comienza con varios parámetros de entrada y ajustes definidos utilizando la palabra clave de entrada. Estos parámetros permiten la personalización del comportamiento del EA, tales como lotes de entrada, stop loss, take profit, y parámetros del indicador.
Se declaran varios valores constantes y variables, incluyendo ajustes de tiempo de sesión, variables relacionadas con la posición, variables relacionadas con la barra y manejadores de indicadores.
La función OnInit() es llamada durante la inicialización del EA. Establece varias variables e indicadores requeridos para la operación del EA.
La función OnTick() se ejecuta en cada tick recibido por el EA. Comprueba si se ha formado una nueva barra y llama a la función OnBar() en consecuencia.
La función OnBar() es responsable de gestionar la lógica del EA en cada nueva barra. Actualiza la posición, comprueba las condiciones de cierre de sesión, gestiona el cierre de la posición, el trailing stop y determina las señales de entrada para la apertura de nuevas posiciones.
La función UpdatePosition() recupera información sobre la posición abierta actual, como el tipo de posición, la entrada, los lotes, el stop loss y el take profit.
La función InitIndicators() inicializa los indicadores necesarios para el EA. En este ejemplo, añade dos indicadores: RSI y Desviación Estándar.
La función GetEntrySignal() calcula la señal de entrada basándose en los indicadores definidos y sus respectivos parámetros. Determina si se abre una posición de compra, de venta o ninguna (OP_FLAT).
La función ManageClose() comprueba si se cumplen las condiciones para cerrar una posición abierta. En este caso, comprueba una condición específica relacionada con el indicador Desviación estándar.
La función OpenPosition() abre una nueva posición basada en la orden proporcionada (compra o venta). Calcula los precios de stop loss y take profit basándose en los parámetros de entrada y llama a la función ManageOrderSend() para ejecutar la operación.
La función ClosePosition() cierra la posición abierta ejecutando una operación contraria.
La función ManageOrderSend() maneja el proceso de envío de la orden. Intenta enviar la orden varias veces y espera un cierto tiempo entre intentos. Comprueba si el contexto de la operación está libre, realiza comprobaciones de la orden y envía la orden utilizando la función OrderSend(). También gestiona el caso en que sea necesario cambiar el modo de cumplimentación de la orden.
Las funciones restantes ModifyPosition(), CheckOrder(), GetStopLossPrice(), GetTakeProfitPrice(), GetTrailingStopPrice(), y ManageTrailingStop() son responsables de modificar posiciones, comprobar órdenes, calcular precios stop loss/take profit, y gestionar la funcionalidad trailing stop.
El código también incluye la función OnDeinit(), que es llamada cuando el EA es eliminado o recargado del gráfico. Limpia cualquier indicador añadido al gráfico borrándolo.
Preferido: USDCAD H1
Corredores preferidos:Octafx incorporado.

I have been using EA for 2 weeks and it gives quite a lot of income. It's coming along well. Will post an update in a few weeks.
Profitable EA
From July 15 to August 1 account grow up 29.92%
7 trades 100% win.