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

 

Hallo. Bitte helfen Sie mir mit einem Problem in mt5.

Die Historie der Währungspaarkurse nach 2016 wird nicht geladen. Broker - Gerchik.

Versucht:

1 - download Geschichte durch die Strategie-Tester.

2 - durch das Terminal der Werkzeuge. es zeigt dummerweise die Geschichte nur bis 2016.

3 - kopieren Sie die Geschichte von normalen geladenen Paar von mt5 Server. keine Verwendung, es löscht nur diese Dateien nach dem Neustart des Programms und wieder Geschichte nur bis 2016.

4 - der technische Support des Brokers sagte, man solle Paare ohne den Buchstaben Z am Ende ausführen, aber sie haben alle Währungspaare, die mit Z enden - EURUSDz, AUDCADz.

Ich vermute, dass das Problem beim Broker und seinem Server liegt, aber warum löscht er sogar den kopierten Verlauf? Kann mir jemand sagen, wie ich die Historie normal hochladen kann?

 
gyperion #:

Hallo. Bitte helfen Sie mir mit einem Problem in mt5.

Die Historie der Währungspaarkurse nach 2016 wird nicht geladen. Broker - Gerchik.

Versucht:

1 - Download Geschichte durch die Strategie-Tester.

2 - durch die Werkzeuge Terminal. es dummerweise zeigt die Geschichte nur bis 2016.

3 - kopieren Sie die Geschichte von einem normalen geladenen Paar der mt5-Server. keinen Nutzen, es löscht nur diese Dateien nach dem Neustart des Programms und wieder die Geschichte ist nur bis 2016.

4 - der technische Support des Brokers sagte, man solle Paare ohne den Buchstaben Z am Ende ausführen, aber sie haben alle Währungspaare, die mit Z enden - EURUSDz, AUDCADz.

Ich vermute, dass das Problem beim Broker und seinem Server liegt, aber warum löscht er sogar den kopierten Verlauf? Kann mir jemand sagen, wie ich die Historie normal hochladen kann?

Also vielleicht haben sie keine Geschichte, wie sie selbst sind nicht eine sehr alte Küche?

 
Aleksey Vyazmikin #:

Vielleicht haben sie also keine Geschichte, da sie selbst keine sehr alte Küche sind?

Und was gibt es für Küchen, die nicht aus Russland stammen? Das spielt eigentlich keine Rolle. Die Frage ist, wie man die Geschichte hochladen, auch wenn sie es nicht haben?
 
gyperion #:
Und was gibt es in Russland nicht zu tun? Das spielt eigentlich keine Rolle. Die Frage ist, wie kann man die Geschichte herunterladen, auch wenn man sie nicht hat?

Kannst du mir Geld leihen, auch wenn du keins hast?

 
gyperion #:
Und was gibt es in Russland nicht zu tun? Es ist nicht wirklich wichtig. Die Frage ist, wie man Geschichte hochladen, auch wenn sie es nicht haben?

Durch benutzerdefinierte Zeichen machen Sie Ihre Geschichte.

Importing High Quality Tick Data to MetaTrader 5
Importing High Quality Tick Data to MetaTrader 5
  • 2021.11.28
  • www.mql5.com
In order to vet a potential trading strategy, it is imperative to ensure that the results obtained f r om optimizations and strategy tests are a true reflection of the performance of your EA
 
Nauris Zukas #:

Durch benutzerdefinierte Zeichen machen Sie Ihre Geschichte.

Hmm. Es hat teilweise funktioniert, aber das Wichtigste ist, dass es funktioniert hat. Ich werde weiter graben. Danke für Ihre Hilfe, Sir, ich habe schon alles versucht.
 

Hallo zusammen, ich will meinen ersten Handelsroboter (Expert Advisor) schreiben. Im Backtest funktioniert er einwandfrei und auch die Testergebnisse sind respektabel. Aber da gibt es nun verschiedenes zu beachten, Account-Typen, Symbol-Eigenschaften, Interferenzen mit anderen EAs, etc.

Dafür habe ich vier Variablen:

bool isHedging; bool isFIFO; ulong positionTicket; double positionVolume;

In der Init-Methode werden die ersten zwei Variablen gesetzt:

if ((bool)AccountInfoInteger(ACCOUNT_HEDGE_ALLOWED)) isHedging = true;
else isHedging = false;
if ((bool)AccountInfoInteger(ACCOUNT_FIFO_CLOSE)) isFIFO = true;
else isFIFO = false;

Wenn ich eine Position eröffnen möchte, dann prüfe ich erst, ob das mit FIFO Probleme geben könnte (d.h. wenn ich eine Long-Position eröffnen möchte, dann schaue ich ob es bereits eine Long-Position mit demselben Volumen oder eine Short-Position für das jeweilige Symbol existiert, da ansonsten StopLoss und TakeProfit möglicherweise nicht richtig funktionieren, wie ich gehört habe). Und schließlich verwende ich die OrderSend-Methode und setzte, falls sie erfolgreich war:

positionVolume = tradeResult.volume;
positionTicket = tradeResult.deal;

Bei einem ausgeführten StopLoss oder TakeProfit erkenne ich durch die OnTradeTransaction-Methode, ob meine (interne) EA-Position geschlossen worden ist, indem ich überprüfe ob die Variable positionTicket mit transaction.position übereinstimmt.

Möchte ich eine Netting-Account-Position schließen, so schließe ich eine Long-Position einfach durch einen Short-Trade mit demselben Volumen.

Möchte ich eine Hedging-Account-Position schließen, so schließe ich die Position mit trade.PositionClose(positionTicket, slippage);

Möchte ich eine FIFO-Hedging-Account-Position schließen, so schließe ich die älteste Position des jeweiligen Symbols, welche mit Positionsrichtung (Long/Short) und Volumen übereinstimmt, welche meine eigene sein sollte aufgrund meiner oben beschrieben Entry-Bedigungen für FIFO-Accounts.

Nun bin ich mir sicher, dass ich irgendetwas Grundlegendes übersehen haben. Wie sorge ich dafür, dass StopLoss und TakeProfit bei einem Netting-Account auch geschlossen werden, wenn ich die (interne) EA-Position wie oben beschrieben schließe? Gibt es elegantere und effizientere Vorgehensweisen, um den EA FIFO-Compliant zu machen? Ist bei einem None-FIFO-Hedging-Account, falls ich eine Position im EA nur mit einer MarketOrder eröffne, nicht bearbeite und dann schließen möchte, der tradeResule.deal - Wert auch immer gleichbleibend, sodass ich diese Position auch sorgenlos mit trade.PositionClose(positionTicket, slippage) schließen kann, wobei positionTicket eben der abgespeicherte tradeResult.deal - Wert ist?

Ich habe schon etliche Tage nach Antworten gesucht, aber bisher keine gefunden, die alle Bedenken auflösen konnten. Ich hoffe mir kann hier jemand weiterhelfen.

 
Benjamin Fotteler #:

Nun bin ich mir sicher, dass ich irgendetwas Grundlegendes übersehen haben. Wie sorge ich dafür, dass StopLoss und TakeProfit bei einem Netting-Account auch geschlossen werden, wenn ich die (interne) EA-Position wie oben beschrieben schließe? Gibt es elegantere und effizientere Vorgehensweisen, um den EA FIFO-Compliant zu machen? Ist bei einem None-FIFO-Hedging-Account, falls ich eine Position im EA nur mit einer MarketOrder eröffne, nicht bearbeite und dann schließen möchte, der tradeResule.deal - Wert auch immer gleichbleibend, sodass ich diese Position auch sorgenlos mit trade.PositionClose(positionTicket, slippage) schließen kann, wobei positionTicket eben der abgespeicherte tradeResult.deal - Wert ist?

Ich habe schon etliche Tage nach Antworten gesucht, aber bisher keine gefunden, die alle Bedenken auflösen konnten. Ich hoffe mir kann hier jemand weiterhelfen.

Auf einem Netting-Konto gibt es je Symbol doch nur eine Position. Wenn der EA nur ein Symbol handelt ist das ablesbar in PositionsTotal() - oder noch einfacher PositionSelect() ist entweder falsch (=keine) oder damit auch selektiert für Weiters.

Documentation on MQL5: Trade Functions / PositionSelect
Documentation on MQL5: Trade Functions / PositionSelect
  • www.mql5.com
PositionSelect - Trade Functions - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 

Das ist richtig. Danke für den Hinweis. Aber was mache ich beispielsweise, wenn ein anderer EA auf demselben Symbol läuft, eine Position von 0.5 Lots und einem Stop-Loss von 100 Points eröffnet, mein EA eine "EA interne Position" von 0.5 und einem Stop-Loss von 150 Points eröffnet, d.h. die bestehende Position auf 1 Lot erhöht, und ich dann die "EA interne Position" schließe, also die bestehende Position auf 0.5 Lots verringere. Welchen Stop-Loss haben dann die übriggebliebenen 0.5 Lots? 100 Points oder 150 Points? Oder geht das im Netting-Modus gar nicht, dass ich in einem solchen Fall für "meine" 0.5 Lots über SendRequest einen eigenständigen Stop-Loss setze?

Ich meine, ich will keine wohl durchdachten Stop-Losses von anderen EAs einfach abändern, aber meinen eigenen auch nicht einfach aufgeben. Gibt es da eine effiziente Lösung für mein "Problem", außer nur dann im Netting-Modus eine "EA interne Position" zu eröffnen, wenn es keine offene Position für das Symbol gibt?

 
Benjamin Fotteler #:

Das ist richtig. Danke für den Hinweis. Aber was mache ich beispielsweise, wenn ein anderer EA auf demselben Symbol läuft, eine Position von 0.5 Lots und einem Stop-Loss von 100 Points eröffnet, mein EA eine "EA interne Position" von 0.5 und einem Stop-Loss von 150 Points eröffnet, d.h. die bestehende Position auf 1 Lot erhöht, und ich dann die "EA interne Position" schließe, also die bestehende Position auf 0.5 Lots verringere. Welchen Stop-Loss haben dann die übriggebliebenen 0.5 Lots? 100 Points oder 150 Points? Oder geht das im Netting-Modus gar nicht, dass ich in einem solchen Fall für "meine" 0.5 Lots über SendRequest einen eigenständigen Stop-Loss setze?

Ich meine, ich will keine wohl durchdachten Stop-Losses von anderen EAs einfach abändern, aber meinen eigenen auch nicht einfach aufgeben. Gibt es da eine effiziente Lösung für mein "Problem", außer nur dann im Netting-Modus eine "EA interne Position" zu eröffnen, wenn es keine offene Position für das Symbol gibt?

Wenn auf einem Nettig-Konto(!) der erste EA für zB. EURUSD 0,01 Lot kauft (buy) und ein zweiter EA 0,05 Lot verkauft (sell) ist doch wieder nur eine Position auf dem Konto mit jetzt 0.04 Sell. Ticket-Nr. sind hier völlig egal erst einmal. Und wenn der zweite Auftrag für die einzige Position in EURUSD neue (seine= SL und TP setzt werden die der ersten Auftrags überschrieben.

Es gibt nur eine Position mit einem SL und einem TP, sofern angegeben.

Grund der Beschwerde: