Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Nirgendwo ohne dich - 6. - Seite 179

 
Izdesbyll:

Bitte um Hilfe!

Fehler 0 und der Auftrag wird nicht abgeschlossen! Was ist los?

Und warum normalisieren Sie den Preis auf zwei? To Digits ist notwendig. Es ist einfacher, OrderClosePrice() anstelle von Bid zu schreiben
 

Ist es möglich, dass sie einen Teil der Bestellung abgeschlossen hat?

Und wenn es auf diese Weise versucht wird, was sagt es dann?

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());

Jetzt wird der Fehler 4051 angezeigt

 
ALXIMIKS:

Ist es möglich, dass sie einen Teil der Bestellung abgeschlossen hat?

Und wenn es auf diese Weise versucht wird, was sagt es dann?



bylo = 0,1 und mein Auftrag wird nicht geschlossen.
 
Jetzt ist alles eine Panne, schreibe ich:
 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 und überall, aber die dritte Ordnung begann sich zu schließen.

 
Izdesbyll:

Bitte um Hilfe!

Fehler 0 und der Auftrag wird nicht abgeschlossen! Was ist los?

Wie wäre es, wenn Sie es auf diese Weise versuchen:

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

Und vergessen Sie nicht, den entsprechenden Auftrag vor dem Löschverfahren zu ÜBERSTEIGEN!!!

 
Izdesbyll:
Jetzt ist es eine totale Panne, ich schreibe:

i+1 = 2 und überall, aber die dritte Ordnung begann sich zu schließen.

Wenn Sie Tickets in einem Array sammeln, sollte die Reihenfolge nach TICKET SELECTED sein, und nicht nach der eigenen Liste (Reihenfolge).
 
TarasBY:

Wie wäre es, wenn Sie es auf diese Weise versuchen:

Und vergessen Sie nicht, den entsprechenden Auftrag vor dem Löschvorgang AUSZUSTELLEN!!!


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); 

Der DRITTE Auftrag schließt GetLastError = 0, i+1=2, OrderProfit() antwortet auf den ZWEITEN Auftrag nicht. help.... Ich würde schreiben (OrderTicket()-1), aber ich fürchte, das hilft nicht.

 
Izdesbyll:

Der DRITTE Auftrag wird geschlossen GetLastError = 0, i+1=2, OrderProfit() reagiert auf die Nichtigkeit des ZWEITEN Auftrags. help.... Ich würde schreiben (OrderTicket()-1), aber ich fürchte, das hilft nicht.

nicht lesen können (es sei denn, es befinden sich Fahrscheinnummern in p[] array)!

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

...Im Allgemeinen ist es sehr schwer, "Dummheit" in einem Stück Code zu erkennen... :)

 
Hallo, könnte mir bitte jemand sagen, ob es eine Art von Block gibt, um alle Aufträge zu schließen (einschließlich der Löschung von schwebenden Aufträgen), wenn alle mit unterschiedlichen magischen Zahlen, im Bereich von 1-60. Wenn es eine gibt, bitte veröffentlichen Sie sie. Und wenn es nicht so schwierig ist mit der Anweisung, wo es eingefügt werden soll (weil es in mql komplett grün ist). Vielen Dank im Voraus.

Ich habe vergessen, Ihnen zu sagen, dass ich gerne mit einem Prozentsatz des Gewinns der Einlage abschließen würde.