[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 507

 

Bonjour ! Erreur de modification de commande 4051. J'ai réfléchi pendant une heure. Il semble que ce soit le bon paramètre ! !! Pour faire court, examinons-le lettre par lettre. Le paramètre prix est le prix d'ouverture de l'ordre, OrderOpenPrice(), il est standard.

Notre prix stop est 10 points en dessous du prix ouvert, et nous avons mémorisé le prix. Nous l'enregistrons dans la variable tsena lors de l'ouverture de la commande.

Nous avons deux commandes, une avec un bénéfice et une sans. Il semble que ce soit clair. Quelle est l'erreur ? Qu'est-ce que ça pourrait être d'autre ?

Oui, la condition semble être claire, bien qu'elle ne soit pas vraiment pertinente. C'est-à-dire que le prix a bougé de 30 points, la condition a fonctionné (tsena+30*Point).

Nous avons défini perenos=true une fois ; Ces conditions semblent réellement fonctionner.

Moi-même, je ne sais pas comment penser.

En fait, nous l'avons porté une fois perenos=true ; ces conditions n'ont pas fonctionné, parce que cela n'a pas fonctionné non plus.


bool napravlenieCCI=false;
 if( CCI_50S<100&&CCI_50>100 ||CCI_50S<0&&CCI_50>0|| CCI_50S<-100&&CCI_50>-100  )napravlenieCCI=true;// if( CCI_50S>CCI_50&& )napravlenieCCI=false;
 
 bool wishseLMA=false;//Свеча закрывается или находится выше LMA
 if (Bid>LMA_100) wishseLMA=true;Print ("до условияsrabotka    " ,srabotka );Alert("до условияsrabotka    " ,srabotka );
 
 if (EMA_20S>EMA_10S&&EMA_20<EMA_10&&napravlenieCCI&&wishseLMA&&!srabotka) {/// нашли пирисечение сверху вниз и направление CCI вверх
 RefreshRates();
           int tacket=OrderSend (Symbol( ), OP_BUY, lot,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Ask- (35*Point),Digits), 
           NormalizeDouble( Ask+( 45*Point),Digits), NULL, 450, 0, CLR_NONE);
           int Error=GetLastError();if (Error==0){  
           Sleep(2000); RefreshRates(); double profit = NormalizeDouble( Ask+( 45*Point),Digits); tsena=Ask; perenos = false;
           int tucket=OrderSend (Symbol( ), OP_BUY, lot,NormalizeDouble(Ask, Digits), 5, NormalizeDouble( Ask- (35*Point),Digits),
           0, NULL, 450, 0, CLR_NONE); 
           if (Error==0)   
           srabotka= true; }}
           
           if (Error!=0){ string errorcomment = "Ошибка открытия  ордера OP_BUY"  + " " + Symbol() +  " " + ErrorDescript(Error); 
            Print (errorcomment);}
 
 
 if(tsena+30*Point<Ask&&!perenos){ 
 OrderModify(  tacket, OrderOpenPrice(), tsena-10*Point, OrderTakeProfit(), 0, CLR_NONE);
 Error=GetLastError();if (Error==0){  
 OrderModify(  tucket, OrderOpenPrice(), tsena-10*Point, OrderTakeProfit(), 0, CLR_NONE);
 Error=GetLastError();if (Error==0){  
 perenos=true;}}} 
 
 if (Error!=0){  errorcomment = "Ошибка модификайции ордера OP_BUY"  + " " + Symbol() +  " " + ErrorDescript(Error); 
            Print (errorcomment);BreakPoint();} 
 

Il existe un paramètre important - le tucket. Cependant, je l'assigne à une variable donc int tacket=OrderSend et donc int tucket=OrderSend,

et j'utilise le tacket OrderModify(, et en bref je ne vois pas d'erreur formelle là !!!

 

Oh, mec... 2012.11.14 22:40:17 2012.08.16 15:30 Vasilypr EURGBP,M30 : 1Error 0 tacket 5 c'est-à-dire que l'ordre a été ouvert, le ticket a été attribué.

Et en plus il est déjà égal à zéro ! C'est-à-dire dans la section suivante du code, qui traite de la modification.

2012.11.14 23:05:27 2012.08.17 11:03 Vasilypr EURGBP,M30 : tacket 0 OrderOpenPrice() 0.7845 tsena-10*Point 0.7835 OrderTakeProfit() 0.789

En dehors de la zone de code ci-dessus, la variable ne joue pas du tout !

Je ne peux pas changer la disposition ukrainienne de n'importe quelle combinaison de touches, et c'est écrit en russe !

 
Dimka-novitsek:

Il existe un paramètre important - le tucket. Cependant, je l'assigne à une variable donc int tacket=OrderSend et donc int tucket=OrderSend,

et j'utilise le tacket OrderModify(, et en bref je ne vois formellement aucune erreur là ! !!


Apparemment, DC n'accepte pas immédiatement avec SL et TP. Après l'ouverture, modifiez SL et TP. Et la 2ème position ne doit pas être ouverte immédiatement, au prochain tick !
 
Oui, merci. Mais il y a un glissement, et bien, il s'ouvre. Je vais essayer de modifier séparément, stop, et je ne porte qu'un stop, non ?
 
Erreur de modification, vistas vistas.
 
Dimka-novitsek:
C'est une erreur de modification, c'est une erreur de modification.


Dans le testeur, cela peut fonctionner, et sur Demka aussi, mais sur Real, ce ne sera pas le cas !

Et le glissement n'aide pas !

 

Pourquoi, qu'est-ce qui ne va pas passer ?

Oh, je vois, la soumission fréquente de deux mandats à la fois.

 
Dimka-novitsek:
Pourquoi, qu'est-ce qui ne passe pas ?

Cela ne fonctionnera pas de fixer le SL et le TP en même temps ! Et quand on les modifie, il faut mettre une condition avec un écart ! Surtout au regard du prix !
 
Je reviendrai demain... au revoir. Merci !
Raison: