Preguntas de los principiantes MQL4 MT4 MetaTrader 4 - página 99

 

Quiero hacer un pollito para contar las ganancias después de cada 5 órdenes. parece que cuenta, pero hay un error "4051 Valor inválido del parámetro de la función" ¿por qué?


input int input_step=5;
int step=input_step;

void start()
{
int h, history=OrdersHistoryTotal();
double orderProfit=0;
 if(history==step)
  {
   for(h=history; h<=history; h--)
    {
    if(OrderSelect(h,SELECT_BY_POS,MODE_HISTORY)==true)
      {
      orderProfit=orderProfit+OrderProfit();
      Print("profit=",orderProfit);
      } 
    }
    step=step+input_step;
  }
  return;
}



 

Hola Querido Gurú ...

Desplazamiento por los datos en la ventana del terminal > Historial ...

... ...y de alguna manera moví la ubicación de la ventana de la Terminal por encima de las ventanas del gráfico...

... ¿Puede alguien sugerir cómo mover la ventana de la Terminal hacia abajo, debajo de las ventanas de los gráficos?


Estaría muy agradecido.

 
Yaroslav Nykula:

Hola Querido Gurú ...

Desplazamiento por los datos en la ventana del terminal > Historial ...

... ...y de alguna manera moví la ubicación de la ventana de la Terminal por encima de las ventanas del gráfico...

... ¿Puede alguien sugerir cómo mover la ventana de la Terminal hacia abajo, debajo de las ventanas de los gráficos?


Estaría muy agradecido.


Coge la barra que hay debajo de la cruz con el ratón y arrástrala donde quieras.

 

Hola, ¿podríais decirme cómo hacer que un EA deje de operar después de tres pérdidas (con el mismo número mágico)? Después de una pérdida de esta manera

int flag==0;

for(int pos_buy=OrdersHistoryTotal()-1; pos_buy>=0; pos_buy--)

{

if(OrderSelect(pos_buy,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY)

{

if(OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0))

flag=1; }}


¿Qué hay de las tres pérdidas...?

 
Alekseu Fedotov:

Coge la barra que hay debajo de la cruz con el ratón y arrástrala donde quieras.


Gracias... Hice doble clic y lo arrastré hacia abajo... No se me ocurrió a mí.

 
defailer7:

Hola, ¿podríais decirme cómo hacer que un EA deje de operar después de tres pérdidas (con el mismo número mágico)? Después de una pérdida de esta manera

int flag==0;

for(int pos_buy=OrdersHistoryTotal()-1; pos_buy>=0; pos_buy--)

{

if(OrderSelect(pos_buy,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY)

{

if(OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0))

flag=1; }}


¿Y qué hay de las tres pérdidas?

Yo también soy un principiante. Tal vez se pueda hacer de esta manera

for(int pos_buy=OrdersHistoryTotal()-1; pos_buy>=0; pos_buy--) 
           {
            if(OrderSelect(pos_buy,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY) 
             {
             if (OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0))
             flag=1; }
            if(OrderSelect(pos_buy-1,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY) 
             {
             if (OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0))
             flag2=1; }
            if(OrderSelect(pos_buy-2,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY) 
             {
             if (OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0))
             flag3=1; }
           }
  if(flag==1 && flag2==1 && flag3==1)bool flag_trex=true;
 
Baruandreas:

Yo mismo soy un principiante. Probablemente se podría hacer así


Muchas gracias, todo ha funcionado.

 

Hola.
Me pueden decir cómo limitar el comercio de EA por el tiempo.
He probado muchos métodos del foro, pero nada ha funcionado, no entiendo nada de escritura.
Estaría bien que se pudiera señalar lo que hay que poner.

 
defailer7:

Hola, ¿podríais decirme cómo hacer que un EA deje de operar después de tres pérdidas (con el mismo número mágico)? Después de una pérdida de esta manera

int flag==0;

for(int pos_buy=OrdersHistoryTotal()-1; pos_buy>=0; pos_buy--)

{

if(OrderSelect(pos_buy,SELECT_BY_POS,MODE_HISTORY) && OrderType()==OP_BUY)

{

if(OrderSymbol() == Symbol() && (OrderMagicNumber() == Magic_buy )&&(OrderProfit()>0))

flag=1; }}


¿Qué tal tres pérdidas...?


¡¡¡Yo también estoy aprendiendo!!! Flag++, si (flag==3)exit;

Y la pérdida es menor que cero.
 
kuzhakov:

Hola.
¿Puede usted por favor aconsejar cómo el marco de tiempo de la EA.
He probado muchos métodos del foro, pero nada funciona.
Estaría bien poder señalar con el dedo dónde insertar el mensaje.


No puedo enviarte el código terminado, estoy navegando desde mi teléfono.

Existe una función que devuelve la hora de apertura del bar

Pruebe a añadir un número a la función que devolverá la hora de apertura de la barra con el periodo de un día

Devuelve el valor del tiempo de apertura de la barra (especificado por el parámetro shift) para el gráfico correspondiente.

datetimeiTime(
cadenasímbolo,// símbolo
inttimeframe,// periodo
intcambio//desplazamiento
);


Día del período

Turno 0

iTime(euro, día, hoy es cero)+1= Hora 00-00-01

Hay 60 segundos en un minuto

iTime(euro, día, hoy es cero)+60= hora 00-01-00-00 y así sucesivamente.

Por ejemplo, queremos que nuestro EA empiece a funcionar el 01-00-00

if((iTime(Symbol(),PERIOD D1,0)+3600)<TimeCurent() trabajo

Eso es todo lo que puedo ayudarte por teléfono.

También puedes devolver los minutos de la hora actual y compararlos, ¡suerte!