Merkmale der Sprache mql5, Feinheiten und Techniken - Seite 23

 
Artyom Trishkin:
Nein, das müssen Sie nicht. Sie müssen nur wissen, wie die letzte Position geschlossen wurde (und dafür müssen Sie nicht viel tiefer in die Historie eindringen - es reicht, um "Ihre" Geschäfte zu filtern) - das Wissen über die letzte Position tief in der Historie ist eher statistisch als operativ.
Nun, all dies wird in OnTradeTransaction erledigt. Nur in dem von fxsaber veröffentlichten Trigger : Ich würde eine Prüfung auf das Symbol, den Magier und den Handel auf DEAL_ENTRY_OUT hinzufügen
Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
Alexey Viktorov:
Nun, all dies wird in OnTradeTransaction erledigt. Nur in dem von fxsaber veröffentlichten Trigger : Ich würde eine Prüfung auf Symbol, Magier und Handel auf DEAL_ENTRY_OUT hinzufügen
Und wie würden Sie den Prüfer einchecken?
 
Artyom Trishkin:
Wie werden Sie den Prüfer einchecken?
Auf die gleiche Weise. Was ist der Unterschied? Ich habe alles im Tester und Debugger ausprobiert, um zu verstehen, wie es funktioniert.
 
Alexey Viktorov:

Ich habe mir diesen Auslöser nicht genau angesehen, aber ich habe keine Überprüfung des Handels auf DEAL_ENTRY_OUT gesehen. Schließlich ist es dieser Handel, der die Schließung der Position in den Girokonten anzeigt.

Der Scheck ist nicht erforderlich. Der Trigger wird im Tester nicht funktionieren, da der Tester keine Handelsereignisse erzeugt.
 
fxsaber:
Die Prüfung ist nicht erforderlich. Der Auslöser wird im Tester nicht funktionieren, da der Tester einige Handelsereignisse nicht erzeugt.

Welche, zum Beispiel, aus dieser Liste?

HANDEL_TRANSAKTION_AUFTRAG_HINZUFUEGEN

Fügt einen neuen offenen Auftrag hinzu.

TRADE_TRANSACTION_ORDER_UPDATE

Änderung einer offenen Bestellung. Diese Änderungen umfassen nicht nur explizite Änderungen auf der Seite des Client-Terminals oder des Handelsservers, sondern auch Änderungen des Status der Auftragserteilung (z. B. von ORDER_STATE_STARTED zu ORDER_STATE_PLACED oder von ORDER_STATE_PLACED zu ORDER_STATE_PARTIAL usw.).

HANDEL_TRANSAKTION_AUFTRAG_LOESCHEN

Löscht den Auftrag aus der Liste der offenen Aufträge. Ein Auftrag kann aus der Liste der offenen Aufträge gelöscht werden, wenn ein Handelsantrag gestellt wird oder wenn er ausgeführt (gefüllt) und in die Historie übertragen wird.

HANDEL_TRANSAKTION_GESCHAEFT_HINZUFUEGEN

Hinzufügen eines Handels zur Geschichte. Dies geschieht als Ergebnis der Auftragsausführung oder als Ergebnis der Kontostandsoperationen.

TRADE_TRANSACTION_DEAL_UPDATE

Wechsel eines Gewerbes in der Geschichte. Es kann zu Situationen kommen, in denen eine zuvor ausgeführte Transaktion auf dem Server geändert wird. Zum Beispiel wurde das Geschäft im externen Handelssystem (Börse) geändert und dort vom Broker entfernt.

HANDEL_TRANSAKTION_GESCHAEFT_LOESCHEN

Löschung der Transaktion aus der Historie. Es kann vorkommen, dass ein zuvor ausgeführter Handel auf dem Server gelöscht wird. Zum Beispiel wurde das Geschäft im externen Handelssystem (Börse) gelöscht, wo es vom Broker entfernt wurde.

TRADE_TRANSACTION_HISTORY_ADD

Hinzufügen eines Auftrags zur Historie als Ergebnis einer Ausführung oder Stornierung.

TRADE_TRANSACTION_HISTORY_UPDATE

Änderung eines Auftrags in der Auftragshistorie. Dieser Typ ist für die Erweiterung der Funktionalität auf der Seite des Handelsservers bestimmt.

TRADE_TRANSACTION_HISTORY_DELETE

Löschung eines Auftrags aus der Auftragshistorie. Dieser Typ ist für die Erweiterung der Funktionalität auf der Seite des Handelsservers vorgesehen.

HANDELS_GESCHAEFTS_POSITION

Änderung einer Position, die nicht mit der Ausführung des Geschäfts zusammenhängt. Diese Transaktionsart zeigt an, dass die Position auf der Seite des Handelsservers geändert wurde. Das Volumen der Position, der Eröffnungskurs sowie das Stop-Loss- und Take-Profit-Niveau können geändert werden. Informationen über Änderungen werden über den OnTradeTransaction-Handler an die MqlTradeTransaction-Struktur übergeben. Eine Bestandsänderung (Hinzufügung, Änderung oder Aufhebung) als Ergebnis eines Geschäfts führt nicht zum Auftreten der Transaktion TRADE_TRANSACTION_POSITION.

HANDEL_TRANSAKTION_ANFORDERUNG

Eine Benachrichtigung, dass eine Handelsanfrage vom Server bearbeitet wurde und ihr Ergebnis eingegangen ist. Für Transaktionen dieses Typs ist es notwendig, nur ein Feld zu analysieren - Typ (Transaktionsart) in der MqlTradeTransaction-Struktur. Der zweite und dritte Parameter der Funktion OnTradeTransaction (Anfrage und Ergebnis) müssen analysiert werden, um zusätzliche Informationen zu erhalten.


Es sei denn, das hervorgehobene Ereignis wird nicht erzeugt. Wer braucht sie also?

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

Welche stehen zum Beispiel auf dieser Liste?

Handelsveranstaltung ist mein Begriff.

Forum zum Thema Handel, automatisierte Handelssysteme und Testen von Handelsstrategien

Merkmale der Sprache mql5, Feinheiten und Tricks

fxsaber, 2017.02.28 19:30

Es kann eine offene KAUF-Position und ein gültiger KAUF-Auftrag vorliegen. Oben wurde ein Code-Beispiel gegeben, das aber wahrscheinlich einfacher für die Finger ist. Wie wird TP bei einer offenen Position ausgelöst?

  • Der Kurs erreicht den TP der BUY-Position.
  • Der Handelsserver erstellt einen entsprechenden aktiven SELL-Auftrag.
  • Dann hat das Terminal gleichzeitig eine KAUF- und eine VERKAUFsorder.
  • Der SELL-Auftrag wird ausgeführt, indem man in die Historie einsteigt und dort ein Geschäft erzeugt.
  • Die anfängliche BUY-Position wird auf der Grundlage dieses Geschäfts geschlossen, das nirgendwo erfasst wird - es ist indirekt in der Geschäftshistorie vorhanden.

Das ausgewählte Handelsereignis tritt im Prüfgerät nicht auf.
 
fxsaber:

Handelsveranstaltung ist mein Begriff.

Ein hervorgehobenes Handelsereignis tritt im Testgerät nicht auf.

Meiner Ansicht nach handelt es sich nicht um ein Ereignis. Es geht um die Feinheiten der Reihenfolge der Ausführung. Warum sollte ich den Moment abfangen, in dem ein SELL-Auftrag zur Schließung einer BUY-Position gleichzeitig mit der Position selbst im Terminal ist?

Es mag ein Unglück sein, dass die Abfolge der Ereignisse nicht eingehalten wird, aber ... Worauf kommt es beim Handel an? Ist es nicht die Verfolgung des Ablaufs von Ereignissen und die Messung der Geschwindigkeit? Wenn sie morgen eine Position für mich zu dem gewünschten Preis eröffnen und sie gestern mit Gewinn schließen, werde ich nichts dagegen haben.

 
Alexey Viktorov:

Meiner Meinung nach handelt es sich nicht um ein Ereignis. Es sind die Feinheiten der Abfolge der Auftragsausführung. Warum sollte ich den Moment abfangen, in dem ein SELL-Auftrag zur Schließung einer BUY-Position gleichzeitig mit der Position selbst im Terminal ist?

Lesen Sie den Titel dieses Zweigs.
 
fxsaber:
Lesen Sie den Titel des Themas.
Welchen Unterschied macht das?
 
Alexey Viktorov:
Was wird sich ändern?
Es wird sich nichts ändern, aber die Feinheiten werden beschrieben - daran besteht kein Zweifel.
Und es bleibt die Frage: Wie wird diese Funktion das Schließen von Weichen/Stopps im Prüfgerät auffangen?