Hola buenas tardes,
Necesito una ayuda en la programación de un Asesor Experto (EA) para MetaTrader4.
En principio este EA lo hice con un builder (EABuilder), y a partir de ahí he ido añadiendo/modificando cosas (cálculo de lotaje, cierre de todas las posiciones abiertas, empezar a una hora determinada o inmediatamente, etc.).
En este EA se abre una posición, y en función de cómo vaya el precio abrirá otra(s) posiciones.
Finalmente, llegado a un TakeProfit o a un StopLoss se cerrarán todas las posiciones. A todo esto, le denomino un “Ciclo” (se abren posiciones y posteriormente se cierran todas).
El EA abrirá una nueva posición, inmediatamente después o a una hora programada. Entonces tendremos un nuevo “Ciclo” que finalmente también se cerrará. E iremos contando los “Ciclos”.
Me he quedado atascado con el contador de “Ciclos”.
He puesto una variable global: int Ciclos = 0;
Cuando pongo el contador de “Ciclos” (Ciclos = Ciclos + 1; o bien Ciclos++) en la función de cierre de posiciones cortas:
-----------------------------------------------------------------------------------------------------------------------------
//Close Short Positions
RefreshRates();
if(Ask >= FirstOpenTradePrice() + StopLoss * myPoint
)
{
if(IsTradeAllowed())
{
myOrderClose(OP_SELL, 100, "");
myOrderClose(OP_BUY, 100, "");
Ciclos = Ciclos + 1; Print (“Ciclos = “,Ciclos); // Aquí está el contador de “Ciclos”
}
else //not autotrading => only send alert
myAlert("order", "");
}
----------------------------------------------------------------------------------------------------------------------------
Entonces cuando hago el Backtesting con el Probador de Estrategias del MetaTrader 4, en la solapa de abajo “Registro” salen muchísimas líneas con un número total de Ciclos muy elevado (decenas de miles, cientos de miles o millones, dependiendo del período del Backtesting utilizado).
Agradecería alguna idea o sugerencia para poder contar los “Ciclos” de uno en uno, y no por miles o millones.
Muchas graciasrevisare tu peticion, te respondo en 48 horas, buenas noches
revisare tu peticion, te respondo en 48 horas, buenas noches
Gracias por intentar ayudar, pero haciendo pruebas ya lo he solucionado.
He puesto el contador de “Ciclos” (Ciclos = Ciclos + 1) en la parte donde se abre la primera orden, al final de un condicional "if". Y ya salen correctamente contados los ciclos.
Saludos
Gracias por intentar ayudar, pero haciendo pruebas ya lo he solucionado.
He puesto el contador de “Ciclos” (Ciclos = Ciclos + 1) en la parte donde se abre la primera orden, al final de un condicional "if". Y ya salen correctamente contados los ciclos.
Saludos
gracias por iniciar estos foros me gustaría saber como quedo el contador de ciclos saludos a todos.
![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
Hola buenas tardes,
Necesito una ayuda en la programación de un Asesor Experto (EA) para MetaTrader4.
En principio este EA lo hice con un builder (EABuilder), y a partir de ahí he ido añadiendo/modificando cosas (cálculo de lotaje, cierre de todas las posiciones abiertas, empezar a una hora determinada o inmediatamente, etc.).
En este EA se abre una posición, y en función de cómo vaya el precio abrirá otra(s) posiciones.
Finalmente, llegado a un TakeProfit o a un StopLoss se cerrarán todas las posiciones. A todo esto, le denomino un “Ciclo” (se abren posiciones y posteriormente se cierran todas).
El EA abrirá una nueva posición, inmediatamente después o a una hora programada. Entonces tendremos un nuevo “Ciclo” que finalmente también se cerrará. E iremos contando los “Ciclos”.
Me he quedado atascado con el contador de “Ciclos”.
He puesto una variable global: int Ciclos = 0;
Cuando pongo el contador de “Ciclos” (Ciclos = Ciclos + 1; o bien Ciclos++) en la función de cierre de posiciones cortas:
-----------------------------------------------------------------------------------------------------------------------------
//Close Short Positions
RefreshRates();
if(Ask >= FirstOpenTradePrice() + StopLoss * myPoint
)
{
if(IsTradeAllowed())
{
myOrderClose(OP_SELL, 100, "");
myOrderClose(OP_BUY, 100, "");
Ciclos = Ciclos + 1; Print (“Ciclos = “,Ciclos); // Aquí está el contador de “Ciclos”
}
else //not autotrading => only send alert
myAlert("order", "");
}
----------------------------------------------------------------------------------------------------------------------------
Entonces cuando hago el Backtesting con el Probador de Estrategias del MetaTrader 4, en la solapa de abajo “Registro” salen muchísimas líneas con un número total de Ciclos muy elevado (decenas de miles, cientos de miles o millones, dependiendo del período del Backtesting utilizado).
Agradecería alguna idea o sugerencia para poder contar los “Ciclos” de uno en uno, y no por miles o millones.
Muchas gracias