Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 100
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
Sie haben völlig Recht mit dem Anfang. Endlich tauchten einige vernünftige Leute in der Branche auf. Aber das Muster selbst hat eine prädiktive Funktion, und es ist nicht das Muster selbst, das zählt, sondern die Reaktion des Marktes auf dieses Muster. Und wenn diese Reaktion mit der im Training identisch ist, wird das Netz die richtige Schlussfolgerung ziehen. Es ist also so....
Was ist zu tun? Versuchen Sie, den naiven Besovian-Klassifikator zu verwenden, oder untersuchen Sie gPredictors?
xWas ist der Besov-Klassifikator???? Ich verstehe es nicht, jetzt hat Reshetov eine furchtbar coole Sache gemacht, an, aus, Teig. Und Sie fummeln weiter an Ihren R's herum. Eine Menge unnötiger Datenmanipulationen. Und was ist das Iris-Beispiel???? Interessant zu sehen, wie der Predictor das herausfinden wird....
Ich habe erst hier von R erfahren. Und ich habe versehentlich einen Buchstaben in dem Wort Bayes'scher Klassifikator übersehen (vielleicht von Freud). Und Reshetovs Programm ist cool, das bestreite ich nicht. Ich weiß nicht, wie es mit Iris aussieht.
xWas ist der Besov-Klassifikator???? Ich verstehe nicht, jetzt hat Reshetov eine furchtbar coole Sache gemacht, an, aus, Teig. Und Sie fummeln weiter an Ihren R's herum. Eine Menge unnötiger Datenmanipulationen. Und was ist das Iris-Beispiel???? Interessant zu sehen, wie der Predictor das herausfinden wird....
Kann ich das Handelsergebnis von gestern sehen?
Das Auto von IShaitan Reshetov :-)
Warum haben die Indikatoren nie funktioniert und werden auch nie funktionieren, meine Meinung...
Vieles davon wissen Sie selbst und haben es getan, aber ich werde ausführlicher schreiben, um einige Annahmen auszuschließen, über die wir in gleicher Weise reden, aber anders handeln.
Sie benötigen eine sorgfältig ausgearbeitete Fitnessfunktion, um die Modellparameter zu schätzen. Wenn die Funktion bestimmte Modellparameter und ausgewählte Prädiktoren mit einer hohen Punktzahl bewertet, dann sollte der Test mit neuen Daten gute Ergebnisse liefern.
(Ich werde bei jeder Schätzung berücksichtigen, dass sie umso besser ist, je höher sie ist)
Sie haben zum Beispiel Daten für die Ausbildung, 5 Jahre. Und die Parameter für gbm sind n.trees, interaction.depth, shrinkage, n.minobsinnode, distribution, bag.fraction.
Die Fitnessfunktion sollte sich mindestens 50 Mal in einem Zyklus wiederholen:
1) Teilen Sie die Daten in 2 Teile, 50%/50%. Es sollte sowohl Zufallsstichproben mit Stichproben als auch sequentielle Stichproben geben (der Teil für das Training liegt irgendwo in der Mitte, und für die Validierung das, was ihn am Anfang und Ende der Rohdaten umgibt). Einschließlich extremer Versionen, bei denen das Training auf der ersten Hälfte der Tabelle stattfindet und die Validierung auf der letzten und umgekehrt. Ich denke, dass es wichtig ist, sowohl sequentiell gezogene Stichproben als auch Zufallsstichproben für das Training zu haben. In der Abbildung sehen Sie einige Beispiele für zufällige und sequentielle Partitionierung, die grünen Linien sind für das Training, die gelben sind für die Validierung.
2) Trainieren Sie das Modell anhand der Trainingsstichprobe (die verwendeten Modellparameter und Prädiktoren sind während des gesamten Zyklus die gleichen, die Sie zu schätzen versuchen), sagen Sie dann genau diese Daten mit diesem Modell voraus und bewerten Sie die Vorhersage - Genauigkeit, r^2 oder etwas anderes. Ich zum Beispiel runde das Regressionsergebnis auf Klassen und verwende Cohens Kappa-Funktion für die Schätzung, sie stammt von caret und gefällt mir besser als die Klassifizierungsgenauigkeit oder die Regressionsgenauigkeit. Aber es funktioniert nur für zwei Klassen. Bei drei Klassen finde ich es schwierig, irgendetwas vorzuschlagen. Es ist wichtig, dass die Schätzung die Genauigkeit jeder einzelnen Klasse berücksichtigt und auf dieser Grundlage eine Gesamteinschätzung abgibt.
3) Wenden Sie ein trainiertes Modell an, um Daten aus einer Validierungsstichprobe vorherzusagen, und schätzen Sie die Vorhersage mit der gleichen Funktion.
4) Beide Schätzungen (Training und Validierung) sollten nahe beieinander liegen und so hoch wie möglich sein. Ich verwende diesen Code für die Endnote - (min(score1,score2) - (max(score1,score2)-min(score1,score2)) - vom Min-Wert wird ihr Delta abgezogen.
Am Ende jeder Iteration erhalten wir eine Punktzahl, die aufgrund der zufälligen Aufteilung der Daten zwischen -1 und 1 variieren kann (oder in einem anderen Intervall, je nach verwendeter Funktion). Wir berechnen ihren Durchschnittswert und geben ihn als Ergebnis der Fitnessfunktion zurück. Zusätzlich ziehe ich vom Fitnesswert eine kleine Zahl (0,0001) für jeden verwendeten Prädiktor ab, um das Modell für eine zu große Menge an erforderlichen Daten zu bestrafen.
Ich wende dies zusammen mit der Genetik an, die Prädiktoren und Modellparameter auswählt und den Fitnesswert maximiert.
Das Endergebnis ist ein Satz von Prädiktoren und Modellparametern, die im Durchschnitt gute Vorhersageergebnisse für die verfügbaren Trainingsdaten liefern. Das Modell kann einige Muster in den Daten finden, daraus lernen und dieselben Muster auch in den neuen Validierungsdaten erfolgreich finden, unabhängig davon, welche Datenstichprobe für das Training verwendet wird.
Da das Modell jedes Mal mit nur 50 % der verfügbaren Daten trainiert wird und die Parameter und Prädiktoren auf dieser Grundlage ausgewählt werden, ist dies eine wichtige Voraussetzung für das Modell.
Das Modell für den Ausschuss sollte unter den gleichen Bedingungen trainiert werden - entweder durch Stichproben oder durch sukzessive Auswahl von 50 % der Daten für das Training. Für jedes neue Modell wird auch eine neue Stichprobe (oder eine Folge von Stichproben) benötigt.
Wie lange ein solcher Ausschuss gute Prognosen abgeben wird, ist nicht bekannt, aber wenn man bedenkt, dass die Trainingsdaten 5 Jahre lang waren, wird der Ausschuss offensichtlich weniger als die nächsten 5 Jahre leben.
Und noch ein wichtiger Punkt - wenn nach all der Zeit, die für die Erstellung des Ausschusses aufgewendet wurde, ein verlustreicher Handel stattfindet, dann ist das für Prognosen verwendete Paket nicht für den Forex-Bereich geeignet. Vielleicht hat sie zu viele Freiheitsgrade oder ist einfach nicht geeignet. Es ist besser, ein anderes Paket zu nehmen. Oder Sie können versuchen, den Prozentsatz der Trainingsdaten von 50 % auf noch weniger zu reduzieren.
All dies aus Ratschlägen aus diesem Forum und aus Erfahrung.
Vieles davon wissen Sie selbst und haben es getan, aber ich werde ausführlicher schreiben, um einige Annahmen auszuschließen, über die wir in gleicher Weise reden, aber anders handeln.
Zur Schätzung der Modellparameter ist eine sorgfältig ausgearbeitete Fitnessfunktion erforderlich. Wenn die Funktion bestimmte Modellparameter und ausgewählte Prädiktoren mit einer hohen Punktzahl bewertet, dann sollte der Test mit den neuen Daten gute Ergebnisse liefern.
(Ich werde bei jeder Schätzung berücksichtigen, dass sie umso besser ist, je höher sie ist)
Sie haben zum Beispiel Daten für die Ausbildung, 5 Jahre. Und die Parameter für gbm sind n.trees, interaction.depth, shrinkage, n.minobsinnode, distribution, bag.fraction.
Die Fitnessfunktion sollte sich mindestens 50 Mal in einem Zyklus wiederholen:
1) Teilen Sie die Daten in 2 Teile, 50%/50%. Es sollte sowohl Zufallsstichproben mit Stichproben als auch sequentielle Stichproben geben (der Teil für das Training liegt irgendwo in der Mitte, und für die Validierung das, was ihn am Anfang und Ende der Rohdaten umgibt). Einschließlich extremer Versionen, bei denen das Training auf der ersten Hälfte der Tabelle stattfindet und die Validierung auf der letzten und umgekehrt. Ich denke, dass es wichtig ist, sowohl sequentiell gezogene Stichproben als auch Zufallsstichproben für das Training zu haben. In der Abbildung sehen Sie einige Beispiele für zufällige und sequentielle Partitionierung, die grünen Linien sind für das Training, die gelben sind für die Validierung.
2) Trainieren Sie das Modell anhand der Trainingsstichprobe (die verwendeten Modellparameter und Prädiktoren sind während des gesamten Zyklus die gleichen, die Sie zu schätzen versuchen), sagen Sie dann genau diese Daten mit diesem Modell voraus und bewerten Sie die Vorhersage - Genauigkeit, r^2 oder etwas anderes. Ich zum Beispiel runde das Regressionsergebnis auf Klassen und verwende Cohens Kappa-Funktion für die Schätzung, sie stammt von caret und gefällt mir besser als die Klassifizierungsgenauigkeit oder die Regressionsgenauigkeit. Aber es funktioniert nur für zwei Klassen. Bei drei Klassen finde ich es schwierig, irgendetwas vorzuschlagen. Es ist wichtig, dass die Schätzung die Genauigkeit jeder einzelnen Klasse berücksichtigt und auf dieser Grundlage eine Gesamteinschätzung abgibt.
3) Wenden Sie ein trainiertes Modell an, um Daten aus einer Validierungsstichprobe vorherzusagen, und schätzen Sie die Vorhersage mit der gleichen Funktion.
4) Beide Schätzungen (Training und Validierung) sollten nahe beieinander liegen und so hoch wie möglich sein. Ich verwende diesen Code für die Endnote - (min(score1,score2) - (max(score1,score2)-min(score1,score2)) - vom Min-Wert wird ihr Delta abgezogen.
Am Ende jeder Iteration erhalten wir eine Punktzahl, die aufgrund der zufälligen Aufteilung der Daten zwischen -1 und 1 variieren kann (oder in einem anderen Intervall, je nach verwendeter Funktion). Wir berechnen ihren Durchschnittswert und geben ihn als Ergebnis der Fitnessfunktion zurück. Zusätzlich ziehe ich vom Fitnesswert eine kleine Zahl (0,0001) für jeden verwendeten Prädiktor ab, um das Modell für eine zu große Menge an erforderlichen Daten zu bestrafen.
Ich wende dies zusammen mit der Genetik an, die Prädiktoren und Modellparameter auswählt und den Fitnesswert maximiert.
Das Endergebnis ist ein Satz von Prädiktoren und Modellparametern, die im Durchschnitt gute Vorhersageergebnisse für die verfügbaren Trainingsdaten liefern. Das Modell kann einige Muster in den Daten finden, daraus lernen und dieselben Muster auch in den neuen Validierungsdaten erfolgreich finden, unabhängig davon, welche Datenstichprobe für das Training verwendet wird.
Da das Modell jedes Mal mit nur 50 % der verfügbaren Daten trainiert wird und die Parameter und Prädiktoren auf dieser Grundlage ausgewählt werden, ist dies eine wichtige Voraussetzung für das Modell.
Das Modell für den Ausschuss sollte unter den gleichen Bedingungen trainiert werden - entweder durch Stichproben oder durch sukzessive Auswahl von 50 % der Daten für das Training. Für jedes neue Modell wird auch eine neue Stichprobe (oder eine Folge von Stichproben) benötigt.
Wie lange ein solcher Ausschuss gute Vorhersagen machen wird, ist nicht bekannt, aber wenn man bedenkt, dass die Trainingsdaten für 5 Jahre waren, wird der Ausschuss offensichtlich weniger als die nächsten 5 Jahre leben.
Ein weiterer wichtiger Punkt ist, dass das für die Prognosen verwendete Paket nicht für den Devisenhandel geeignet ist, wenn nach der für die Erstellung des Ausschusses aufgewendeten Zeit ein Gewinn erzielt wird. Vielleicht hat sie zu viele Freiheitsgrade oder ist einfach nicht geeignet. Es ist besser, ein anderes Paket zu nehmen. Oder Sie könnten versuchen, den Datenanteil für das Training von 50 % auf noch weniger zu reduzieren.
All dies aus Ratschlägen aus diesem Forum und aus Erfahrung.
Eine hervorragende Zusammenfassung der Ergebnisse.
Herzlichen Glückwunsch!