Datacollection in Neuronalen netzwerken in MQL

Einloggen oder registrieren, um einen Kommentar zu schreiben
Bayne
1009
Bayne  
Hey, wie implementiert ihr neuronale Netzwerke für supervised learning im Bezug auf die Daten Beschaffung:

1. Schreibt ihr das ganze in eine CSV und lässt darüber das Training durchlaufen.

2. Oder Haut ihr die daten statt CSV direkt in ein zweidimensionalen Array?

3. (wären bei beiden möglichkeitenganze 2 Durchläufe einer fürs sammeln einer fürs Training) -> ist das ganze auch in einem machbar (als supervised learning)?

Habe den extrem umfassenden Artikel von Vladimir mehr oder weniger durchgelesen, jedoch schreibt er in R... Ich will es komplett in MQL5 schreiben. 

Könnt ihr die Fragen beantworten?
Reiner Rusch
283
Reiner Rusch  
Bayne:
Hey, wie implementiert ihr neuronale Netzwerke für supervised learning im Bezug auf die Daten Beschaffung:

1. Schreibt ihr das ganze in eine CSV und lässt darüber das Training durchlaufen.

2. Oder Haut ihr die daten statt CSV direkt in ein zweidimensionalen Array?

3. (wären bei beiden möglichkeitenganze 2 Durchläufe einer fürs sammeln einer fürs Training) -> ist das ganze auch in einem machbar (als supervised learning)?

Habe den extrem umfassenden Artikel von Vladimir mehr oder weniger durchgelesen, jedoch schreibt er in R... Ich will es komplett in MQL5 schreiben. 

Könnt ihr die Fragen beantworten?
Kommt drauf an, wie/was man machen will.
Ich habe einen EA, der an sich eine Strategie beinhaltet - klar.
Dazu kann man optional einen Indikator (NN) laufen lassen, der eine Regression und damit eine Vermutung über eine kurze Zeit in die Zukunft ermöglicht.
Der Indikator haut den berechneten Wert raus (Datei) und der EA liest diesen als zusätzlichen Hinweis ein.
Bayne
1009
Bayne  
Reiner Rusch:
Kommt drauf an, wie/was man machen will.
Ich habe einen EA, der an sich eine Strategie beinhaltet - klar.
Dazu kann man optional einen Indikator (NN) laufen lassen, der eine Regression und damit eine Vermutung über eine kurze Zeit in die Zukunft ermöglicht.
Der Indikator haut den berechneten Wert raus (Datei) und der EA liest diesen als zusätzlichen Hinweis ein.
Das NN muss natürlich erstmal trainiert werden oder? Wenn ich es schreibe, wie am effizientesten für supervised learning?(2 Durchläufe(also training,dann Trading)? CSV oder Arraymatrix?)
Carl Schreiber
Moderator
10125
Carl Schreiber  
Bayne:
Das NN muss natürlich erstmal trainiert werden oder? Wenn ich es schreibe, wie am effizientesten für supervised learning?(2 Durchläufe(also training,dann Trading)? CSV oder Arraymatrix?)

Es gibt zu verschiedenen Varianten der NN eine ganze Reihe von Artikeln! Such mal (oben rechts)

Bayne
1009
Bayne  
Carl Schreiber:

Es gibt zu verschiedenen Varianten der NN eine ganze Reihe von Artikeln! Such mal (oben rechts)

Zur Verdeutlichun:

es geht speziell um MQL5, ganaue gesagt die implementation des trainings in den Historischen Ablauf des Strategy Testers , nicht um NNs in anderen Programmiersprachen Sprachen oder andere Modelle.


wie Training i.d.R. funktioniert verstehe ich, ich brauche jedoch einen effizienten Gedankenansatz ob ich (speziell für supervised learning:) lieber die Daten aus einer CSV importieren soll oder ob möglichkeiten bestehen, das ganze in eine Matrix jedoch als Supervised learning (und ob in einem oder zwei durchläufen, also training, dann executipion) durchzuführen.

Konnte in allen Artikel in denen ich gelesen habe entweder nur theorie finden oder die implementation ausserhalb (R) (oder es wurde halb komplett übergangen und nur ein einziger indikator verwendet, soweit ich weiß ohne Supervised learning: "von Theorie zur Praxis")

Wär stark, falls ihr den richtigen ansatz kennt :)

Carl Schreiber
Moderator
10125
Carl Schreiber  
Naja, ein bisschen muss man schon selber machen!
Bayne
1009
Bayne  
das ist doch genau die frage an der ich hängenbleibe
Bayne
1009
Bayne  
Eine noch grobere Formulierung: woher kommt das Y Label in MQL5 im falle von supervised learning
Chris70
543
Chris70  
Bayne:
Eine noch grobere Formulierung: woher kommt das Y Label in MQL5 im falle von supervised learning

Na, das legst Du selber fest. Deshalb weiterhin die Frage, die Du nicht beantworten möchtest: was sollen Deine Ein- und Ausgabedaten sein? Was soll das Modell "können" bzw. leisten?

Y label bzw.  ^y ist ja nichts anderes als der "wahre" Wert (im Gegensatz zur Vorhersage y), also z.B. "Preis ist um 5 Pips gestiegen" versus "laut Modell wird an Anstieg von 5 Pips vorhergesagt".

Im Training kennst Du halt die wahren Werte, im späteren Realeinsatz nicht. So geht's:

1. Vorbereitung: Initialisierung der weight matrix, Normalisierung der Input-Daten

2. Training:

INPUT-layer (z.B.(!) irgendwelche Indikatoren) --> * weight vector --> Input der Neuronen im HIDDEN LAYER (1) --> Aktivierungsfunktion --> Ausgabe der hidden Neuronen --> *weight vector --> OUTPUT y

                                                                                                                                                                                                                                                                                                                 |

                                                                                                                    update der weight vectors <-- backpropagation mittels Ableitungen der Aktivierungsfunktionen  <--   cost function   <-- label ^y

                             (der grüne Teil hier kann entsprechend der Anzahl der versteckten Schichten (hidden layers) auch mehrmals hintereinander ablaufen)

3. Real life nach dem Training: nur Zeile 1 (=forward pass / forward propagation) --> OUTPUT y

[* weight vector habe ich hier zur besseren Übersicht geschrieben. Präziser heißt es: Summe der gewichteten Inputs plus Bias]

Es bei NN üblich, alle Daten der Zwischenschritte in Matrizen zu verpacken. In Python (Tensorflow / Keras) wird so viel Rechnerei erleichtert. In MQL5 wirst Du die Matrix-Operationen entweder mit for-loops lösen oder Du nimmst fertige Funktionen wie in ALGLIB.

Nach ein paar tausend Lerndurchläufen (dann wenn die cost function minimiert ist) wirst Du die weight matrix speichern wollen, das kannst Du dann als z.B. .bin oder .csv machen (nur EINMAL, am Ende des Trainings). Alle Zwischenschritte physisch zu speichern kosten unnötig Performance. Das geht eleganter über Arrays.

Aber wie Carl sagt: ein bisschen muss man schon selber machen. Die Informationen sind tausendfach im Netz frei verfügbar. Nur Lesen muss man selbst. Ich habe Dir hier gerade nochmal geholfen weil Du irgendwie den Wald vor lauter Bäumen nicht siehst, doch mich verlässt auch die Lust, wenn wenig Eigenrecherche erkennbar ist (was das label y ist hast Du ruckzuck ergoogelt). Fragen sind super, dafür sind solche Foren da, doch ich sehe keinen roten Faden bei Deinen Fragen - da kann man nicht wirklich helfen.

Einloggen oder registrieren, um einen Kommentar zu schreiben