automatische Funktion zur Berechnung der Losgröße? - Seite 4

 

Befinden sich die Include-Dateien im richtigen Dateiordner?

 
Antonsan:

Ist das ein Fehler, der nur mir passiert ist?
Ich kann keine Datei mit MetaEditor mq4 kompilieren, wenn ich eine Zeile mit # include einfüge.
Ich konnte auch keine mq4-Dateien kompilieren, die eine Zeile # include im Code haben.
Es werden nur Zeilen aktiviert
# Include <stderror.mqh>
# Include <stdlib.mqh>
# Include <WinUser32.mqh>

In Ergänzung zu Phillips Beitrag:

WENN Sie den obigen Code haben... lesen Sie bitte sorgfältig die Sprachdokumente.

KEIN Whitespace zwischen # und include

KEIN Großbuchstabe I... Kleinbuchstaben i verwenden

 

In der Datei Analyze Currency scheine ich ein Problem mit der Methode SymbolType() zu haben.

Ich handle mit CADJPY, meine accountcurrency() ist USD, aber sie gibt immer SymbolType = 6 zurück.

Der Grund dafür ist, dass MarketInfo("USDJPY", MODE_LOTSIZE) immer 0 zurückgibt.

Ich kann nur die LOT_SIZE für den aktuellen Chart abrufen. z.B. MarketInfo("CADJPY", MODE_LOTSIZE) funktioniert einwandfrei.

Ist dies ein Problem mit MetaTrader, wie kommt es, dass ich die Eigenschaften anderer Paare nicht abrufen kann?

 

Welchen Broker benutzen Sie, Ricotter? Bieten sie USDJPY für Sie zum Handel an?

Um zu überprüfen, ob Ihr Code korrekt implementiert ist, sollten Sie FXDD herunterladen, ein Demokonto eröffnen und Ihren Code für CADJPY ausprobieren. Es sollte funktionieren, wenn Sie die Include-Dateien richtig eingestellt haben.

 
1005phillip:

Welchen Broker benutzen Sie, Ricotter? Bieten sie USDJPY für Sie zum Handel an?

Um zu überprüfen, ob Ihr Code korrekt implementiert ist, sollten Sie FXDD herunterladen, ein Demokonto eröffnen und Ihren Code mit CADJPY testen. Es sollte funktionieren, wenn Sie die Include-Dateien richtig eingestellt haben.

Ich habe gerade einige weitere Tests durchgeführt. Ich habe alles entfernt und in der start() -Funktion nur den MarketInfo-Aufruf hinzugefügt. Beim Live-Handel funktioniert es gut, aber wenn ich den Tester verwende, gibt er für alles andere als das Symbol, für das ich den Test ausführe, 0 zurück.

Ich werde es mit FXDD testen, danke.

 
Ricotter:

Ich habe gerade einige weitere Tests durchgeführt. Ich habe alles entfernt und in der start()-Funktion nur den MarketInfo-Aufruf hinzugefügt. Beim Live-Handel funktioniert es gut, aber wenn ich den Tester verwende, gibt er für alles andere als das Symbol, für das ich den Test ausführe, 0 zurück.

Ich werde es mit FXDD testen, danke.

Mit FXDD ist es dasselbe. Wenn ich versuche, MarketInfo("USDJPY", MODE_LOTSIZE) aufzurufen, während ich den Tester mit dem CADJPY-Paar ausführe, gibt er 0 zurück. Ich habe sogar die Historie für USDCAD und USDJPY heruntergeladen.

 
Ricotter:

Das Gleiche gilt für FXDD. Wenn ich versuche, MarketInfo("USDJPY", MODE_LOTSIZE) aufzurufen, während ich den Tester gegen das CADJPY-Paar laufen lasse, gibt er 0 zurück. Ich habe sogar die Historie für USDCAD und USDJPY heruntergeladen.

MarketInfo() funktioniert nur für getestete Symbole im Tester. Alle Einschränkungen des Testers finden Sie hier -> https://www.mql5.com/en/articles/1512.
 
gordon:
MarketInfo() funktioniert nur für getestete Symbole im Tester. Alle Einschränkungen des Testers finden Sie hier -> https://www.mql5.com/en/articles/1512.

Danke!

 

Der Code übernimmt mehrere Aufgaben für Sie: Er ist symbolunabhängig und berechnet die maximale Losgröße für eine Position auf der Grundlage des Eigenkapitals, das Sie zu riskieren bereit sind, und des Stoploss-Kurses. Sobald Sie diesen Lotsize-Wert haben, kann es für Sie auch das Gewinnpotenzial basierend auf Ihrem Take-Profit-Preis berechnen.

Er berechnet auch die Crosses korrekt, was Sie eigentlich wollten... Sie müssen sich jedoch darüber im Klaren sein, dass Sie aufgrund einer grundlegenden Designbeschränkung des MT4-Backtesters, die verhindert, dass Ihr EA während des Backtests auf die historischen Preisdaten für andere Währungspaare zugreift, keine korrekten Backtests mit Crosses durchführen können. In der Praxis bedeutet dies, dass alle monetären Bewertungen, die sich aus dem Handel mit Währungspaaren in einem Backtest ergeben, grundlegend falsch sind, d.h. die Gewinne/Verluste der Trades selbst, wenn sie vom Backtester in die Kontowährung umgerechnet werden, sind einfach falsch.

Der Code, den ich verlinkt habe, berechnet sie korrekt, analytisch und ohne Abkürzungen. Aber sie können nicht in Backtesting auf Kreuze verwendet werden, weil der Code versuchen wird, und berechnen Marktbewertungen korrekt und der Backtester wird es verhindern, dies zu tun und als solche wird der Code einfach Fehlermeldungen (wie es im wirklichen Leben Forward Testing, wenn der Makler irgendwie brach ihre Währung Definitionen).

 
1005phillip:

Der Code erledigt mehrere Dinge für Sie: Er ist symbol()-unabhängig und berechnet die maximale Losgröße für eine Position auf der Grundlage des Eigenkapitals, das Sie zu riskieren bereit sind, und des Stoploss-Kurses. Sobald Sie diesen Lotsize-Wert haben, kann es für Sie auch das Gewinnpotenzial basierend auf Ihrem Take-Profit-Preis berechnen.

Er berechnet auch die Crosses korrekt, was Sie eigentlich wollten... Sie müssen sich jedoch darüber im Klaren sein, dass Sie aufgrund einer grundlegenden Designbeschränkung des MT4-Backtesters, die verhindert, dass Ihr EA während des Backtests auf die historischen Preisdaten für andere Währungspaare zugreift, keine korrekten Backtests mit Crosses durchführen können. In der Praxis bedeutet dies, dass alle monetären Bewertungen, die sich aus dem Handel mit Währungspaaren in einem Backtest ergeben, grundlegend falsch sind, d.h. die Gewinne/Verluste der Trades selbst, wenn sie vom Backtester in die Kontowährung umgerechnet werden, sind einfach falsch.

Der Code, den ich verlinkt habe, berechnet sie korrekt, analytisch, ohne Abkürzungen zu nehmen. Aber sie können nicht in Backtesting auf Kreuze verwendet werden, weil der Code versuchen wird, und berechnen Marktbewertungen korrekt und der Backtester wird es verhindern, dies zu tun und als solche wird der Code einfach Fehlermeldungen (wie es im wirklichen Leben Forward Testing, wenn der Makler irgendwie brach ihre Währung Definitionen).

Dieser Typ macht das mit Hilfe des Dateiverlaufs.

https://www.mql5.com/en/articles/1493

Grund der Beschwerde: