Daten importieren & Virtueller Tester (Entwicklung)

 

Angeregt durch das Thema hier, fehlt es dem MT5 meiner Meinung nach bei all seiner Leistungsfähigkeit an brauchbaren Optionen. Dies ist kein Thread darüber, warum mir MetaQuotes nicht gegeben hat. Sondern eher, wie ich Lösungen für das Problem finden kann. Es scheint, dass die Kontrolle über Tick-Daten und Markt-Infos in unserer Generation von Meta-Tradern nicht implementiert werden kann. Warum ist es also wichtig? Ich werde im Folgenden ein paar Gründe nennen.

1) Mein Broker durchschnittliche Spreads auf EURJPY zum Beispiel ist viel niedriger als die von Standard-Daten, wie kann ich mit diesem durchschnittlichen niedrigeren Spreads und umgekehrt zu testen? Nicht-mt5-Broker.

2) Mein System ist für schwankende Märkte konzipiert, wie würde mein System mit einem länger andauernden Trendmarkt umgehen. Ist mein Algorithmus gut genug, um es aus der Phase zu halten? Vice-versa für Trending.

3) Ich glaube, dass die Märkte zufällig sind. Wie kann ich dieses System mit einigen Zufallsdaten testen und die Ergebnisse mit den Real-Daten vergleichen?

4) Mein Broker/Verkäufer ... hat mir tonnenweise qualitativ hochwertige Daten gegeben/verkauft, aber sie haben keinen mt5 Server, wie könnte ich diese in mt5 bekommen, um meine Backtests durchzuführen?

5) Ich glaube an Real-Ticks und nicht an algorithmisch generierte Ticks. Ich habe meine Ticks für die letzten x Jahre gespeichert und würde es bevorzugen, diese zu verwenden, was sind meine Optionen?

6) Ich möchte Vertrauen und eine bessere Kontrolle über Environment[market-info] und Data[price|time|spreads] haben, was kann ich da tun?

Ich hatte noch mehr Gründe, aber irgendwie kann ich mich im Moment nicht an alle erinnern. Ich hoffe, ich höre Ihre Gründe :)

 

Das Ziel:

Ich glaube, das Ziel sollte einfach sein. Und das einfache Ziel, das ich im Sinn habe, ist, den mt5-Strategietester dazu zu bringen, Daten in einem .csv | .hst-Format zu verwenden. Alle anderen Feinheiten können später kommen.

Ich glaube, die erste Phase der Diskussion sollte sein "ist das machbar". Die offensichtliche Frage hier "warum mt5". Wie ich bereits erwähnt habe, ist es leistungsfähiger als sein Vorgänger. Die meisten von uns [die sich dafür interessieren], sind stark in die mql*-Sprache investiert. Außerdem wird die Diskussion über andere Plattformen auf dieser Seite nicht gut ankommen. Und schließlich kommt es nicht in Frage, das Rad neu zu erfinden.

Daher suche ich nach Ideen, um so viel wie möglich von dem, was wir haben, zu übernehmen. Also lasst uns diese hellen Ideen hören, Leute!

1> Ich denke, wenn diese EMULATION_MODES vollständig in den Backtester integriert werden könnten, würde das vieles möglich machen. Auch die Möglichkeit, im Backtester zu schlafen, wäre ein nützliches Werkzeug. Ich bin noch dabei, dies zu erforschen und einen Blick auf die bereits entwickelten Virtual Stuff zu werfen. Tut mir leid, wenn es so aussieht, als ob ich mich nicht auskenne, aber es gibt eine Nachfrage zu diesem Thema und deshalb brauche ich euch. Prost!

 
Ubzen:

Das Ziel:

Ich glaube, das Ziel sollte einfach sein. Und das einfache Ziel, das ich im Sinn habe, ist, den mt5-Strategietester dazu zu bringen, Daten in einem .csv | .hst-Format zu verwenden. Alle anderen Feinheiten können später kommen.

Ich glaube, die erste Phase der Diskussion sollte sein "ist das machbar". Die offensichtliche Frage hier "warum mt5". Wie ich bereits erwähnt habe, ist es leistungsfähiger als sein Vorgänger. Die meisten von uns [die sich dafür interessieren], sind stark in die mql*-Sprache investiert. Außerdem wird die Diskussion über andere Plattformen auf dieser Seite nicht gut ankommen. Und schließlich kommt es nicht in Frage, das Rad neu zu erfinden.

Daher suche ich nach Ideen, um so viel wie möglich von dem, was wir haben, zu übernehmen. Also lasst uns diese hellen Ideen hören, Leute!

1> Ich denke, wenn diese EMULATION_MODES vollständig in den Backtester integriert werden könnten, würde das vieles möglich machen. Auch die Möglichkeit, im Backtester zu schlafen, wäre ein nützliches Werkzeug. Ich bin noch dabei, dies zu erforschen und einen Blick auf die bereits entwickelten Virtual Stuff zu werfen. Tut mir leid, wenn es so aussieht, als ob ich mich nicht auskenne, aber es gibt eine Nachfrage zu diesem Thema und deshalb brauche ich euch. Prost!

Ich habe aus erster Hand erfahren, dass einige Dinge einfach nicht funktionieren, viele Objekttypen werden zwar unterstützt, aber man kann nicht mit der rechten Maustaste auf das Diagramm klicken und eine Liste der Objekte sehen, also sei ein wenig vorsichtig, wenn du eine Lösung entwirfst, denn es kann sein, dass das, was du entwirfst, nicht unterstützt wird. Wenn Sie z.B. einige Produkte für den Markt erstellt haben, die sich auf Button-Objekte oder ChartGetInteger() mit CHART_FIRST_VISIBLE_BAR, CHART_VISIBLE_BARS, CHART_WIDTH_IN_PIXELS und CHART_HEIGHT_IN_PIXELS verlassen, dann hätten Sie Produkte, die nicht als Demoprodukte ausprobiert werden können, da diese Funktionen/Merkmale im Strategy Tester nicht funktionieren.

Was funktioniert sonst noch nicht im Strategietester?

Was wir wirklich brauchen, ist, dass Metaquotes eine lokale History Data Server-Anwendung programmiert, die nicht nur unsere gespeicherten History-Daten verwaltet, sondern es uns auch ermöglicht, unsere eigenen Symbole zu erstellen, indem wir die Symboleigenschaften anpassen ... Backtests mit Offline-Charts wären dann einfach.

Documentation on MQL5: Standard Constants, Enumerations and Structures / Environment State / Symbol Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Environment State / Symbol Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Environment State / Symbol Properties - Documentation on MQL5
 
Ubzen:

Das Ziel:

Ich glaube, das Ziel sollte einfach sein. Und das einfache Ziel, das ich im Sinn habe, ist, den mt5-Strategietester dazu zu bringen, Daten in einem .csv | .hst-Format zu verwenden. Alle anderen Funktionen können später hinzugefügt werden.

...

Wie kann dies möglich sein? Wir haben keine Kontrolle über den Strategietester. Ich denke, wir haben nur 2 Möglichkeiten:

  1. Den Strategy Tester so zu verwenden, wie er ist, und zu versuchen, die Daten zu bearbeiten. ST verwendet eine .hcs-Datei, deren Struktur im Moment unbekannt ist (AFAIK). Ist es möglich, diese Datei durch Ihre eigene zu ersetzen und Ergebnisse zu erhalten?
  2. Verwenden Sie einen Virtual Strategy Tester, über den wir die volle Kontrolle haben. Das bedeutet mehr Arbeit , aber auch mehr Unabhängigkeit, da wir nicht mehr vonÄnderungen im Format hcs abhängig sind.

Wir können die 2 Optionen untersuchen. Meine Idee war eher die zweite.

 

Ein komplettes System zu schreiben ist keine einfache Aufgabe, aber ein erreichbares Ziel.

In dem Moment, in dem Sie mit dem Schreiben eines solchen Systems beginnen, werden Sie jedoch Ihre Zeit mit der Entwicklung dieses Systems verbringen und nicht mit dem Handel oder der Entwicklung von Handelssystemen. Denn die Menge an Arbeit ist endlos.

Die wichtigste Entscheidung, die Sie treffen müssen, ist die Entscheidung, Ihr eigenes System zu entwickeln. Sie müssen sich komplett außerhalb von MT5 bewegen, sonst werden Sie immer und ständig irgendwelche Kompromisse eingehen und doppelten Code schreiben müssen (wie es jetzt bei MT4-MT5 der Fall ist). Außerdem sind einige großartige Dinge wie Strategietester-Agenten nicht so einfach zu implementieren.

Es gibt zumindest ein bereits existierendes Framework, also sollte man so etwas verwenden.

Let me google that for you
Let me google that for you
  • bit.ly
Let Me Google That For You
 
graziani:

Die Erstellung eines vollständigen Systems ist keine einfache Aufgabe, aber ein erreichbares Ziel.

Ich bin daran interessiert, zu verstehen, wie Sie es mit mql5 kodiert EAs und Indikatoren arbeiten würde?
 
RaptorUK:
Ich bin daran interessiert, zu verstehen, wie Sie es mit mql5 kodierten EAs und Indikatoren funktionieren lassen würden?

Das geht nicht. Sie müssen MT5 verlassen. Alle zukünftigen EAs/Indikatoren werden außerhalb von MT4/MT5 geschrieben, dann verwenden Sie MT4/MT5 als Tickstream-Anbieter und für die Auftragsausführung.

Für Backtest-Zwecke können Sie das Datenbankformat zurückentwickeln ( verboten, aber machbar) und M1 durch S1-Datensätze (eine Sekunde, nicht ein Tick) ersetzen und dann einfach die M1-Historie in ST durchlaufen. Aber ich sehe keine Verwendung dafür, denn für den Live-Stream müssen Sie einen völlig anderen EA schreiben, der interne Indikatoren verwenden muss, da er den gesammelten Tick-Stream und nicht die Historien-Arrays verarbeiten sollte.

Ich wollte damit sagen, dass man sich, wenn man ein solches Projekt startet, auf den Aufbau eines weiteren "MT4/5" und nicht auf den Handel konzentrieren würde.

 
graziani:

Das geht nicht. Sie müssen MT5 verlassen. Alle zukünftigen EAs/Indikatoren werden außerhalb von MT4/MT5 geschrieben, dann verwenden Sie MT4/MT5 als Tickstream-Anbieter und für die Auftragsausführung.

Für Backtest-Zwecke können Sie das Datenbankformat zurückentwickeln ( verboten, aber machbar) und M1 durch S1-Datensätze (eine Sekunde, nicht ein Tick) ersetzen und dann einfach die M1-Historie in ST durchlaufen. Aber ich sehe keine Verwendung dafür, denn für den Live-Stream müssen Sie einen völlig anderen EA schreiben, der interne Indikatoren verwenden muss, da er den gesammelten Tick-Stream und nicht die Historien-Arrays verarbeiten sollte.

Ich wollte damit sagen, dass man sich, wenn man ein solches Projekt startet, auf den Aufbau eines weiteren MT4/5" und nicht auf den Handel konzentrieren würde.

Vielen Dank für die Antwort, ich dachte, ich hätte verstanden, was Sie andeuten wollten, ich wollte nur, dass Sie sich klar ausdrücken, und das haben Sie getan.

 

@RaptorUK: Danke, ich verstehe, dass vielleicht nicht alles unterstützt wird. Ich weiß nicht alles, was im Strategietester nicht funktioniert. Ich mache kein Produkt für den Markt. Jemand, der Produkte herstellt, hat seine eigenen Probleme. Sie können entweder die von uns erstellten Codes ändern oder auf mq warten. Mq beteiligt sich nicht an diesen Diskussionen (ignoriert uns), ich habe es satt, sie um etwas zu bitten.

@angevoyageur: Ich stimme zu, dass wir etwas wie Option #2 brauchen. Ich habe nichts dagegen, ein wenig mehr Arbeit für mehr Unabhängigkeit zu machen. Was auch immer wir uns einfallen lassen, es muss einfach angenommen und akzeptiert werden. Sonst ist die ganze Arbeit umsonst gewesen. Ich glaube nicht, dass wir es so einfach machen können, wie : [code your ea in mql5] [start the strategy tester] [and virtual strategy tester takes over]. Wir könnten jedoch Drop-in-Ersatz für Funktionen verwenden, die bereits existieren, indem wir ein 'v' vor den Funktionsnamen setzen.

@graziani: Wie wäre es damit für einfach. FileRead( my.csv ); FileRead( my.market.info ). Ersetzen Sie Ihr Marketinfo() durch vMarketInfo(). DrawObjects als Strategie-Tester bewegt. Erstellen Sie einen Bericht.......Done. :), Also was denken Sie? Leichter gesagt als getan, oder?

Ein Wechsel außerhalb von mt4 oder mt5 würde nicht funktionieren, weil ich versuche, Unterstützung von Programmierern zu bekommen, die ähnlich wie ich von mql4-mql5 sind. Um die Motivation für solche Projekte aufrechtzuerhalten, braucht es eine erfolgreiche Adaption durch andere, und sei es nur zu Testzwecken|Bug-Reporting. Ich mag die Agenten und die Optimierer, ich hatte gehofft, jemand würde sagen, dass es einfach zu implementieren ist (hier ist wie) :(. Seien wir mal ehrlich, alle Funktionen von mt4/mt5 werden von der ersten Version dieser VST nicht unterstützt werden.

Unterstützung für Daten, Markt-Infos, Markt-Ausführung, Multi-Währung und ein einfaches Reporting ist das, was im Moment benötigt wird. Je mehr Leute jederzeit freiwillig an diesem Projekt mitarbeiten können, desto erfolgreicher wird es sein. Wenn das Projekt sich außerhalb von mt bewegt, müssen wir all das oben genannte und viele andere Dinge bauen, die wir vorher nie in Betracht gezogen haben.

Ich hatte wirklich gehofft, dass wir vorgefertigte mql5-Codes verwenden können. Wenn niemand eine Möglichkeit vorschlägt, dies zu tun, angevoyageur#1, dann werden wir zu angevoyageur#2 übergehen.

 
RaptorUK:

Danke für die Antwort, ich dachte, ich hätte verstanden, worauf Sie hinauswollten, ich wollte nur, dass Sie sich klar ausdrücken, und das haben Sie getan.


Es ist keine Frage, etwas außerhalb von MT5 zu tun. Es geht nicht darum, alles neu zu programmieren , was bereits mit dem Strategy Tester funktioniert . Es geht auch nicht darum , den Strategy Tester zu ersetzen . Die Idee ist, etwas zu entwickeln , das den Strategy Tester ergänzt , und zwar durch die eine oder andere der beiden Optionen (siehe oben) oder eine Kombination aus beiden.
 
Ubzen:

@RaptorUK: Danke, ich verstehe, dass vielleicht nicht alles unterstützt wird. Ich weiß nicht alles, was im Strategietester nicht funktioniert. Ich mache kein Produkt für den Markt. Jemand, der Produkte herstellt, hat seine eigenen Probleme. Sie können entweder die von uns erstellten Codes ändern oder auf mq warten. Mq beteiligt sich nicht an diesen Diskussionen (ignoriert uns), ich habe es satt, sie um etwas zu bitten.

@angevoyageur: Ich stimme zu, dass wir etwas wie Option #2 brauchen. Ich habe nichts dagegen, ein wenig mehr Arbeit für mehr Unabhängigkeit zu machen. Was auch immer wir uns einfallen lassen, es muss einfach angenommen und akzeptiert werden. Sonst ist die ganze Arbeit umsonst gewesen. Ich glaube nicht, dass wir es so einfach machen können, wie : [code your ea in mql5] [start the strategy tester] [and virtual strategy tester takes over]. Wir könnten jedoch Drop-in-Ersatz für Funktionen verwenden, die bereits existieren, indem wir ein 'v' vor den Funktionsnamen setzen.

@graziani: Wie wäre es damit für einfach. FileRead( my.csv ); FileRead( my.market.info ). Ersetzen Sie Ihr Marketinfo() durch vMarketInfo(). DrawObjects als Strategie-Tester bewegt. Erstellen Sie einen Bericht.......Done. :), Also was denken Sie? Leichter gesagt als getan, oder?

Ein Wechsel außerhalb von mt4 oder mt5 würde nicht funktionieren, weil ich versuche, Unterstützung von Programmierern zu bekommen, die ähnlich wie ich von mql4-mql5 sind. Um die Motivation für solche Projekte aufrechtzuerhalten, braucht es eine erfolgreiche Adaption durch andere, und sei es nur zu Testzwecken|Bug-Reporting. Ich mag die Agenten und die Optimierer, ich hatte gehofft, dass jemand sagen würde, dass es einfach zu implementieren ist (hier ist wie) :(. Seien wir mal ehrlich, alle Funktionen von mt4/mt5 werden von der ersten Version dieser VST nicht unterstützt werden.

Unterstützung für Daten, Markt-Infos, Markt-Ausführung, Multi-Währung und ein einfaches Reporting ist das, was im Moment benötigt wird. Je mehr Leute jederzeit freiwillig an diesem Projekt mitarbeiten können, desto erfolgreicher wird es sein. Wenn das Projekt sich außerhalb von mt bewegt, müssen wir all die oben genannten und viele andere Dinge bauen, die wir vorher nie in Betracht gezogen haben.

Ich hatte wirklich gehofft, dass wir vorgefertigte mql5-Codes verwenden können. Wenn niemand eine Möglichkeit vorschlägt, dies zu tun, angevoyageur#1, dann werden wir zu angevoyageur#2 übergehen.

Wir sind auf der gleichen Wellenlänge.