Diskussion zum Artikel "Das MQL5-Kochbuch: Die Eigenschaften offener Hedge-Positionen abfragen"

 

Neuer Artikel Das MQL5-Kochbuch: Die Eigenschaften offener Hedge-Positionen abfragen :

MetaTrader 5 ist eine Multi-Asset-Plattform. Darüber hinaus unterstützt sie verschiedene Positionsmanagementsysteme. Diese Möglichkeiten bieten deutlich erweiterte Möglichkeiten für die Umsetzung und Formalisierung von Handelsideen. In diesem Artikel werden Methoden zur Handhabung und Bilanzierung von Positionseigenschaften im Hedging-Modus diskutiert. Der Artikel enthält eine abgeleitete Klasse sowie Beispiele, die zeigen, wie man die Eigenschaften einer Hedge-Position abfragt und verarbeitet.

Eine der kürzlich hinzugefügten Terminalfunktionen des MetaTrader 5 ist die Möglichkeit, bidirektionale Positionen zu öffnen. Dieses Kontensystem der Positionen wird als Hedging bezeichnet. Die Unterstützung dieses Systems ermöglicht eine einfache Übertragung von Handelsalgorithmen von MetaTrader 4 auf die fünfte Plattformversion und nutzt gleichzeitig die Vorteile der erweiterten MetaTrader 5 Funktionalität. Für weitere Details zu den Optionen des Hedging-Systems in MetaTrader 5 lesen Sie bitte den Artikel "Hedging-System zur Verrechnung von Positionen in MetaTrader 5 verfügbar".

In diesem Artikel werden wir die Eigenschaften der Gesamtposition, die Gegenstand des Hedging-System ist, besprechen.

Das Panel der Eigenschaften einer Hedge-Position

Abb.4 Das Panel der Eigenschaften einer Hedge-Position

Autor: Denis Kirichenko

 

DerEröffnungskurs wird aus irgendeinem Grund von Digits normalisiert.

Die Provision wird mit einem Fehler und langsam berechnet: Sie wird normalisiert und bei jedem Schritt des Zyklus verdoppelt.

 
fxsaber:

DerEröffnungskurs wird aus irgendeinem Grund von Digits normalisiert.

Die Provision wird mit einem Fehler und langsam berechnet: Sie wird normalisiert und bei jedem Schritt des Zyklus verdoppelt.

Vielen Dank für Ihre Meinung.

Ich habe den Code bezüglich der Normalisierung überprüft. Es gibt nur zwei Fälle in der Klasse CHedgePositionInfo: Provision und Marge. Die Preise bleiben unnormalisiert. Der Eröffnungskurs ist, soweit ich weiß, für den Druck im Testskript Test_hedge_properties.mq5 implizit normalisiert.

Dann zur Provision. Haben Sie sie mit den Aufzeichnungen auf der Registerkarte "Historie" verglichen? Dort wird der Provisionswert für jeden Handel auf den nächsten Wert von 2 normiert, und bei der Verdopplung wird der Zeitpunkt des Ausstiegs(DEAL_ENTRY_OUT) berücksichtigt. Das heißt, das Panel spiegelt die Provision für den gesamten Zyklus wider - Eröffnung und Schließung. Dies wird in dem Artikel erwähnt.

 
Denis Kirichenko:

Ich danke Ihnen für Ihre Meinung.

Ich habe den Code bezüglich der Normalisierung überprüft. Es gibt nur zwei Fälle in der Klasse CHedgePositionInfo: Provision und Marge. Die Preise bleiben unnormalisiert. Der Eröffnungskurs wird, soweit ich weiß, für den Druck im Testskript Test_hedge_properties.mq5 implizit normalisiert.

Ja, es ging um den Druck.

Dann um die Provision. Haben Sie sie mit den Aufzeichnungen auf der Registerkarte "Historie" verglichen? Dort wird der Provisionswert für jeden Handel auf den nächsten Wert von 2 normalisiert, und bei der Verdopplung wird der Zeitpunkt des Ausstiegs(DEAL_ENTRY_OUT) berücksichtigt. Das heißt, das Panel spiegelt die Provision für den gesamten Zyklus wider - Eröffnung und Schließung. Dies wird in dem Artikel erwähnt.

Nein, ich habe nach dem Code geurteilt. Eröffnen Sie eine Position und schließen Sie dann einen Teil der Position. Nach Ihrem Code ändert sich die Provision für die aktuelle Position nicht.

Außerdem ist die Verdoppelung eine gute Absicht, die ein Problem schafft. Der Punkt ist, dass der Saldo nach dem Schließen aller Positionen gleich Equity + PositionCommission sein muss. Aber dann sollte es keine Verdopplung geben, weil MT5 die Eröffnungsprovision bereits bei der Eröffnung von Positionen in der Balance berücksichtigt hat.


Und es ist sehr teuer, bei jedem Schritt des Zyklus eine Normalisierung bei der Berechnung der Kommission durchzuführen. Das ist wichtig für die Optimierung.

 
fxsaber:

...Nein, nach dem Code zu urteilen. Sie öffnen eine Position und schließen dann einen Teil davon. Nach Ihrem Code ändert sich die Provision für die aktuelle Position nicht.

Außerdem ist die Verdopplung eine gute Absicht, die ein Problem schafft. Der Punkt ist, dass der Saldo nach dem Schließen aller Positionen gleich Equity + PositionCommission sein muss. Aber dann sollte es keine Verdopplung geben, weil MT5 die Eröffnungsprovision bereits bei der Eröffnung von Positionen in der Balance berücksichtigt hat.

Ja, sie wird sich nicht ändern. Der Zweck war, die maximale Provision anzuzeigen, die wir insgesamt für die aktuelle Absicherung zahlen. Außerdem haben wir einen Teil davon bereits bezahlt und werden den zweiten Teil später bezahlen. Aber es gibt Nuancen.

So gibt es zum Beispiel eine Art von Geschäft, das DEAL_ENTRY_OUT_BY genannt wird. Hier gibt es überhaupt keine Provision, zumindest nicht bei meinem Broker. Die Provision kann sich auch ändern (Ein- und Ausstieg können unterschiedlich viel kosten), wenn die Kontowährung nicht mit der Basiswährung übereinstimmt. Mein Beispiel ist also alles andere als ideal....

Wie kommen Sie darauf, dass ich das brauche? Ich habe nur eine der Möglichkeiten zur Berechnung von Gemeinkosten wie Provisionen aufgezeigt.


Nun, bei der Berechnung von Provisionen ist es sehr teuer, bei jedem Schritt der Schleife zu normalisieren. Das ist wichtig für die Optimierung.

Außer bei der Optimierung. Nun, niemand hindert Sie daran, Ihre eigenen Änderungen vorzunehmen und diese im Code zu berücksichtigen.

 
Denis Kirichenko:

Ja, das wird sich nicht ändern. Das Ziel war es, den Höchstbetrag der Provision aufzuzeigen, den wir insgesamt für die aktuelle Absicherung zahlen. Außerdem haben wir einen Teil davon bereits gezahlt und werden den zweiten Teil später zahlen. Aber es gibt Nuancen.

So gibt es zum Beispiel eine Art von Geschäft, das DEAL_ENTRY_OUT_BY genannt wird. Hier fällt überhaupt keine Provision an, zumindest nicht bei meinem Makler.

CloseBy ist per Definition nicht provisionspflichtig.

Die Provision kann sich auch ändern (Ein- und Ausstieg können unterschiedlich viel kosten), wenn die Kontowährung nicht mit der Basiswährung übereinstimmt. Mein Beispiel ist also alles andere als perfekt....

Wie kommen Sie darauf, dass ich das brauche? Ich habe nur eine der Möglichkeiten gezeigt, wie man solche Gemeinkosten wie Provisionen berechnen kann.

Denn in der Sprache von MT4 ist Equity = Balance + Profit + Swap + Commission. Dies ist die gängigste Logik. Aber natürlich können Sie Ihre eigene haben.

Außer für die Optimierung. Nun, niemand hindert Sie daran, Ihre eigenen Änderungen vorzunehmen und sie im Code zu berücksichtigen.

Die Entwickler versuchen, den Optimierer schneller zu machen. Aber langsamer Code ist in Artikeln erlaubt. Das sieht seltsam aus.

 
fxsaber:

Denn in der Sprache desselben MT4 ist Equity = Balance + Profit + Swap + Commission. Dies ist die häufigste Logik. Aber natürlich können Sie Ihre eigene Logik haben.

Sie werden mir nicht glauben, ich denke genauso über Equity :-))))

Ich werde eine Auswahl für die Kommissionsmethode treffen, wie man zählt. Änderungen am Code vornehmen...

...Die Entwickler sprechen davon, den Optimierer schneller zu machen. Aber in den Artikeln erlauben sie langsamen Code. Das sieht seltsam aus.

Um es diplomatisch auszudrücken. Kochst du immer noch? - Ich teste seit langem alles in der Cloud und mache mir keine Sorgen, dass es irgendwo unnötige Normalisierungen und mehrzeilige Makros gibt...

 
Denis Kirichenko:

Ich teste schon seit langem alles in der Cloud und mache mir keine Sorgen, dass es irgendwo unnötige Normalisierungen und keine mehrzeiligen Makros gibt...

Es scheint ein lang anhaltender Trend zu sein, selbst die einfachste algorithmische Optimierung durch die Macht der Hardware zu ersetzen. Das kann ich nicht tun.

 
fxsaber:

Dass selbst die einfachste algorithmische Optimierung durch die Leistung der Hardware ersetzt wird, ist offenbar ein lang anhaltender Trend. Ich kann das nicht tun.

Die Gigahertz- und Gigabyte-Generation.

 

Hallo,

Als ich die Zip-Datei heruntergeladen und extrahiert habe und sie im Editor geöffnet habe, kam beim Kompilieren ein Haufen Fehler zurück.


Gibt es etwas, das ich verwenden kann?


Vielen Dank

 

Wenn ihr meinem Weg folgt, wird es keine Fehler geben. Der Weg ist einfach. Öffnen Sie Ihren MetaEditor und:

1) erstellen Sie einen Unterordner "Hedge" im Ordner "Shared Projects";

2) legen Sie die Quelldateien in den Unterordner.


ME-Navigator

Dann können Sie HedgePropertiesEA.mq5 (ein Expert Advisor) und Test_hedge_properties.mq5 (ein Skript) kompilieren. Sobald die Kompilierung erfolgreich abgeschlossen ist, finden Sie die ausführbaren Dateien im Terminalnavigator.


MT5 Navigator