Maschinelles Lernen im Handel: Theorie, Modelle, Praxis und Algo-Trading - Seite 1324

 
Aleksey Vyazmikin:

Ja, die Grundeinstellungen sind dort gut vorgegeben, vor allem wenn man gleich in Python startet. Aber das ist mir nicht gut genug.

Es stimmt, Anna Veronica ist eine bessere Erzählerin und tanzt mehr.

 
Maxim Dmitrievsky:

Die Show ist wahr, Anna Veronica ist eine bessere Erzählerin, und sie tanzt auch.

Ich weiß nicht, ich achte nicht darauf, ich schaue es normalerweise im Schnelldurchlauf.

Auf jeden Fall gibt es Fragen, die von den Urhebern beantwortet werden müssen, und ich weiß nicht, wie und wo ich sie stellen soll.

 
Aleksey Vyazmikin:

Ich weiß nicht, ich achte nicht darauf, ich schaue es normalerweise im Schnelldurchlauf.

Wie auch immer, es gibt Fragen, die von den Machern beantwortet werden müssen, und ich weiß nicht, wie ich sie stellen soll, oder wo ich sie stellen soll.

auf githab wahrscheinlich

 
Maxim Dmitrievsky:

auf einem Githab, vielleicht.

Die sprechen dort alle so gut Englisch - ich weiß gar nicht, wo ich bin :)

 
Aleksey Vyazmikin:

Dort sprechen alle so gut Englisch - ich weiß gar nicht, wo ich bin :)

es sieht so aus, als ob wir R anstelle von Python aufpumpen müssen, Renat schrieb, dass es bald eine direkte Verbindung ohne Krücken geben wird

d.h. Sie werden in der Lage sein, catbust in 1 Zeile von mt5 aus zu starten

 
Maxim Dmitrievsky:

es sieht so aus, als ob wir eher R als Python aufpumpen müssen, Renat schrieb, dass es bald ein direktes Bundle ohne Krücken geben wird

d.h. catbust kann in 1 Zeile von mt5 ausgeführt werden

Im Allgemeinen war ich nicht in der Lage, catbust unter R.... laufen zu lassen. Vielleicht bin ich nicht sehr geschickt. Wenn es sich um ein Bundle handelt, ist es gut, aber es wird keine Optimierung zulassen und die Reaktionsgeschwindigkeit ist fraglich...

 

Abschluss einer Studie über die Auswirkungen der Aufteilung der Stichprobe in eine Trainings- und eine Validierungsstichprobe (diejenige, für die das Training endet und die Modellauswahl stattfindet).

Die Stichprobe erstreckte sich von 2014 bis 2018, alle 20 % entsprechen etwa einem Jahr. Die Methodik ist wie folgt: Man nimmt die Gesamtstichprobe und beginnt damit, die Validierungsstichprobe um 10 Prozent zu erhöhen und die Trainingsstichprobe um die gleichen 10 Prozent zu reduzieren, was zu 9 Stichprobengruppen führt. Für jede Probe wurde ein Modell mit Seed von 1 bis 200 erstellt, d.h. insgesamt 200 Modelle pro Probe, 1800 Modelle insgesamt.

Die Modelltests wurden mit einer festen Stichprobe durchgeführt - 2018, die nicht an der Ausbildung beteiligt war.

Das Instrument ist der Si-Futures-Kontrakt Leim.

Unten in der Tabelle sind Indikatoren zur Beurteilung der Ergebnisse der Modelle - der linke Teil sind Finanzindikatoren, wie wir sie im Terminal zu sehen gewohnt sind, und der rechte Teil sind Indikatoren zur Fehlerbilanz (ich nenne sie so - ich weiß nicht, wie man sie korrigiert, falls sie überhaupt jemand verwendet), d.h. wenn das Ziel 1 richtig bestimmt wurde, dann +1, wenn nicht richtig, dann -1, sie erlaubt es, die Qualität der Klassifizierung über die gesamte Stichprobe genau zu bewerten. In Hellgrün habe ich die beste Leistung in Bezug auf den Mittelwert markiert.

Nachstehend sind die metrischen Werte der Modelle aufgeführt

Die Ergebnisse zeigen deutlich, dass das Training für 2014 (80%-90%) die schlechtesten Ergebnisse lieferte, mit einem signifikanten Abfall von 70%. Dies zeigt nicht, dass die Stichprobengröße zu klein war, sondern dass die Muster von 2014 kaum erfüllt werden, d.h. der Markt hat sich deutlich verändert, was bedeutet, dass dieser Zeitraum theoretisch ganz aus dem Training entfernt werden kann.

Jetzt verwende ich das folgende Kriterium für die Auswahl der Muster in der Teststichprobe (Prüfung)

if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_03=1;

Hier sind die Daten zur Anzahl der Modelle, die dieses Kriterium erfüllen

Die folgende Tabelle zeigt die Auswahl der Modelle unter Berücksichtigung der Indikatoren aller drei Stichproben nach den folgenden Kriterien

if(t==0)if (FinRez>10000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_01=1;
if(t==1)if (FinRez>3000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_02=1;
if(t==2)if (FinRez>1000 && DD_Balans_Proc_DMM<30 && Proc_Max_Balans> 70 && Proc_Min_Balans<30 && Pribolnost_Balans> 10 && ProfitFaktor_Balans>1.2)Filter_03=1;


Dabei ist zu berücksichtigen, dass das Kriterium des Gewinns festgelegt ist und die Zeit für das Erreichen dieses Gewinns für verschiedene Sets unterschiedlich ist (wahrscheinlich sollten wir die Zahlen reduzieren, um einen korrekten Vergleich zu ermöglichen).

Und welche Schlussfolgerung lässt sich daraus ziehen? Es scheint, dass der optimale Umfang 60-70% der Validierungsstichprobe beträgt, d.h. das Training sollte auf einer kleineren Stichprobe als die Modellvalidierung stattfinden. Aber es ist unmöglich, die Aufschlüsselung um 30 % nicht hervorzuheben, da auch das Ergebnis nach allen Indikatoren nicht schlecht ist und die Misserfolge ziemlich nahe an 40 % und 50 % liegen. Ich weiß nicht, was mehr Einfluss auf die Stichprobengröße oder den Inhalt hat und wie man das feststellen kann...

Und was ist Ihre Meinung zu den Ergebnissen dieses Experiments, vielleicht interpretiere ich die Ergebnisse falsch? Gibt es Ideen für eine Änderung der Methodik oder andere Vorschläge zur Lösung des Problems des Verhältnisses zwischen Trainings- und Auswahlstichproben?

Hinzugefügt:

Was die Durchschnittswerte bei 80%-90% betrifft, so gibt es dort eine Menge Nullen (überhaupt keine Eingangssignale von den Modellen) und deshalb gibt es eine Verzerrung, die im Indikator StDV_K_Korrekt_Balans zu sehen ist

Histogramm für StDV_K_Korrekt_Balans 90%


Histogramm für StDV_K_Korrekt_Balans 70%


Histogramm für StDV_K_Korrekt_Balans 30%

Und so sehen die Diagramme aus (die Histogramme sind anklickbar, damit sie nicht störend flackern)

30%


40%


50%


60%

 

Ich sollte auch anmerken, dass das Training immer mit Daten durchgeführt wird, die älter sind als die Daten, mit denen die Trainingskontrolle durchgeführt wird - vielleicht sollten wir sie austauschen und sehen, was passiert...

Der durchschnittlich geringe Recall lenkt die Aufmerksamkeit auf sich - vielleicht müssen wir die Modelle weiter trainieren, anstatt das Training abzubrechen, wenn sich nach 100 Bäumen keine Verbesserung einstellt oder es nicht so viele stabile Muster gibt, wie wir es gerne hätten.

Wir müssen sehen, wie stark sich die Modelle überschneiden. Wenn der Recall-Wert niedrig ist, besteht die Möglichkeit, dass es Modelle mit geringer Korrelation gibt, die aber gleichermaßen profitabel sind.

 
Aleksey Vyazmikin:
Und ich möchte noch anmerken, dass das Training immer mit Daten durchgeführt wird, die älter sind als die, mit denen die Trainingskontrolle durchgeführt wird - vielleicht sollte man sie austauschen und sehen, was passiert...

Alles oben genannte ist cool und sehr informativ, aber "Trainingskontrolle", was bedeutet das?

D.h. Sie trainieren das System z.B. auf einer Stichprobe von Daten aus dem Jahr 2014 und geben dann eine Stichprobe aus dem Jahr 2015 ein und wollen die Wahrscheinlichkeit von Mustern sehen? Wenn ja, dann brauchen Sie nichts auszutauschen, alles ist korrekt. Nur sehe ich hier kein Problem, wenn die Kontrolle andere Ergebnisse liefert als erwartet, das wird immer so sein.

 

Wenn die praktische Anwendung von MO in Ihrem Fall meiner Meinung nach wie folgt aussieht.

Da es einfach nicht realistisch ist, eine 100%ige Wahrscheinlichkeit des wahren Ergebnisses zu erhalten, dann gehen Sie nach einer einfachen Methode vor, z.B. dem Verhältnis von wahren zu falschen Ergebnissen, wenn es im Bereich von 50/50 liegt, dann müssen wir wieder verstehen, welche Gewinne Sie mit diesen Ergebnissen erzielen, wenn 50% des Gewinns ein Durchschnitt von 100 Punkten und die restlichen 50% Verluste im Durchschnitt 50 Punkte sind, dann denke ich, dass Ihr System bereits für den praktischen Einsatz geeignet ist.

Grund der Beschwerde: