Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 1558

 
Vladimir Perervenko:

Es ist eine Menge Arbeit, den Code eines anderen zu zerlegen. Wir sehen uns nur die Funktion custom_tester() und nur den hervorgehobenen Teil an.

Wie groß ist der Fehler bei der Berechnung des Ergebnisses? Sie berechnen das Ergebnis bei jeder Iteration, indem Sie result += testpr[i] - lastpr zum vorherigen Wert addieren. Es handelt sich um die Differenz zwischen dem Close des aktuellen Balkens und dem des vorherigen. Idealerweise wäre es besser, Schließen - Öffnen zu verwenden, aber das spielt keine Rolle. Wichtig ist, dass Sie ein Signal, das Sie zum Schluss des aktuellen Balkens erhalten haben, als ein Signal diff(Close) desselben Balkens betrachten. Dies ist falsch. Der Signalaufschlag des aktuellen Balkens ist diff(Close) des nächsten Balkens. Das Signal muss um einen Balken nach rechts verschoben werden, um das Ergebnis korrekt zu berechnen. p = model.predict_proba(X) um einen Balken nach rechts. Ich werde weitere Berechnungen mit R durchführen, da dies für mich einfacher ist.

In der ersten Zeile wandeln Sie die Vorhersagen in nominale (1,-1) um, verschieben sie um einen Balken nach rechts, entfernen NA und erhalten einen Vektor von Signalen. Die zweite Zeile fasst das Produkt aus Signalvektor und diff(Close)-Vektor kumulativ zusammen, nachdem es zuvor an den Signalvektor in der Länge angepasst wurde. Das wird uns das richtige Ergebnis liefern.

Viel Glück!

Bei der Eröffnung einer Position wird der aktuelle Kurs gespeichert. Wenn sich das Signal im Zyklus nicht ändert, bewegen wir den Preis weiter nach vorne und halten den Handel offen.

Wenn sich das Signal auf dem nächsten Balken ändert, kehren Sie den Handel um (lastdeal) und ziehen vom aktuellen Preis den Eröffnungskurs des Handels ab, die Differenz = Gewinn oder Verlust, addieren Sie zum kumulierten Gesamtbetrag der Bilanz

Für den Kauf subtrahieren Sie den Eröffnungskurs vom aktuellen Kurs, für den Verkauf - umgekehrt. Es liegt kein Fehler vor

Da das Signal für den aktuellen Takt genommen wird, sollte es nicht verschoben werden

1 - verkaufen, 0 - kaufen. Legende. Das Prüfgerät ist sehr einfach

Vielleicht kann der Code gekürzt werden, ich habe mich nicht darum gekümmert

 
Maxim Dmitrievsky:

Bei der Eröffnung eines Geschäfts wird der aktuelle Kurs beibehalten. Wenn sich das Signal im Zyklus nicht geändert hat, bewegen wir den Kurs weiter und halten den Handel offen.

Wenn sich das Signal auf dem nächsten Balken ändert, kehren Sie den Handel um (lastdeal) und ziehen vom aktuellen Preis den Eröffnungskurs des Handels ab, die Differenz = Gewinn oder Verlust, addieren Sie zum kumulierten Gesamtbetrag der Bilanz

Für den Kauf subtrahieren Sie den Eröffnungskurs vom aktuellen Kurs, für den Verkauf - umgekehrt. Es liegt kein Fehler vor

Da das Signal für den aktuellen Takt genommen wird, sollte es nicht verschoben werden

1 - verkaufen, 0 - kaufen. Legende. Das Prüfgerät ist sehr einfach

Vielleicht kann der Code gekürzt werden, ich habe mich nicht darum gekümmert

Dies ist ein anderer Ansatz. Bei dieser Variante scheint es wirklich richtig zu sein. Ich nehme meine Bemerkung zurück.

Viel Glück!

 

Für diejenigen, die sich für die Rückkehrer interessieren - einige Informationen in den Kammmatten

https://smart-lab.ru/blog/569692.php#comments

Тестирование модели на машинном обучении. Часть четвертая.
Тестирование модели на машинном обучении. Часть четвертая.
  • smart-lab.ru
Тестирование модели на машинном обучении. Часть четвертая.
 
Maxim Dmitrievsky:

Für diejenigen, die sich für die Rückkehrer interessieren - einige Informationen in den Kammbrettern

https://smart-lab.ru/blog/569692.php#comments

allein der Name macht schon Angst :-)

 
Mann, ich stecke wie immer in der Klemme. Wer hätte gedacht, dass es so schwierig sein würde, ein Array in Java einzigartig zu machen. :-(
 
Grigoriy Chaunin:

Eine neue Version der Bibliothek zur Anbindung von Python an MT5 wurde veröffentlicht. Aufruf des Links https://github.com/RandomKori/Py36MT5 Aber es gibt Probleme. In Visual Studio funktioniert das Testprojekt wie es sollte, aber in MT gibt es einige unklare Probleme. Jetzt funktioniert die Bibliothek problemlos mit dem Verzeichnis, in dem sich das Python-Skript befindet. Ich weiß nicht, wie ich den Link zu MT debuggen kann. MT ist vor dem Debugger geschützt. Vielleicht weiß jemand, wie man Fehler beheben kann?

Hallo,

Bitte teilen Sie mir mit, wie ich die Bibliothek anschließen kann.

Das Skript kann sich in einem beliebigen Verzeichnis befinden? Der Code ist fest mit "C:\local\Scripts\" verdrahtet.

Wenn die dll im Ordner "MQL5\Libraries" abgelegt wird, ist die Bibliothek enthalten, aber alle anderen Bibliotheken, "python36.dll, kernell32.dll usw." sind nicht sichtbar.

Im Feld Pfad wird der Pfad zur Python-Datei angegeben.

Wie wird pymt.dll korrekt verbunden?

 
 
 
Maxim Dmitrievsky:

Auf den ersten Blick ist eine deutliche Überqualifizierung festzustellen. Man konnte sehen, dass sie sich heute genauso verhalten wie gestern. 200 Jahre Erfahrung, die sie angeblich im Laufe ihrer Ausbildung sammeln, sind also bei weitem nicht das, was gebraucht wird :-(

 
Mihail Marchukajtes:

Auf den ersten Blick ist eine deutliche Überqualifizierung festzustellen. Man konnte sehen, dass sie sich heute genauso verhalten wie gestern. 200 Jahre Erfahrung, die sie angeblich in der Ausbildung gesammelt haben, sind also nicht das, was sie brauchen :-(

Ja, null Intelligenz