Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 179

 
Izdesbyll:

Aidez-moi !

Erreur 0 et l'ordre ne se ferme pas ! Qu'est-ce qui ne va pas ?

Et pourquoi normalisez-vous le prix à deux ? To Digits est nécessaire. Il est plus facile d'écrire OrderClosePrice() plutôt que Bid
 

Est-il possible qu'il ait fermé une partie de la commande ?

Et si on essayait comme ça, qu'est-ce que ça dit ?

double bylo = OrderLots();
if (OrderClose( OrderTicket(), 0.1, NormalizeDouble(Bid,2), 1 ))    Alert ("  Закрито частину лоту в розмірі 0.1 від ",bylo);
else Alert("Маємо помилку ",GetLastError());
 

artmedia70:
А почему нормализуете цену до двух? До Digits нужно. А проще писать OrderClosePrice() вместо Bid


 OrderClose( OrderTicket(), 0.1, OrderClosePrice(), 1 );  
      Alert("Маємо помилку ",GetLastError());

Maintenant, cela donne l'erreur 4051

 
ALXIMIKS:

Se pourrait-il qu'il ait fermé une partie de l'ordre ?

Et si vous essayez de cette façon, qu'est-ce que ça dit ?



bylo = 0.1 et il ne ferme pas mon ordre.
 
Maintenant c'est un pépin, j'écris :
 double p[100];
 p[i+1] = OrderProfit();
 if (p[i+1]>0) 
    {
      Alert("Є прибуток ордер ",i+1);
      OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES); 
      Alert("Маємо помилку ",GetLastError());
      Alert("Вибрали ордер ",i+1);
      OrderClose( OrderTicket(), 0.1,  NormalizeDouble(Bid,Digits), 1 );  
      Alert("Маємо помилку ",GetLastError());
      Alert("Закрили ордер ",i+1); 

I+1 = 2 et partout, mais le troisième ordre a commencé à se fermer.

 
Izdesbyll:

Aidez-moi !

Erreur 0 et l'ordre ne se ferme pas ! Qu'est-ce qui ne va pas ?

Que diriez-vous d'essayer de cette façon :

    double ld_Price;
    if (OrderType() == 0) ld_Price = NormalizeDouble (Bid, Digits);
    else ld_Price = NormalizeDouble (Ask, Digits);
    OrderClose (OrderTicket(), OrderLots(), ld_Price, 2);

Et n'oubliez pas de dépasser l'ordre concerné avant la procédure de suppression ! !!

 
Izdesbyll:
Maintenant, c'est un pépin total, j'écris :

i+1 = 2 et partout, mais le troisième ordre a commencé à se fermer.

Si vous rassemblez les billets dans un tableau, l'ordre doit être SÉLECTIONNÉ par TICKET, et non par sa propre liste (ordre).
 
TarasBY:

Que diriez-vous d'essayer de cette façon :

Et n'oubliez pas d'EXCEDER l'ordre concerné avant la procédure de suppression ! !!


if (p[i+1]>0) 
    {
      Alert("Є прибуток ордер ",i+1);
      OrderSelect(i+1,SELECT_BY_POS,MODE_TRADES); 
      Alert("Маємо помилку ",GetLastError());
      Alert("Вибрали ордер ",i+1);
      double ld_Price;
      if (OrderType() == 0) ld_Price = NormalizeDouble (Bid, Digits);
      else ld_Price = NormalizeDouble (Ask, Digits);
      OrderClose (OrderTicket(), OrderLots(), ld_Price, 2);  
      Alert("Маємо помилку ",GetLastError());
      Alert("Закрили ордер ",i+1); 

Le TROISIÈME ordre ferme GetLastError = 0, i+1=2, OrderProfit() répond au néant du SECOND ordre. help.... Je voudrais écrire (OrderTicket()-1) mais j'ai peur que cela ne serve à rien.

 
Izdesbyll:

Le TROISIÈME ordre se ferme GetLastError = 0, i+1=2, OrderProfit() répond au néant du SECOND ordre. help.... Je voudrais écrire (OrderTicket()-1) mais j'ai peur que cela ne serve à rien.

ne savent pas lire (sauf bien sûr s'il y a des numéros de tickets dans le tableau p[]) !

    OrderSelect (p[i+1], SELECT_BY_TICKET, MODE_TRADES); 

...En général, il est très difficile d'attraper la "stupidité" d'un bout de code... :)

 
Bonjour, quelqu'un pourrait-il me dire s'il existe une sorte de blocage permettant de fermer tous les ordres (y compris les ordres d'effacement) s'ils ont tous des numéros magiques différents, dans la fourchette de 1 à 60. S'il en existe un, veuillez le poster. Et si ce n'est pas si difficile avec l'instruction où il doit être inséré (parce qu'il est complètement vert dans mql). Merci d'avance.

J'ai oublié de vous dire que j'aimerais conclure sur le pourcentage de profit du dépôt.