Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 476

 
Sergei Vladimirov:
Übrigens, warum deklarieren Sie eine Funktion als int, wenn sie in Ihrer Version true zurückgibt, und zwar immer? )
Ich habe es auf ungültig gesetzt und die Schleife umgedreht, solange die Bestellungen anderer Leute sie nicht berühren, danke!
 
Können Sie mir bitte sagen, wie ich OnCalculate des Indikators nicht bei jedem Tick, sondern nur bei einem neuen Balken aufrufen kann?
 
Hexen:
Können Sie mir bitte sagen, wie ich den OnCalculate-Indikator so gestalten kann, dass er nicht bei jedem Tick, sondern nur bei einem neuen Balken aufgerufen wird?
Diese Funktion wird bei jedem Tick aufgerufen, aber Sie können innerhalb der Funktion eine neue Balkensteuerung erstellen.
 
Victor Nikolaev:
Diese Funktion wird bei jedem Tick aufgerufen, aber Sie können innerhalb der Funktion eine neue Balkenprüfung vornehmen.

Danke, es hat mehr oder weniger geklappt. Wenn Sieprev_calculated und rates_total vergleichen, können Sie das Erscheinen neuer Balken erkennen. Und in EA ist es noch komplizierter mit der neuen Leiste - Zeitkontrolle usw.

 

Vergleichen Sie sie nicht, das ist nicht sehr zuverlässig: die Variable prev_calculated kann unter bestimmten Bedingungen zurückgesetzt werden. Merken Sie sich die Zeit des aktuellen Taktes und überprüfen Sie die Änderung beim nächsten Aufruf:

// в самом начале функции OnCalculate()
bool bNewBar = false;

static datetime dtLastBarTime = time[rates_total-1];

if(time[rates_total-1] > dtLastBarTime)
{
   bNewBar = true;
   dtLastBarTime = time[rates_total-1];
}

PS. Dies ist ein Beispiel für MT5. In Viererreihen (und in Fünferreihen, wenn das Array time[] eine Zeitreihe ist) ersetzen Sie time[rates_total-1] durch time[0].

 
Hallo,

Ich beschloss, einen einfachen Expert Advisor zu erstellen, nachdem ich den Artikel "A Step-by-Step Guide to Writing
MQL5 Expert Advisor für Einsteiger" (https://www.mql5.com/ru/articles/100).

Ich habe den Expert Advisor in der Vergangenheit getestet und mich gefragt, wie man ihn verbessern kann.
Das erste, was mir in den Sinn kam, abgesehen von der Optimierung
Setzen Sie den nachlaufenden Stop-Loss ein. Es gibt einen guten Artikel zu diesem Thema:
"Wie man einen Trailing Stop erstellt - MQL5 Artikel" ().
(https://www.mql5.com/ru/articles/134). Allerdings ist eine
Es ist jedoch ein Problem aufgetreten, der Expert Advisor, der dem Artikel beigefügt ist, funktioniert nicht... d.h.
(my_first_ea_sartrailing.ex5) kompiliert, aber handelt nicht
heißt es im Protokoll:
2015.11.28 22:54:38.973 2015.02.04 17:00:00 Alert: Verkaufsauftragsanforderung fehlgeschlagen - Fehlercode:4756
2015.11.28 22:54:38.973 2015.02.04 17:00:00 failed instant sell 0.10 EURUSD at 1.14051 sl: 1.17051 tp: 1.04051 [Ungültige Anfrage]
Helfen Sie, das zu klären.
 
Sergei Vladimirov:

PS. Dies ist ein Beispiel für MT5.

Ich danke Ihnen!
 

Hallo.

Können Sie mir bitte sagen, was der schnellste und korrekteste Weg ist, um alle bestehenden Aufträge zu löschen, die vom EA erteilt wurden? Ist es wirklich möglich, ein Array mit Bestellnummern zu erstellen und jede einzelne zu löschen? Ist es unmöglich, auch eine Liste der aktiven Aufträge zu erhalten?

 
Антон:

Hallo.

Können Sie mir bitte sagen, was der schnellste und korrekteste Weg ist, um alle bestehenden Aufträge zu löschen, die vom EA erteilt wurden? Ist es wirklich möglich, ein Array mit Bestellnummern zu erstellen und jede einzelne zu löschen? Können wir auch eine Liste der aktiven Aufträge erhalten?

Wir brauchen kein Array. Welches Terminal?

 
Sergei Vladimirov:

Sie brauchen kein Array. Welches Terminal?

MT5

Ja, ich hätte sagen sollen, dass dies in einem EA implementiert werden muss.

Ich habe ein Skript zu mql4 gefunden - ist es für 5 nicht relevant? Vor ein paar Tagen habe ich irgendwo eine Zeile mit einer Funktion wie "orderscancelbymagicnumber" gesehen, aber ich kann in der Dokumentation nichts finden... Verwirrt.

Grund der Beschwerde: