[Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas votre chemin. Je ne peux aller nulle part sans toi. - page 848

 

Je pense que c'est pourquoi

while (att_to_modify_sell<= attempt_to_modify)
 
vasya_vasya:

Je pense que c'est pour ça.

Merci, j'ai remarqué et supprimé le message immédiatement, mais vous avez réussi à y répondre :)

Je n'aime toujours pas mon schéma cyclique...

La tâche consiste à fermer l'ordre après n-nombre de tentatives infructueuses pour le modifier en fonction du marché !

S'il vous plaît, montrez-moi comment faire cela joliment en code.

Merci !

 
vasya_vasya:

Je pense que c'est à cause de ça.

att_to_modify=2;
att_to_modify_sell=0;
            
Print("att_to_modify_sell="+att_to_modify_sell);
Print("Модификация SL, попытка установить новый СЛ, ord_open_sell="+ord_open_sell+" stop_TP="+stop_TP+" Старый СЛ= "+ord_sl+" Bid="+Bid+" ord_take_profit="+ord_take_profit+" Ask="+Ask);
Print("Модификация в цикле1");   
ticket=OrderModify(ticket_sell,0,NormalizeDouble((ord_open_sell-stop_TP*Point),Digits),NormalizeDouble(ord_take_profit,Digits),0,0); //первый перенос СЛ
  if(ticket<0)
  {               
    Print("OrderModify(SELLSTOP install first SL) failed with error #",GetLastError());
    att_to_modify_sell+=1;
    Sleep(3000);
    if (att_to_modify_sell>=attempt_to_modify /*&& Ask<(ord_open_sell-stop_TP*Point-p_TS_DIST*Point)*/)                     
    {
      OrderClose(ticket_sell,ord_lots,MarketInfo(Symbol(),MODE_ASK),3,Green);
    }
    if(ticket>=0)
    {
      att_to_modify_sell=attempt_to_modify+1;
      Print("Модификация прошла успешно");
    }  
    Print("att_to_modify_sell!!!="+att_to_modify_sell);           
  }

Conclusion :

2010.09.14 16:46:04 2010.06.07 00:00 MM1.20 EURUSD,M5 : Erreur OrderModify 130
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Modifier dans Loop1
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Modification de SL, tentative de définir un nouveau SL, ord_open_sell=1.19799000 stop_TP=200 Old SL=1.20499000 Bid=1.19470000 ord_take_profit=1.19479000 Ask=1.19483000
14.09.2010 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5 : att_to_modify_sell=0


Il y a eu une erreur, alors pourquoi je ne traite pas la condition

if(ticket<0) ?????


et par conséquent, aucune impression n'est affichée...

Print("OrderModify(SELLSTOP install first SL) failed with error #",GetLastError());
Print("att_to_modify_sell!!!="+att_to_modify_sell); 


Un morceau de code ferme un ordre sur le marché après les tentatives de att_to_modify !

Merci !

 
Est-il possible que l'EA se désactive lui-même ?
 
Elliotttrader:

Sortie :

2010.09.14 16:46:04 2010.06.07 00:00 MM1.20 EURUSD,M5 : Erreur OrderModify 130
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Modification dans la boucle1
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Modification de SL, essayer de définir un nouveau SL, ord_open_sell=1.19799000 stop_TP=200 Old SL=1.20499000 Bid=1.19470000 ord_take_profit=1.19479000 Ask=1.19483000
2010.09.14 16:46:04 2010.06.07 00:00 MM_1.20 EURUSD,M5 : att_to_modify_sell=0

Il y a eu une erreur, alors pourquoi je ne traite pas la condition

et donc aucune empreinte n'est imprimée...

Un morceau de code ferme un ordre sur le marché après les tentatives de att_to_modify !

Merci !


Erreur 130 - mauvais arrêts.

Analyser le 3ème paramètre de la fonction

ticket=OrderModify(ticket_sell,0,NormalizeDouble((ord_open_sell-stop_TP*Point),Digits),NormalizeDouble(ord_take_profit,Digits),0,0) ; //premier transfert SL

il s'agit d'un ordre de vente, comme je l'ai compris, et le prix d'arrêt est abaissé

Peut-être avons-nous besoin de "+" - ord_open_sell+stop_TP*Point

 
abolk:


Erreur 130 - mauvais arrêts.

Analyser le 3ème paramètre de la fonction

ticket=OrderModify(ticket_sell,0,NormalizeDouble((ord_open_sell-stop_TP*Point),Digits),NormalizeDouble(ord_take_profit,Digits),0,0) ; //premier roulement du SL

il s'agit d'un ordre de vente, comme je l'ai compris, et vous abaissez le prix d'arrêt

Peut-être avons-nous besoin du "+" - ord_open_sell+stop_TP*Point

Je ne pose pas de question sur cette erreur. Je demande pourquoi il n'est pas traité.
if(ticket<0)
Merci !
 
Elliotttrader:
Je ne pose pas de question sur cette erreur. Je demande pourquoi ça ne marche pas pour moi.
Merci !

Tout d'abord, imprimez la valeur de l'impression du ticket après la modification
 
abolk:

Pour commencer, imprimez la valeur du ticket après modification


J'écris une question mais cela n'a rien changé, le problème n'est pas résolu, alors je vais la répéter dans l'espoir d'obtenir une solution au problème :

J'écris moi-même un indicateur, j'ai besoin d'environ 2000 barres de l'historique, une telle boucle :

pour (int i=1 ; i<1900 ; i++)

il ne récupérera que 1000 barres.

J'essaie de définir la variable Bars, mais elle indique que sa valeur est de 1000, alors que j'ai dessiné le graphique et les données historiques jusqu'à 2000.

Pourquoi cela se produit-il, quel est le problème ? ? ???

Veuillez me conseiller !!!!

 
abolk:

Pour commencer, imprimer la valeur du ticket après modification

Raccourci à

               Print("Модификация SL, попытка установить новый СЛ, ord_open_sell="+ord_open_sell+" stop_TP="+stop_TP+" Старый СЛ= "+ord_sl+" Bid="+Bid+" ord_take_profit="+ord_take_profit+" Ask="+Ask);
               Print("Модификация в цикле1");             
               ticket=OrderModify(ticket_sell,0,NormalizeDouble((ord_open_sell-stop_TP*Point),Digits),NormalizeDouble(ord_take_profit,Digits),0,0); //первый перенос СЛ
               Print("ticket="+ticket);

               if(ticket<0){Print("OrderModify(SELLSTOP install first SL) failed with error #",GetLastError());}

               Print("Модификация закончена");


2010.09.14 20:35:26 2010 06.07 00:00 MM_1.20 EURUSD,M5 : Modification terminée
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : ticket=0
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Erreur OrderModify 130
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Modification dans la boucle1
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Modification de SL, tentative de définir un nouveau SL, order_open_sell=1.19799000 stop_TP=200 Old SL=1.20499000 Bid=1.19470000 order_take_profit=1.19479000 Ask=1.19483000

2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : att_to_modify_sell=0


Les gars, j'ai un problème. Comment sur l'erreur peut

ticket
être naïf 0-lu ?
 
Elliotttrader:

Raccourci à

2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Modifier terminé
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : ticket=0
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Erreur OrderModify 130
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Modification dans la boucle1
2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : Modification de SL, tentative de définir un nouveau SL, order_open_sell=1.19799000 stop_TP=200 Old SL=1.20499000 Bid=1.19470000 order_take_profit=1.19479000 Ask=1.19483000

2010.09.14 20:35:26 2010.06.07 00:00 MM_1.20 EURUSD,M5 : att_to_modify_sell=0

Les gars, j'ai un problème. Comment sur l'erreur peut

être naven 0-lu ?

print -- ticket_sell et montrer le type de variable du ticket