Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Schöner Artikel. Das Vorhersagediagramm zu den Testdaten ist enttäuschend. Sie könnten genauso gut die ganze DNN-Modellierung/Training überspringen und einfach eine Vorhersage des nächsten Preises gleich dem letzten bekannten Preis verwenden. Ich wette, die Vorhersagegenauigkeit eines solchen trivialen Modells wird höher sein als die Ihres DNN-Modells. Ich schlage vor, diese beiden Genauigkeiten zu vergleichen und sie hier zu zeigen. Im Allgemeinen ist die Verwendung von DNN zur Preisvorhersage eine schlechte Idee. Sie eignen sich besser für die Klassifizierung von Preismustern (z. B. Kaufen, Verkaufen, Halten). Außerdem ist die Anzahl der Gewichte in Ihrem DNN astronomisch. Das muss eine Überanpassung sein.
Danke, Vladimir.
Nur zur Diskussion: Wenn es die Zeit erlaubt, würde ich dieses Modell modifizieren, um eine Klassifizierung zum Vergleich durchzuführen.
Bitte lassen Sie mich wissen, wenn Sie Ideen haben.
Das Tutorial gibt eine Eingabe von einem Stapel SAMPLE_SIZE Anzahl von Eingaben schließen, Sie wollen einen Stapel input_count Eingaben.
Außerdem verwendet Ihr Modell keine Floats als Eingaben, sondern Doubles,
Anmerkung des Moderators: Dieser Beitrag ist nicht mehr in der richtigen Reihenfolge, da die nachfolgenden Beiträge aus einem anderen Thema verschoben wurden. Bitte lesen Sie den folgenden Beitrag.
Hallo MQL5-Gemeinschaft, Ich habe versucht, dieses Tutorial zu folgen, wie ONNX in Ihre EAs zu verwenden. In dem Tutorial ein neuronales Netzwerk war das Modell der Wahl, ich habe einen Gradient Boosted Baum verwendet.
Ich habe das Modell mit dem InterpretML-Python-Paket erstellt und es mit ebm2onnx in ONNX exportiert.
Ich werde den Prozess zusammenfassen, mit dem das Modell trainiert wurde.
1) Das Modell wurde mit 5 Eingaben trainiert, OHLC und Höhe, Höhe wird berechnet als ((H + L) / 2) - C.
2) Das Modell ist ein binärer Klassifikator, der darauf abzielt, die nächste Kerze entweder als UP (1) oder DOWN (0) zu klassifizieren.
Die zum Trainieren des Modells verwendeten Daten.
3) Das Modell wurde dann in das ONNX-Format exportiert
Darstellung des ONNX-Modells.
Um das Modell zum Laufen zu bringen, bin ich vom Code im Tutorial abgewichen und habe den Code weiter bearbeitet, um das ONNX-Modell zum Laufen zu bringen, aber jetzt weiß ich wirklich nicht, was ich falsch mache. Ich erhalte immer eine Fehlermeldung, dass das Handle für das Modell ungültig ist.
Ich habe den MQL5-Code unten angehängt.
Ich fasse nun die Schritte zusammen, die ich in meinem Code unternommen habe und die vom Tutorial abweichen, und ich erkläre auch, warum ich vom Tutorial abgewichen bin
1) Zeile 57: Einstellen der Modell-Eingangsform.
Im Lernprogramm wurden 3 Dimensionen verwendet, um die Eingangs- und Ausgangsform festzulegen, d. h. {1,SAMPLE_SIZE,1}; Als ich diesen Ansatz verfolgte, erhielt ich jedoch immer wieder eine Fehlermeldung, genauer gesagt Fehler 5808. Nach dem üblichen "Trail and Error"-Prozess erkannte ich, dass der Fehler verschwand, wenn ich nur 1 Dimension, die Anzahl der Eingänge, verwendete.
2) ZEILE 68: Einstellen der Form der Modellausgabe.
Dieselbe Logik wie oben.
Die anderen Abweichungen, die ich vorgenommen habe, wirken sich nicht auf das Modell aus, z. B. habe ich die Zeit mit einer Logik verfolgt, die ich intuitiver fand als die im Lernprogramm implementierte Logik. Ich brauchte die Eingaben nicht zu normalisieren, da es sich um ein baumbasiertes Modell handelt.
Wenn Sie andere Fehler finden, die ich gemacht habe, wäre ich Ihnen dankbar für Ihren Hinweis.
Forum über Handel, automatisierte Handelssysteme und das Testen von Handelsstrategien
Diskussion des Artikels "Wie man ONNX-Modelle in MQL5 verwendet"
Stian Andreassen, 2023.12.08 20:51
Das Tutorial gibt eine Eingabe von einem Batch SAMPLE_SIZE Anzahl von Eingaben schließen, Sie wollen eine Charge von input_count Eingaben.
Außerdem verwendet Ihr Modell keine Floats als Eingaben, sondern Doubles,
Vielen Dank für den Hinweis, Sitan, ich habe angewendet, was Sie darauf hingewiesen haben, aber der Fehler ist immer noch da
Ein Stapel input_count Eingaben.

Eingabe auf double setzen
Fehlermeldung.
Hello MQL5 community, I've been trying to follow this tutorial on how to use ONNX in your EA's. In the tutorial a neural network was the model of choice, I've used a gradient boosted tree.
Ich habe das Modell mit dem Python-Paket InterpretML erstellt und es mit ebm2onnx nach ONNX exportiert.
Ich werde den Prozess zusammenfassen, mit dem das Modell trainiert wurde.
1) Das Modell wurde mit 5 Eingaben trainiert, OHLC und Höhe, Höhe wird berechnet als ((H + L) / 2) - C.
2) Das Modell ist ein binärer Klassifikator, der darauf abzielt, die nächste Kerze entweder als UP (1) oder DOWN (0) zu klassifizieren.
Die zum Trainieren des Modells verwendeten Daten.
3) Das Modell wurde dann in das ONNX-Format exportiert
Darstellung des ONNX-Modells.
Um das Modell zum Laufen zu bringen, bin ich vom Code im Tutorial abgewichen und habe den Code weiter bearbeitet, um zu versuchen, das ONNX-Modell zum Laufen zu bringen, aber jetzt weiß ich wirklich nicht, was ich falsch mache. Ich erhalte immer eine Fehlermeldung, dass das Handle für das Modell ungültig ist.
Ich habe den MQL5-Code unten angehängt.
Ich fasse nun die Schritte zusammen, die ich in meinem Code unternommen habe und die vom Tutorial abweichen, und ich erkläre auch, warum ich vom Tutorial abgewichen bin
1) ZEILE 57: Einstellen der Modell-Eingangsform.
Im Lernprogramm wurden 3 Dimensionen verwendet, um die Eingangs- und Ausgangsform festzulegen, d. h. {1,SAMPLE_SIZE,1}; Als ich diesen Ansatz verfolgte, erhielt ich jedoch immer wieder einen Fehler, genauer gesagt den Fehler 5808. Nach dem üblichen "Trail and Error"-Prozess erkannte ich, dass der Fehler verschwand, wenn ich nur 1 Dimension, die Anzahl der Eingänge, verwendete.
2) ZEILE 68: Einstellen der Form der Modellausgabe.
Dieselbe Logik wie oben.
Die anderen Abweichungen, die ich vorgenommen habe, wirken sich nicht auf das Modell aus, z. B. habe ich die Zeit mit einer Logik verfolgt, die ich intuitiver fand als die im Lernprogramm implementierte Logik. Ich brauchte die Eingaben nicht zu normalisieren, da es sich um ein baumbasiertes Modell handelt.
Wenn Sie andere Fehler finden, die ich gemacht habe, wäre ich Ihnen dankbar für Ihren Hinweis.
Vielen Dank für die Mitteilung Sitan, ich habe angewandt, was Sie darauf hingewiesen, aber der Fehler ist immer noch da
Ein Stapel input_count Eingaben.
Eingabe auf double setzen
Fehlermeldung.
Es scheint, dass MQL5 noch nicht (bzw. ONNXMLTools noch nicht) EBM's ONNX unterstützt:
https://www.mql5.com/de/docs/onnx/onnx_conversion
Wenn Sie die ONNX-Anhänge (insbesondere model.eurusd.D1.10.class.onnx, das 4 Eingänge verwendet) von https://www.mql5.com/de/articles/12484 heranziehen und Netron(Web-Version) verwenden, um die onnx-Dateien zu visualisieren, werden Sie die Unterschiede sehen.
Ich denke, dass die folgenden zwei Artikel Ihnen helfen werden, die Zusammenhänge besser zu verstehen:
Regressionsmodelle der Scikit-learn Bibliothek und ihr Export nach ONNX
Klassifikationsmodelle der Scikit-Learn Bibliothek und ihr Export nach ONNX
Hallo zusammen,
Wir versuchen, ein neuronales Netzwerk von Keras mit 11 Prädiktoren zu einem Zeitpunkt (Stapelgröße 32) zu verwenden, um Vorhersagen auf dem XauUsd zu machen (wobei die Ausgabe eine einzelne Zahl zwischen 0 und 1 ist). Zunächst laden wir in von OnnxCreatefrombuffer (weil OnnxCreate selbst nicht für uns arbeiten), dann erhalten wir immer einen Fehler auf der OnnxRun Bühne, wo ich beide Fehler unten angehängt haben. Jede Hilfe, welche Dimension für die Eingabe umzuformen ist, welches Format unser Prädiktorvektor haben sollte (wenn es überhaupt ein Vektor sein sollte?), oder einfach jede Hilfe oder Vorschläge mit Syntax, um diese Fehler zu beheben, wäre fantastisch. Wir haben versucht, um alle Arten von Kombinationen von 32, 1, 11 Vektoren und kein Glück und wirklich keine Idee mit den nächsten Schritten umzuformen. Vielen Dank für jeden, der helfen kann! Ben.
' Fehler 5808'
ONNX: Eingabeparameter #0 Tensor hat falsche Dimension [0], versuche OnnxSetInputShape zu verwenden'
ONNX: Ungültige Größe des Eingabeparameters #0, erwartet wurden 1408 Bytes statt 480'
Hallo, ich versuche, das
OnnxModelInfo.mq5Datei-Skript zu verwenden, aber ich kann es nicht zum Laufen bringen, was mache ich falsch? das kann nicht so kompliziert sein!
Ich habe das OnnxModelInfo-Skript kopiert und in den Ordner Files gespeichert.
Ich habe ein Onnx-Modell (angehängt)
und wenn ich das Skript kompiliere, erscheinen 21 Fehler.
Kann mir jemand bei diesem Problem helfen? Bitte
Der neue Artikel ONNX-Modelle in MQL5 verwenden wurde veröffentlicht:
Autor: MetaQuotes
Hallo meine Herren.
Kann mir jemand helfen, weil am Ende des Prozesses in Python folgender Fehler auftaucht: AttributeError: 'Sequential' object has no attribute 'output_names'. Ich weiß nicht viel über Python oder Programmierung. Daher wäre ich für jede Hilfe dankbar! Ich danke Ihnen.
Hallo Alberto, bitte posten Sie den Teil Ihres Codes[mit Hilfe derCODE-Taste (Alt -S)], in dem der Fehler auftritt, damit jemand, der sich mit Python auskennt(MetaTrader for Python | ONNX Models), die Lösung aufzeigen kann...