Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 724

 
Igor Makanu:

Lo más probable es que necesite la variante 1, entonces en el indicador del ciclo de cálculo, donde se buscan las barras, se utiliza la siguiente estructura:

Tiene el tiempo necesario en Time[i] después de comprobar la condición

Gracias por su respuesta. Utilizo la funciónCheckTimer() donde pasoel startTime,endTime como fecha.TimeDayOfWeek()devuelve valores del 1 al 5 según tengo entendido. ¿Cómo puedo convertirlos a formato de fecha para utilizarlos en la funciónCheckTimer()? ¿O tendré que modificar también esta función?

 
Gerkl:

Gracias por la respuesta. Utilizo la funciónCheckTimer() donde pasostartTime,endTime como fecha.TimeDayOfWeek()devuelve valores de 1 a 5 según tengo entendido. ¿Cómo puedo convertirlos a formato de fecha para utilizarlos en la funciónCheckTimer()? ¿O tendré que modificar también esta función?

¿Qué te parece esto?

int   shift = iBarShift(NULL,PERIOD_W1,Time[i]);  
  
datetime startTime = iTime(NULL,PERIOD_W1,shift); 
datetime endTime = startTime + PeriodSeconds(PERIOD_W1); 
 
Alekseu Fedotov:

Tal vez sea así

Gracias, pero muestra toda la semana de domingo a domingo y necesito de lunes a viernes (semana comercial).


Semana

 

¿Cuál es la mejor manera de poner 10 copias del mismo EA en un solo EA, pero con diferentes parámetros?


Creo que sí...
Todo el código del EA en una sola función.
Y sólo hacer los parámetros de entrada de los parámetros de EA de la función.

En Ontick, basta con registrar la función 10 veces, con diferentes parámetros.


Y deberíamos dividir los pedidos mediante comentarios.
Prescribir comentarios diferentes para los distintos ejemplares de la EA.

 
multiplicator:

¿Cuál es la mejor manera de poner 10 copias del mismo EA en un solo EA, pero con diferentes parámetros?


Creo que sí...
Todo el código del EA en una sola función.
Y sólo hacer los parámetros de entrada de los parámetros de EA de la función.

En Ontick, basta con reescribir la función 10 veces, con diferentes parámetros.


Y deberíamos dividir los pedidos mediante comentarios.
Escribiremos diferentes comentarios para diferentes copias de la EA.

Es mejor hacer diferentes Majiks

 
Vladimir Pastushak:

Es mejor hacer los Mejis diferentes

¿Por qué mejor?
Es que tal vez siga habiendo otro EA operando allí.
 
Gerkl:

Gracias, pero así muestra toda la semana de domingo a domingo, mientras que yo necesito de lunes a viernes (semana comercial).

Si te parece bien, añade el tiempo de 5 días en segundos = 5 * 24 * 60 * 60 y obtendrás la hora de inicio del viernes.

es difícil adivinar lo que necesitas, pero siempre es más fiable utilizar la hora de apertura de un bar en TF


multiplicador:
¿por qué mejor?
sólo que tal vez todavía haya otro EA comerciando allí.

Dado que el comentario de la orden no es fiable, algunos servidores sobrescriben el comentario a las 0 horas o le añaden información de propiedad.

magik es fiable, ¿no le dan pena los números? magik es de tipo int - lea en su ayuda cuál es el número máximo que puede almacenar en int.... tienes suficientes números mágicos para varios miles de millones de EAs... no seas avaricioso, gasta los números mágicos ))))

 
Igor Makanu:

debido a que el comentario de la orden no es fiable, algunos servidores sobrescriben el comentario a las 0 horas o le añaden información de servicio

wizard es fiable, ¿no le dan pena los números? wizard es de tipo int - lea en su ayuda qué número máximo se puede almacenar en int.... tienes suficientes números mágicos para varios miles de millones de Asesores Expertos... no seas avaricioso, gasta números mágicos ))))

Tengo un estereotipo: un EA - un número mágico.


No tendrás que cerrar todas las órdenes del búho, por lo que tampoco necesitas una magia común para el búho.

 

Hola, necesito un consejo. Este Asesor Experto que cierra todas las posiciones en Profit Equity tiene frecuentes deslizamientos. Es decir, el beneficio alcanza un determinado valor, las operaciones se cierran, luego no, no desde la primera vez, en general

extern double EquityProfit  = 1.2;

int start()
  {
   Comment("" ,AccountName(),"\n""ACCOUNT"  ,AccountNumber(),"\n""FREE MARGIN"  ,AccountFreeMargin(),"\n""EQUITY"  ,AccountEquity(),"\n""BALANCE"  ,AccountBalance());

   if(AccountEquity() > AccountBalance()*EquityProfit)
     {
      int total=OrdersTotal();

      for(int i=total-1;i>=0;i--)
        {
         if(OrderSelect(i,SELECT_BY_POS)==true)
           {
            int type=OrderType();

            bool result=false;

            switch(type)
              {
               case OP_BUY       : result=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_BID),5,Red);
               break;
               case OP_SELL      : result=OrderClose(OrderTicket(),OrderLots(),MarketInfo(OrderSymbol(),MODE_ASK),5,Red);
              }

            if(result==false)
              {
               Sleep(0);
              }
           }
        }
     }
   return(0);
  }
//+------------------------------------------------------------------+
 
Vladimir Baskakov:

Hola, necesito un consejo. Este Asesor Experto que cierra todas las posiciones en Profit Equity tiene frecuentes deslizamientos. Es decir, el beneficio alcanza el valor especificado, las operaciones se cierran y luego no.

Hay que arreglar el exceso de equidad utilizando la bandera

Entonces tienes que cerrar todas las órdenes hasta que lleguen a 0 e invertir la bandera.

Ahora, una parte de las órdenes se ha cerrado y otra no. La equidad ha cambiado y, como resultado, la condición no funciona correctamente en el siguiente tick.

Razón de la queja: