Contar ciclos de trading

 

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
 
Xavier19:

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

revisare tu peticion, te respondo en 48 horas, buenas noches

 
Jose Dagoberto Rojas Carvajal:

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

 
Xavier19:

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.