Diskussion zum Artikel "Entwicklung eines Roboters in Python und MQL5 (Teil 1): Vorverarbeitung der Daten"

 

Neuer Artikel Entwicklung eines Roboters in Python und MQL5 (Teil 1): Vorverarbeitung der Daten :

Entwicklung eines auf maschinellem Lernen basierenden Handelsroboters: Ein detaillierter Leitfaden. Der erste Artikel in dieser Reihe befasst sich mit der Erfassung und Aufbereitung von Daten und Merkmalen. Das Projekt wird unter Verwendung der Programmiersprache Python und der Bibliotheken sowie der Plattform MetaTrader 5 umgesetzt.

Der Markt wird immer komplexer. Es ist zu einer Schlacht der Algorithmen geworden. Über 95 % des Handelsumsatzes wird von Robotern generiert. 

Der nächste Schritt ist das maschinelle Lernen. Es handelt sich nicht um starke KI, aber auch nicht um einfache lineare Algorithmen. Das Modell des maschinellen Lernens ist in der Lage, auch unter schwierigen Bedingungen Gewinne zu erzielen. Es ist interessant, maschinelles Lernen für die Entwicklung von Handelssystemen einzusetzen. Dank neuronaler Netze wird der Handelsroboter große Datenmengen analysieren, Muster finden und Kursbewegungen vorhersagen.

Wir werden uns den Entwicklungszyklus eines Handelsroboters ansehen: Datenerfassung, -verarbeitung, Erweiterung der Stichprobe, Feature Engineering, Modellauswahl und -training, Erstellung eines Handelssystems mit Python und Überwachung der Handelsgeschäften.

Die Arbeit in Python hat ihre eigenen Vorteile: Geschwindigkeit im Bereich des maschinellen Lernens sowie die Fähigkeit, Merkmale auszuwählen und zu erzeugen. Der Export von Modellen nach ONNX erfordert genau die gleiche Logik zur Erzeugung von Merkmalen wie in Python, was nicht einfach ist. Aus diesem Grund habe ich mich für den Online-Handel über Python entschieden.


Autor: Yevgeniy Koshtenko

[Gelöscht]  
Ein sinnvoller Ansatz 👍 interessante Art der Auswahl von Merkmalen.
 
Vielen Dank für diesen interessanten Artikel. Ich habe Python bisher nicht benutzt, aber Sie haben mein Interesse geweckt, dieses mächtige Werkzeug zu erlernen. Ich freue mich auf neue Veröffentlichungen und darauf, den Trend zu verfolgen!
 

В задаче прогнозирования EURUSD мы добавили бинарный столбец "labels", указывающий, превысило ли следующее изменение цены спред и комиссию.

Übrigens: Von über 700.000 Daten veränderte sich der Kurs in nur 70.000 Fällen um mehr als den Spread.

EURUSD hat in 90 % der Fälle einen Spread von 0. Sie arbeiten mit H1-Daten. Wie sind Sie zu diesem Ergebnis gekommen?

 
Кстати, искушенный в машинном обучении читатель уже давно понял, что мы в итоге разработаем модель классификации, а не регрессии. Мне больше нравятся регрессионные модели, я в них вижу немного больше логики для прогнозирования, нежели в моделях классификации. 
Es scheint, dass der zweite Satz dem ersten widerspricht.
 

Фича инжиниринг — преобразование исходных данных в набор признаков для обучения моделей машинного обучения. Цель — найти наиболее информативные признаки. Есть ручной подход (человек выбирает признаки) и автоматический (с помощью алгоритмов).

Wir werden einen automatischen Ansatz verwenden. Wir werden die neue Methode zur Erstellung von Merkmalen anwenden, um automatisch die besten Merkmale aus unseren Daten zu extrahieren. Aus dem resultierenden Satz wählen wir dann die informativsten aus.

Als bestes Merkmal für die Preisvorhersage erwies sich der Eröffnungskurs selbst. Vorzeichen, die auf gleitenden Durchschnitten, Preisinkrementen, Standardabweichungen, täglichen und monatlichen Preisänderungen basieren, wurden in die Spitzengruppe aufgenommen. Automatisch generierte Vorzeichen erwiesen sich als wenig aussagekräftig.

Es stellt sich die Frage nach der Qualität der Algorithmen zur Merkmalsgenerierung, oder besser gesagt, nach ihrem völligen Fehlen.


Eine Person hat alle Attribute aus OHLCT-Daten generiert - insgesamt fünf Spalten. Sie zwingen den Algorithmus zur Merkmalsgenerierung auf eine viel größere Anzahl von ursprünglichen Merkmalen. Es ist schwer vorstellbar, dass der Chip-Generierungsalgorithmus den einfachsten MA-Chip nicht reproduzieren könnte.

 
Mir gefielen die Sprache, der Stil und die Präsentation der Informationen in dem Artikel. Vielen Dank an den Autor!
 

Beim Feature Clustering werden ähnliche Merkmale in Gruppen zusammengefasst, um die Anzahl der Merkmale zu reduzieren. Dies trägt dazu bei, redundante Daten zu beseitigen, die Korrelation zu verringern und das Modell zu vereinfachen, ohne dass es zu einer Überanpassung kommt. Es stellte sich heraus, dass der Eröffnungskurs selbst das beste Merkmal für die Preisvorhersage ist.

Wurden bei der Clusterbildung die HLC-Preise verworfen, weil sie in denselben Cluster wie der O-Preis fielen?

Wenn sich der Preis als das beste Merkmal für seine Vorhersage herausgestellt hat (und die anderen Merkmale seine Ableitungen sind), bedeutet das dann, dass wir die anderen Merkmale vergessen sollten und es sinnvoll ist, weitere Eingabedaten hinzuzufügen, indem wir zu einem niedrigeren Zeitrahmen übergehen und die Preise anderer Symbole als Merkmale verwenden?

[Gelöscht]  

Die Preise sollten natürlich aus der Trainingsstichprobe entfernt werden, da MO auf den neuen Daten nicht angemessen funktionieren wird, insbesondere wenn sie außerhalb des Trainingsbereichs liegen.

Die hohe Informativität von Preisen ergibt sich aus der Einzigartigkeit ihrer Werte, d. h. es ist für den Algorithmus einfacher, sich Preise zu merken oder sie mit Bezeichnungen abzugleichen.

In der MO-Praxis werden nicht nur uninformative Merkmale entfernt, sondern auch verdächtig überinformative Merkmale, bei denen es sich um Rohpreise handelt.

In einem idealen Szenario sollte es mehrere Attribute geben, die +- gleich informativ sind. Das heißt, es gibt keine klaren Spitzenreiter oder Außenseiter. Das bedeutet, dass keines der Attribute das Training überlagert und nicht die Decke auf sich selbst zieht.
 
Maxim Dmitrievsky #:

Die Preise sollten natürlich aus der Trainingsstichprobe entfernt werden, da MO auf den neuen Daten nicht angemessen funktionieren wird, insbesondere wenn sie außerhalb des Trainingsbereichs liegen.

Wenn wir zu den Rückgaben übergehen, ist der Algorithmus zur Generierung von Merkmalen gezwungen, eine kumulative Summe zu generieren, die dieselben Preise sein werden. Gleichzeitig wird nicht bekannt sein, dass es sich um die Preise handelt.

[Gelöscht]  
fxsaber #:

Wenn wir zu den Rückgaben übergehen, ist der Algorithmus der Merkmalsgenerierung verpflichtet, eine kumulative Summe zu generieren, die die gleichen Preise sein werden. Es wird nicht bekannt sein, dass dies die Preise sind.

Ich verstehe das nicht

Alle Zeichen sollten pseudo-stationär sein, wie Inkremente. Die Rohpreise sollten aus der Ausbildung entfernt werden.