Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 612
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Ich schrieb Code, dass, wenn eine Bestellung schließt alle anderen anhängigen Aufträge, aber das Problem ist, dass ich schrieb 4 Aufträge 2, 3, 4, 5. Wenn also die nächsten anhängigen Aufträge 6, 7, 8 usw. geöffnet werden, sollten sie nicht geschlossen werden. Die Anzahl der rot hervorgehobenen Aufträge sollte so geändert werden, dass alle anhängigen Aufträge geschlossen werden.
void start(){
//----
double Take1 = Ask+20 *Point;
double Take2 = Ask+0 *Point;
double Take3 = Ask-20 *Point;
double Take4 = Ask-40 *Point;
double Take5 = Ask-60 *Point;
double Stop = Bid-StopLoss *Point;
if(AufträgeSumme()==0){
OrderSend(Symbol(),0,0.01,Ask,30,Stop,Take1,",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.02,Ask-20*Point,30,Stop,Take2,"",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.04,Ask-40*Point,30,Stop,Take3,",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.08,Ask-60*Point,30,Stop,Take4,",0,0,CLR_NONE);
OrderSend(Symbol(),2,0.16,Ask-80*Point,30,Stop,Take5,"",0,0,CLR_NONE);
}
if(AufträgeSumme()==4)
{
BestellungLöschen(2);
}
if(AufträgeSumme()==3)
{
BestellungLöschen(3);
}
if(AufträgeSumme()==2)
{
BestellungLöschen(4);
}
if(AufträgeSumme()==1)
{
BestellungLöschen(5);
zurück(0);
}
Ich schrieb Code, dass, wenn eine Bestellung schließt alle anderen anhängigen Aufträge, aber das Problem ist, dass ich schrieb 4 Aufträge 2, 3, 4, 5. Wenn also die nächsten anhängigen Aufträge 6, 7, 8 usw. geöffnet werden, sollten sie nicht geschlossen werden. Die rot hervorgehobenen Auftragsnummern sollten in solche Aufträge geändert werden, für die alle ausstehenden Aufträge geschlossen werden.
Zunächst prüfen wir in der Schleife, ob die Position kürzlich geschlossen wurde oder nicht, wofür wir OrdersHistoryTotal benötigen. Hier wird der Zeitpunkt des Schließens der Position OrderCloseTime überprüft. Ist dieser höher als der letzte Wert in der Variable, werden alle offenen OrdersTotal durchlaufen. Und schließen Sie sie.
P.S. Fügen Sie den Code mit Alt+S oder der
![](https://c.mql5.com/3/228/editor_tip.gif)
Zum Beispiel dies
Hier ist die Bedingung if(OrdersTotal()==0). Aber wie sollten wir die Bedingung schreiben, wenn es keine Buchten gibt?
Wenn (OP_BUY==0)
Wenn (OP_BUY==0)