Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 115
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
Sind Sie zufällig ein Angestellter in einem Maklerhaus der alten Schule?
Ich denke, Ihre "geheime Methode" besteht darin, mashki (zufällig) zu handeln und zu verdoppeln, wenn Sie verlieren, richtig?)
Ich muss von der Provision leben, meine Herren...
Einrichten eines Ausschusses und Testen:
Das Problem besteht darin, dass die ursprünglichen Klassen vom Typ Faktor sind und das Ergebnis in der Matrix in die entsprechenden Ordnungszahlen des Faktors umgewandelt wird. Am Ende läuft der Vergleich also über as.numberic().
Für alles, um richtig mit Faktoren zu arbeiten, müssen wir predictionMatrix als data.frame erstellen, aber nach, dass meine rbind-Funktion gab varnings, ich muss etwas anderes ändern, ich habe nicht verstanden, was dort falsch ist.
Ein paar Gedanken zum Code:
1. Sie müssen das for()-Konstrukt nur dann verwenden, wenn es absolut notwendig ist. Es gibt eine wunderbare Alternative zu foreach(), die neben einer hohen Ausführungsgeschwindigkeit auch die Parallelisierung von Berechnungen zwischen zugänglichen Kernen ermöglicht.
2) Ein Modell-Ensemble ist nur dann sinnvoll und liefert Ergebnisse, wenn die Modelle signifikante Unterschiede aufweisen. Zwei Varianten: ein Datensatz - verschiedene Modelle (RF, DT, SVM); ein Modell - verschiedene Datensätze. Nachfolgend ein Beispiel für den letzteren Fall
Wählen Sie die Modelle mit der besten Leistung aus und arbeiten Sie von dort aus weiter.
Viel Glück!
Ein paar Gedanken zum Code:
1. Sie brauchen for() nur dann zu verwenden, wenn es absolut notwendig ist. Es gibt eine wunderbare Alternative zu foreach(), die neben einer hohen Ausführungsgeschwindigkeit auch die Parallelisierung von Berechnungen zwischen den verfügbaren Kernen ermöglicht.
2) Ein Modell-Ensemble ist nur dann sinnvoll und liefert Ergebnisse, wenn die Modelle signifikante Unterschiede aufweisen. Zwei Varianten: ein Datensatz - verschiedene Modelle (RF, DT, SVM); ein Modell - verschiedene Datensätze. Nachfolgend ein Beispiel für die letztgenannte Option
Wählen Sie Modelle mit besserer Leistung und arbeiten Sie mit ihnen.
Viel Glück!
Dann wählen wir das Modell mit den besten Indikatoren aus und arbeiten damit.
Genau hier liegt das Problem.
Was ist die beste Leistung auf der Grundlage welcher Daten?
Ich frage deshalb, weil Vkontas versucht herauszufinden, wie man ein Modell (aus vielen Modellen) anhand von Trainings- und Testdaten auswählen kann. Aber hier haben Sie es so einfach: Wir nehmen die besten Indikatoren und arbeiten mit ihnen.
Genau hier liegt das Problem.
Was ist die beste Leistung auf der Grundlage welcher Daten?
Ich frage deshalb, weil Vkontas versucht herauszufinden, wie man ein Modell (aus vielen Modellen) anhand von Trainings- und Testdaten auswählen kann. Aber hier haben Sie es so einfach: Wir nehmen die besten Indikatoren und arbeiten mit ihnen.
Die Ausgangsmenge wird in Trainings- und Testschichten unterteilt. Im Zug trainieren wir und im Test testen wir. Geht das nicht aus dem Kodex hervor?
Viel Glück!
Ich würde Sie gerne öfter sehen. Verschwinden Sie nicht.
Die Ausgangsmenge wird in Trainings- und Testschichten unterteilt. Auf Zug trainieren wir auf Test bzw. wir testen. Geht das wirklich nicht aus dem Kodex hervor?
Viel Glück!
Ich werde rminer::holdout ausprobieren, danke für das Beispiel. Im Allgemeinen zeigt die Erfahrung, dass, wenn wir ein Modell und seine Parameter so wählen, dass wir das beste Ergebnis für eine Testprobe erhalten, das Modell schließlich ein wirklich gutes Ergebnis für die Testprobe liefert. Bei neuen Daten ist das Ergebnis jedoch meist sehr niedrig. Ich spreche hier speziell über Forex-Daten, in anderen Bereichen ist dies ein ganz normaler Ansatz. Ich hoffe nicht, dass rminer::holdout for forex irgendetwas dramatisch verändern wird.
dann wird das Modell am Ende ein wirklich gutes Ergebnis für das Testmuster zeigen. Bei neuen Daten ist das Ergebnis jedoch meist sehr niedrig. Ich spreche speziell über Forex-Daten,
Der Markt läuft gegen seine eigenen Statistiken, das ist eine Theorie, die ich mit der Praxis bestätigt habe, es ist die einzige Theorie, die ich kenne, die alles beantwortet, von der Frage, warum das Modell bei neuen Daten nicht funktioniert, bis zu der Frage, warum jeder überhaupt Geld auf dem Markt verliert...
Warum fällt es Ihnen so schwer, dies zu akzeptieren?
Ist das alte Wissen und die alten Gewohnheiten so dämpfend auf die neuen Informationen?
Warum sollte man sich so sehr auf das Modell konzentrieren, wenn der Leistungsunterschied zwischen den Modellen zwischen 0,5 und 5 % liegt?
kein Modell kann helfen, denn es geht nur um die Daten
ich habe dieses Bild schon mehr als einmal gepostet, aber trotzdem.....
Schauen Sie genau hin: Dies ist der Unterschied zwischen den kumulativen Kauf- und Verkaufsprognosen von zwei Netzwerken cum(buy.signal) - cum(sell.signal), im Idealfall, wenn unser Modell gut ist, sollte das blaue Diagramm mit dem Preis korrelieren, es bedeutet, dass das Netzwerk die Daten gut versteht und angemessen darauf reagiert, in der Tat, was wir sehen????????
Man kann nicht sagen, dass das Modell die Daten nicht versteht, obwohl die Korrelation umgekehrt ist, aber die Struktur identisch ist, aber der Markt bewegt sich gegen die Vorhersagen und gegen die Statistiken, auf die das Netz in der Vergangenheit trainiert wurde...
Sagen Sie mir nun, welches Modell kann das schaffen? Welche Kreuzvalidierung kann hier helfen? Jede Modellschulung, die auf Out-of-Sample-Daten (neue Daten) folgt, wäre nichts anderes als die Anpassung eines Modells, das auf Out-of-Sample-Daten gut funktioniert , und nichts weiter... Und Sie sehen es immer wieder, wenn Sie selbst Modelle trainieren, dass das Modell bei brandneuen Daten immer versagt, sehen Sie das nicht? Ich gebe Ihnen die Antwort, warum das so ist!
Ist dies das Diagramm mit den Daten, auf denen das Training selbst stattfand, oder ist es nur ein Test mit den neuen Daten? Wenn Sie einen Graphen für beide Zeiträume gleichzeitig zeichnen, sowohl für Training als auch für Test, dann gibt es im ersten (Trainings-)Teil der Daten eine vollständige Überlappung von blauem und grauem Graphen, und wenn neue Daten beginnen, gibt es eine scharfe Verschiebung zur umgekehrten Korrelation?
Wenn es so einfach wäre, würde es ausreichen, ein beliebiges Modell zu trainieren und dessen Vorhersagen einfach umzukehren. Das funktioniert leider nicht.
Einem Modell, das bei neuen Daten eine Genauigkeit von 0 % aufweist, etwas beizubringen, ist genauso schwierig wie eine Genauigkeit von 100 % zu erreichen. Der Standardwert für das Werfen einer Münze liegt beispielsweise bei einer Genauigkeit von 50 %, und es ist ebenso schwierig, mit ein paar Zehntelprozent in die eine oder andere Richtung zu kommen. Das Problem besteht nicht darin, dass die Modelle entgegengesetzte Ergebnisse liefern, sondern darin, dass einige Balken richtige und andere falsche Ergebnisse liefern, und dies alles ist zufällig und es gibt keine Möglichkeit, nur die richtigen Ergebnisse herauszufiltern.
Und warum ziehen Sie die S-Prognose von der B-Prognose ab? Vielleicht sollten Sie das Gegenteil tun, S-B? Dann würde auch die Korrelation plötzlich stimmen.