Fehler, Irrtümer, Fragen - Seite 689

 
Urain:

Alex, warum nehmen sie nicht die Mehrfachwährung als Basismodell und lassen diejenigen, die es nicht brauchen, die DCs anflehen, ihre Geschichte zu verkürzen, indem sie die Synchro-Bars streichen.

Hätte ich das Terminal als Einzelwährungs-MQ verwenden wollen, hätte ich den Mehrwährungsmodus übersehen, und das Problem hätte darin bestanden, dass ich es als Mehrwährungs-MQ positioniert hätte, was zu allen nachfolgenden Problemen geführt hätte.

Was haben Modelle oder Testmodelle damit zu tun?

Das Ziel der Plattform ist es, die ursprünglichen Informationen genau so zu empfangen und in den Terminals zu speichern, wie sie vom Server empfangen wurden.

Die Entwickler dürfen keine unvoreingenommenen Informationen geben! Es gibt nur so viele Informationen über Zecken, wie es gibt.

Wenn das Modell für das Testen mit mehreren Währungen einen Balken zu jeder Minute impliziert, ist dies kein Modell des Servers, sondern ein Modell des Testers.
Wenn
das Modell zur Erstellung von Indikatoren das Vorhandensein eines Balkens zu jeder Minute impliziert, handelt es sich nicht um ein Modell des Servers, sondern um ein Modell der Arbeit des Indikators

Man muss die Entwickler nicht anflehen , den Server so zu verändern , dass er ihren Modellen der Geschichtswahrnehmung oder des Testens entspricht, das ist nicht konstruktiv.

Wenn Sie die fehlenden Minuten benötigen, müssen Sie Ihre Maklerfirmen bitten, die Balken jeder verpassten Minute in ihre Historie aufzunehmen, und zwar mit einem einzigen Volumen.

 
hrenfx:

Bitten Sie Ihren Broker, die Metaquotes-Krücke zu umgehen? Die gleiche Krücke gilt für Singles.

Soll der Server die Startzeit des Minutenbalkens nicht um :00 Sekunden, sondern zum Zeitpunkt der Ankunft des ersten Ticks speichern, z.B. um :05 oder :24?

Wenn das alles ist, was Sie brauchen, und damit viele Testprobleme gelöst werden - werden sich das Terminal und die Qualität Ihrer Tester erheblich verbessern? Ist ein solcher Versatz von mehreren Sekunden für das Testen mit mehreren Währungen entscheidend?

Vergessen Sie nicht, dass der Tester alle Preise innerhalb eines Balkens anhand des Tickvolumens modelliert . Bringt es Ihnen viel, wenn die erste Zecke so kommt, wie sie gekommen ist, und alle anderen gar nicht kommen, wie im richtigen Leben?

Wenn diese Verschiebung keine Auswirkungen auf die nachfolgenden Ticks hat, warum dann überhaupt die Verschiebung? Um des ersten richtigen Häkchens willen?

Es scheint mir, dass ohne einen Test der tatsächlichen Tick-Historie - unter Berücksichtigung der tatsächlichen Zeit des ersten Ticks und der Modellierung der nachfolgenden Ticks - ein imaginärer Nutzen entsteht.

 
sergeev:

Was haben Modelle oder Testmodelle damit zu tun?

Der Sinn der Plattform ist es, die ursprünglichen Informationen in den Terminals eindeutig zu akzeptieren und in der Menge zu speichern, in der sie erschienen und zum Server kamen.

Die Entwickler dürfen nichts verschenken! Die Menge der Informationen auf den Zecken ist dieselbe wie beim Empfang - kein Byte mehr, kein Byte weniger.

Wenn das Modell für das Testen mit mehreren Währungen impliziert, dass jede Minute ein Balken auftaucht, ist dies kein Modell des Servers, sondern ein Modell des Testers.
Wenn
das Modell der Gebäudeindikatoren das Vorhandensein des Balkens zu jeder Minute impliziert, handelt es sich nicht um ein Servermodell, sondern um das Modell des Indikators

Bitten Sie die Entwickler nicht , den Server so zu verändern , dass er ihrer Geschichtsauffassung oder ihren Testmodellen entspricht, das ist nicht konstruktiv.

Wenn Sie die fehlenden Minuten benötigen, sollten Sie darum bitten - Ihre DCs, dass sie Balken für jede fehlende Minute zu ihrer Historie hinzufügen, mit Einheitsvolumen.

Wir verdrehen die Tatsachen, um den gewünschten Gedankengang zu erreichen :)

Der Server überträgt die Ticks, wo sehen Sie den Tickverlauf?

Andererseits empfängt das Terminal den Verlauf, der vom Server gespeichert wird, aber warum wird es als richtig angesehen, den Verlauf auf dem Server in diesem Format und nicht in einem Synchroblock-Format zu speichern?

Warum hat der Server selbst keinen Frequenzgenerator?

Warum wird es als korrekt angesehen, die Balken nach Zeit zu unterteilen, aber einen Frequenzgenerator einzuführen ist nicht mehr korrekt?

Dann sollten wir die Zeit ganz abschaffen und zu Kreuzen und Nullen übergehen. Dort gibt es im Grunde kein Zeitkonzept.

Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5
Алгоритм генерации тиков в тестере стратегий терминала MetaTrader 5
  • 2010.05.21
  • MetaQuotes Software Corp.
  • www.mql5.com
MetaTrader 5 позволяет во встроенном тестере стратегий моделировать автоматическую торговлю с помощью экспертов на языке MQL5. Такое моделирование называется тестированием экспертов, и может проводиться с использованием многопоточной оптимизации и одновременно по множеству инструментов. Для проведения тщательного тестирования требуется генерировать тики на основе имеющейся минутной истории. В статье дается подробное описание алгоритма, по которому генерируются тики для исторического тестирования в клиентском терминале MetaTrader 5.
 
sergeev:

Möchten Sie, dass der Server die Startzeit des Minutenbalkens nicht um :00 Sekunden, sondern zum Zeitpunkt des ersten Ticks speichert, zum Beispiel um :05 oder :24 ?

Nein, darum geht es nicht. Das Einzige, was zu tun ist, ist, den Eröffnungskurs des Balkens mit dem Kurs des realen Kontos zum Zeitpunkt der Minuteneröffnung übereinstimmen zu lassen. Das heißt, der Tester sollte nicht lügen, wenn er den Eröffnungskurs des Balkens bei der Minuteneröffnung anzeigt.

Ist eine solche Verschiebung um mehrere Sekunden entscheidend für das Testen von Expert Advisors mit mehreren Währungen?

Ja, denn es führt zu einer erheblichen Unsynchronisation. So entsteht beispielsweise eine nahezu konstante Arbitrage-Situation zwischen mehreren verwandten Symbolen zu den Eröffnungskursen.

Vergessen Sie nicht, dass der Tester alle Preise innerhalb eines Balkens anhand des Tickvolumens modelliert . Was haben Sie davon, wenn die erste Zecke so kommt, wie sie gekommen ist, und alle anderen überhaupt nicht so sind, wie sie im wirklichen Leben waren?

Viel mehr, als es war - die Synchronisation wird nicht nur zwischen den Schlusskursen, sondern auch zwischen den Eröffnungskursen sein. Darüber hinaus werden Barren mit mehreren Währungen synchronisiert, was bei der Optimierung eine große Menge an Rechenressourcen freisetzt, die jetzt bei jedem Durchlauf für den gleichen Vorgang - die Synchronisierung - verwendet werden.

Es scheint mir, dass ohne einen Test der realen Tick-Historie - um die reale Zeit des ersten Ticks zu berücksichtigen und die nächsten Ticks zu simulieren - ein imaginärer Gewinn entsteht.

Ich habe bereits weiter oben geschrieben, dass es nicht auf den Zeitpunkt des ersten Ticks ankommt. Aber was die Großartigkeit der Zeckengeschichte angeht - das ist in den meisten Fällen ein Mythos. Für den Großteil der TCs reicht die M1 Bid + Ask OHLC Historie aus.
 

Die Aufgabe, den Verlauf von Mehrfachwährungen zu speichern, ist der Speicherung von Videos sehr ähnlich. Sie müssen einen gültigen Sync-Frame speichern und Änderungen aus diesem Frame übernehmen.

Gegenwärtig gibt es keinen Synchro-Rahmen, sondern nur Synchro-Linien. Jede Zeile (Währungspaar) speichert ihre Änderungen und auch die Zeilen haben keinen Synchronisationspunkt.

Wir können nicht zuverlässig sagen, dass der Preis genau zu diesem Zeitpunkt (Öffnung der Bar) lag.

Da der Balken am xx:yy:00 geöffnet wurde und der Eröffnungstick am xx:yy:12 war

 
Urain:

Da die Öffnungszeit der Bar um xx:yy:00 und der Öffnungstick um xx:yy:12 war

Um sie auf diese Weise zu speichern, muss man die Entwickler mit großem Aufwand davon überzeugen, dass es das Richtige ist und alle davon profitieren werden.

Aber es ist machbar (ich meine die technische Seite). Sie müssen sie nur davon überzeugen, die serverseitige Engine (und auch die des Terminals) für die Speicherung und Verarbeitung von Balken neu zu schreiben :)

In dieser Situation ist der Widerstand (80 %) in der ersten Phase der Überzeugungsarbeit am größten. Danach ist es Sache der Programmgestalter.

Mögen Veles und Ganesh ihnen helfen

 
Urain:

Sie können nicht zuverlässig sagen, dass der Preis zu diesem Zeitpunkt (Öffnung der Bar) genau dort war.

Weil die Öffnungszeit der Bar um xx:yy:00 und der Öffnungstick um xx:yy:12 war

Das können Sie, wenn Sie nur die Schlusskurse anpeilen. Dazu müssen wir jedoch das Ereignis des Minutenschlusses (nicht des Balkenschlusses) verfolgen, wobei Close[1] als aktueller Kurs gilt.

Solche Workarounds sind völlig künstliche Krücken, die die Entwickler verwenden, aber es ist eine Hintertürlösung.

Selbst wenn die Entwickler die Situation ändern, wird der simulierte Ask-Preis immer noch eine Desynchronisation ergeben, sowohl bei der realen Analyse als auch bei der Analyse mit mehreren Währungen im Tester.

 
hrenfx:

Das stimmt, denn es führt zu einer erheblichen Unsynchronisierung. So entsteht beispielsweise eine nahezu konstante Arbitrage-Situation zwischen mehreren miteinander verknüpften Symbolen zu den Eröffnungskursen.

... Die es in Wirklichkeit nicht gibt, aber der Prüfer erzeugt beim Prüfer die Illusion, dass es Arbitrage gibt.

Oder?

 
joo:

... die es in Wirklichkeit nicht gibt, aber der Prüfer gibt dem Prüfer die Illusion, dass ein Schiedsverfahren existiert.

Oder?

Das ist richtig. Im wirklichen Leben gibt es keine Arbitrage, und das Testgerät zeigt Arbitragepreise auf der Grundlage scheinbar genauer (nicht modellierter) historischer Daten - Eröffnungskurse.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы индикаторов / Ценовые константы - Документация по MQL5
 
hrenfx:
Das ist richtig. Im wirklichen Leben gibt es keine Arbitrage, und das Testgerät zeigt Arbitragepreise auf der Grundlage scheinbar genauer (nicht modellierter) historischer Daten - Eröffnungskurse.

Das ist nicht gut...

Hier hatte ich immer das Gefühl, dass eine Analyse in mehreren Währungen vermieden werden sollte, da ich sonst einen Schlag auf die Stirn bekommen würde. Es scheint, dass ich es aus einem bestimmten Grund vermieden habe.