Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 999

 

Je suis en train d'apprendre.

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

Au lieu du point d'interrogation, vous devriez écrire - le bénéfice est supérieur à zéro pour l'instrument donné.

 
cashnewmoney:

Je suis en train d'apprendre.

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

Au lieu du point d'interrogation, vous devriez écrire - le bénéfice est supérieur à zéro pour l'instrument donné.

Cela dépend de votre propre désir.
 
Alexey Viktorov:
Cela dépend de votre propre volonté.

Comme fermer avec vos mains.

Ce n'est pas bon, il faut l'automatiser.

 
cashnewmoney:

Comme fermer avec vos mains.

Ce n'est pas bon, il faut l'automatiser.

Non, pas à la main. Je voulais dire que vous pouvez écrire à votre guise. Mais apparemment, j'ai mal compris la question la première fois. Pour fixer la condition d'un profit sur l'instrument supérieur à zéro, il faut calculer ce profit.

  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:

Non, pas à la main. Je voulais dire que vous pouvez l'écrire à votre guise. Mais j'ai dû mal comprendre la question la première fois. Ce profit doit être calculé pour que la condition de profit de l'instrument soit supérieure à zéro.

Est-ce ainsi qu'il faut procéder ?

double profit = 0 ;

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

{

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

{

si(OrderType() < 2)

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

}

}

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

 
cashnewmoney:

Est-ce ainsi qu'il faut procéder ?

double profit = 0 ;

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

{

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

{

si(OrderType() < 2)

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

}

}

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

Tu te moques de moi ?

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:

Tu te moques de moi ?

Merci beaucoup, tout fonctionne.

 
cashnewmoney:

Merci beaucoup, tout fonctionne.

Merci ici,Alexey Viktorov

 

Le conseiller expert ne place qu'un seul ordre par algorithme, envisagez la vente :

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

Comment écrire le code pour qu'il continue à placer des ordres jusqu'à ce que la condition AC<0.0 soit remplie ?

 
Alexey Viktorov:

Non, pas à la main. Je voulais dire que vous pouvez l'écrire à votre guise. Mais j'ai dû mal comprendre la question la première fois. Pour que le bénéfice sur un instrument soit supérieur à zéro, il faut calculer ce bénéfice.

Merci beaucoup. Tout fonctionne.