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

 

Sólo estoy aprendiendo.

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && ? );

En lugar del signo de interrogación debe escribir - el beneficio es mayor que cero para el instrumento dado.

 
cashnewmoney:

Sólo estoy aprendiendo.

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && ? );

En lugar del signo de interrogación debe escribir - el beneficio es mayor que cero para el instrumento dado.

Depende de su propio deseo.
 
Alexey Viktorov:
Depende de tu propia voluntad.

Como cerrar con las manos.

Eso no es bueno, hay que automatizarlo.

 
cashnewmoney:

Como cerrar con las manos.

Eso no es bueno, hay que automatizarlo.

No, no a mano. Me refería a que puedes escribir a tu criterio. Pero parece que la primera vez entendí mal la pregunta. Para establecer la condición de beneficio en el instrumento mayor que cero, se debe calcular este beneficio.

  double profit = 0;
  for(int i = 0; i < OrdersTotal(); i++)
   {
    if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
     {
      if(OrderType() < 2)
        profit += OrderProfit()+OrderCommission()+OrderSwap();
     }
   }
 
Alexey Viktorov:

No, no a mano. Me refiero a que puedes escribirlo a tu antojo. Pero debo haber entendido mal la pregunta la primera vez. Este beneficio debe calcularse para que la condición de beneficio por el instrumento sea superior a cero.

¿Es así como debe hacerse?

doble beneficio = 0;

for(int i = 0; i < OrdersTotal(); i++)

{

if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)

{

if(OrderType() < 2)

beneficio += OrderProfit()+OrderCommission()+OrderSwap();

}

}

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit + );

 
cashnewmoney:

¿Es así como debe hacerse?

doble beneficio = 0;

for(int i = 0; i < OrdersTotal(); i++)

{

if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)

{

if(OrderType() < 2)

beneficio += OrderProfit()+OrderCommission()+OrderSwap();

}

}

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit + );

¿Me estás tomando el pelo?

double profit = 0;
  for(int i = 0; i < OrdersTotal(); i++)
   {
    if(OrderSelect(i, SELECT_BY_POS) && OrderSymbol() == _Symbol && OrderMagicNumber() == Magic)
     {
      if(OrderType() < 2)
        profit += OrderProfit()+OrderCommission()+OrderSwap();
     }
   }

SellClose = (AC<0.0 && RSI<30 && Open[1]>Close[1] && profit > 0 );
 
Vitaly Muzichenko:

¿Me estás tomando el pelo?

Muchas gracias, todo está funcionando.

 
cashnewmoney:

Muchas gracias, todo está funcionando.

Gracias aquí,Alexey Viktorov

 

El Asesor Experto coloca sólo una orden por algoritmo, considere la venta:

SellOpen = (AC<0.0 && RSI<30 && Close[2]>Open[2] && Close[1]>Open[1] && Low[2]<Low[1] );

Cómo escribir el código para que continúe colocando órdenes hasta que se cumpla la condición AC<0.0

 
Alexey Viktorov:

No, no a mano. Me refiero a que puedes escribirlo a tu antojo. Pero debo haber entendido mal la pregunta la primera vez. Para condicionar el beneficio de un instrumento a que sea mayor que cero, hay que calcular este beneficio.

Muchas gracias. Todo funciona.

Razón de la queja: