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

 
STARIJ:
vous avez un résumé

Merci ! Je l'ai passé en revue, et je l'ai réparé ! Maintenant, ça marche.

 
Artyom Trishkin:
L'ordre est sélectionné par ticket, et ensuite, après un kilomètre de code, vous essayez de le modifier. Mais il se peut qu'elle soit déjà fermée à ce moment-là.

Si l'ordre a été fermé, alors OrdersTotal()==0;; ; respectivement, l'OrderModify() ne se produirait pas du tout.

 
ijonhson:

Si l'ordre a été fermé, alors OrdersTotal()==0 ; respectivement, OrderModify() n'aurait pas du tout lieu.

D'abord, vous vérifiez la quantité, puis vous vérifiez un grand nombre de codes où la position pourrait avoir été fermée (mais vous traitez déjà une condition de quantité supérieure à zéro), et enfin vous sélectionnez et modifiez la position fermée.
 

Les ordres peuvent être fermés 0,01 lot à la fois si l'ordre est un lot de 0,59 par exemple. Une question se pose. Est-il possible de combiner deux commandes en une seule ? Par exemple, un ordre avec le lot 0.01 et vous voulez ouvrir un autre ordre avec le lot 0.02. Peut-on les combiner avec des lots de 0,03 pour éviter l'accumulation d'ordres, et si oui, comment ?

 
installer le filet MT5
 
Taras Slobodyanik:
installer le filet MT5

pas de telle chose dans MT4 ?

 

Bonjour à tous.


Avec tout le respect dû aux rectangles immaculés.


Je ne comprends pas - POURQUOI il modifie volontiers les ordres de vente, mais ignore la modification des ordres d'achat, même en utilisant des tambourins à encens et autres outils d'optimisation irrationnels.


si (ticket>0)

{

//définir un Stop Loss et un Take Profit pour un ordre d'achat///

if(OrderSelect (ticket, SELECT_BY_TICKET, MODE_TRADES))

{

double sl,tp ;

si (type==OP_BUY)

{

sl=OrderOpenPrice () - (StopLoss*_Point) ;

sl=NormalizeDouble (sl,_Digits) ;

tp=OrderOpenPrice () + (TakeProfit*_Point) ;

tp=NormalizeDouble (tp,_Digits) ;

}

si (type==OP_SELL)

{

sl=OrderOpenPrice () + (StopLoss*_Point) ;

sl=NormalizeDouble (sl,_Digits) ;

tp=OrderOpenPrice () - (TakeProfit*_Point) ;

tp=NormalizeDouble (tp,_Digits) ;

}

bool mod = false ;

int count=0 ;

while (!mod)

{

mod=OrderModify (ticket, OrderOpenPrice (), sl, tp, 0, clrYellow) ;

compte++ ;

si (count>=100)

{

mod=true ;

pause ;

 

J'ai trouvé la solution !!!!!

 

S'il vous plaît, aidez-moi, je suis juste en train d'apprendre, si ZZ d'un tampon a été appelé d'un tampon et ZZ de deux tampons, comment dois-je l'écrire correctement ?

// - 2 - ======================== Поиск одного экстремума ЗЗ ============================ 
    double ZZCur = 0;
    while(ZZCur == 0 && i < Bars)
      {
       if(iCustom(Symbol(), 0, "FastZZ", Depth, 0, i)!=0.0) ZZCur =(iCustom(Symbol(), 0, "FastZZ", Depth, 0, i);
       else  if(iCustom(Symbol(), 0, "FastZZ", Depth, 1, i)!=0.0) ZZCur =(iCustom(Symbol(), 0, "FastZZ", Depth, 1, i);
       i++;
      }
// - 2 - ============================ Окончание блока ===================================

// - 3 - ======================== Анализ найденного экстремума ========================== 
    if (ZZCur == 0)
      return(False);           // Если ни один из экстремумов не определен, то это ошибка

Je ne l'écris pas correctement, comment doit-on l'écrire ? Merci.

 

Je n'ai pas saisi le morceau du haut, c'est plus logique comme ça. S'il vous plaît, dites-moi l'erreur.