Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1260

 
Valeriy Yastremskiy:

Ich verstehe nicht, wie ich den Zeitpunkt der Schließung einer Position verfolgen kann, außer indem ich den Status der Position bei jedem Tick abfrage. Natürlich werden nicht alle Positionen abgefragt, aber es findet trotzdem bei jedem Tick eine Abfrage statt.

Studieren Sie die Dokumentation sorgfältig.

Документация по MQL5: Обработка событий / OnTradeTransaction
Документация по MQL5: Обработка событий / OnTradeTransaction
  • www.mql5.com
При обрабокте транзакций типа TRADE_TRANSACTION_REQUEST для получения дополнительной информации необходимо анализировать второй и третий параметры функции OnTradeTransaction() – Отправка торгового запроса на покупку приводит к цепи торговых транзакций, которые совершаются на торговом счете: 1) запрос  принимается на обработку, 2) далее для...
 
Yevhenii Levchenko:
Sie wird nicht bei jeder Zecke überprüft. Wenn es ein Signal gibt, beginnt es mit der Prüfung und eröffnet ein Geschäft. Das ist alles :)

In mql4, in Ermangelung eines Kochs *** der Hausmeister. Die Frage bezog sich auf mql5

 
Alexey Viktorov:

Studieren Sie die Dokumentation sorgfältig.

Ich danke Ihnen. Wenn wir den Auftrag durch eine Bestellung ersetzen, ist es einfacher zu verstehen. Ich habe nicht gesehen, dass die Ausführung einer Bestellung ein Geschäft ist. Im Allgemeinen ist es schwierig zu schreiben und umzusetzen.)))
Aber ja. Es gibt keinOnTradeTransaction() in mt4.
 
Valeriy Yastremskiy:
Ich danke Ihnen. Wenn die Reihenfolge durch eine Reihenfolge ersetzt wird, ist es einfacher zu verstehen. Ich habe nicht gesehen, dass die Ausführung eines Auftrags ein Geschäft ist. Alles in allem ist es kompliziert geschrieben und umgesetzt.))
So wie es ist, ja. Es gibt keinOnTradeTransaction() in mt4.

Versuchen Sie lieber, die vorhandene Terminologie zu akzeptieren und nicht durch Ihre eigene zu ersetzen. Mit der Zeit werden Sie sich daran gewöhnen, und je nach Sprache werden Sie es verstehen. Im Gegenteil, im MT4 wird eine Market Order besser als Position bezeichnet. So verstehen es viele Menschen.

 
Alexey Viktorov:

Versuchen Sie lieber, die Terminologie so zu akzeptieren, wie sie ist, anstatt sie durch Ihre eigene zu ersetzen. Mit der Zeit werden Sie sich daran gewöhnen und je nachdem, um welche Sprache es sich handelt, werden Sie sie verstehen. Umgekehrt wird eine Market Order im MT4 besser als eine Position bezeichnet. So verstehen es viele Menschen.

Mystery understandings))) Take Profit und Stop Loss sind Aufträge. Die Befehle würden klarer sein. Die Verwirrung kommt von mt4, wo ein Auftrag ein Auftrag, ein Handel und eine Position ist. Das ist, warum ich sage, um in mt5 und meine Aufträge)
 

Wie kann eine solche Struktur initialisiert werden?

struct Data
  {
   double            open[];
   double            high[];
   double            low[];
   double            close[];
  };

   Data rates[5]= {0.0,0.0,0.0,0.0}; //ошибка
 
Fast235:

Wie kann eine solche Struktur initialisiert werden?

4 bis 5. Ich kenne die Syntax nicht. Nach der Logik müsste es sich um ein 2-dimensionales Array handeln.
 
Fast235:

Wie wird eine solche Struktur initialisiert?

auf keinen Fall (nur jedes Feld der Struktur einzeln)

Sie müssen die Größe der Arrays festlegen. Sie könnten dafür einen Konstruktor schreiben, aber es wird ein Problem geben - die Syntax erlaubt es nicht, ein Array von Strukturen mit einem Konstruktor zu erstellen

Lösung - verwenden Sie eine Klasse anstelle der Struktur und verwenden Sie Zeiger, Sie können die Array-Größen im Klassenkonstruktor initialisieren, und die Daten können in sie kopiert werden


Valeriy Yastremskiy:
4 bis 5. Ich kenne die Syntax nicht. Sie sollte sich logischerweise in dem 2-dimensionalen Array befinden.
struct S
  {
   int a;
   double b;
  };

//+------------------------------------------------------------------+
void OnStart()
{
   S s[2] = {{1, 1.1},{9, 9.9}};
   ArrayPrint(s);
}
//+------------------------------------------------------------------+

2020.09.23 08:27:09.554 tst (EURUSD,H1) [a] [b]

2020.09.23 08:27:09.554 tst (EURUSD,H1) [0] 1 1.10000

2020.09.23 08:27:09.554 tst (EURUSD,H1) [1] 9 9.90000

 
Fast235:

Wie kann eine solche Struktur initialisiert werden?

   Data rates[5]= {0.0,0.0,0.0,0.0}; //ошибка

Initialisieren und annullieren sind unterschiedliche Konzepte. Wenn der Nullabgleich, Ihren Versuchen nach zu urteilen, wie folgt aussieht

  ZeroMemory(rates);
 
Igor Makanu:

auf keinen Fall (nur jedes Feld der Struktur einzeln)

Sie müssen die Größe von Arrays festlegen, Sie können einen Konstruktor dafür schreiben, aber es wird ein Problem geben - die Syntax erlaubt es nicht, ein Array von Strukturen mit dem Konstruktor zu erstellen

Lösung - verwenden Sie eine Klasse anstelle einer Struktur und verwenden Sie Zeiger, dann können Sie im Klassenkonstruktor die Array-Größen initialisieren, und die Daten können in sie kopiert werden


2020.09.23 08:27:09.554 tst (EURUSD,H1) [a] [b]

2020.09.23 08:27:09.554 tst (EURUSD,H1) [0] 1 1.10000

2020.09.23 08:27:09.554 tst (EURUSD,H1) [1] 9 9.90000

Danke. Parentheses)))) nicht Array-Syntax)
Grund der Beschwerde: