Shareholder R/2 Börsensoftware
Space shortcuts
Skip to end of metadata
Go to start of metadata

Folgende Modelle und Optimierungen sind die Herleitung für die im Kursprognose-Addon genutzten optimalen Setups. Diese sind vorkonfiguriert und müssen nicht selbst erstellt werden. Es muss nur der Kursprognose-Button im Programm gedrückt werden, eine Entscheidung zur gewünschten konkreten Prognoseart gegeben werden und danach Start gedrückt werden. Die nachfolgende Doku ist damit auch eine interne fortlaufende Dokumentation der Modelle.

Management-Summary

Nachfolgend werden die Maximalwerte aus den Modellen dargestellt auf Basis der Modell-Statistiken in den Validierungsdaten. Die konkrete praktische Vorhersagequalität kann hiervon abweichen, da das Training ausschließlich auf den Trainingsdaten stattgefunden haben, die im Datentraining eingebunden waren (siehe Spalte). 


Vorhersage-ZeitraumDatentraining

Binäre-Vorhersage

(Long|Short)

Konkrete Vorhersage

in Prozent

Diskrete Vorhersage

-3|-2|-1|0|1|2|3 in Prozent

15 HandelstageDAX30 von 2005-2018

75% Trefferwahrscheinlichkeit in den Validierungsdaten

  • Long: 88%
  • Short: 80%


  • Durschschnittlicher Absoluter Fehler (MAE): 2.2%
  • R2: 0.504
  • MSE: 10.27

43% Trefferwahrscheinlichkeit-Gesamtmodell

  • Korrekt <=-3%: 70%
  • Korrekt >=3%: 77%
210 HandelstageDAX30 von 2005-2018

82% Trefferwahrscheinlichkeit in den Validierungsdaten

  • Long: 93%
  • Short: 85%


  • Durschschnittlicher Absoluter Fehler (MAE): 2.29%
  • R2: 0.72
  • MSE: 10.80

60% Trefferwahrscheinlichkeit-Gesamtmodell

  • Korrekt <=-3%: 89%
  • Korrekt >=3%: 95%
330 HandelstageDAX30 von 2005-2018

90% Trefferwahrscheinlichkeit in den Validierungsdaten

  • Long: >90%
  • Short: >90%

77% Trefferwahrscheinlichkeit-Gesamtmodell

  • Korrekt <=-3% >90%
  • Korrekt >=3% >90%


Datenbasis für die trainierten Netze

Die Datenbasis kommt dabei aus Kursdaten, die über AlphaVantage und/oder Tai-Pan als End-Of-Day-Kursdatenlieferanten aufgebaut sind. Der Datenabruf, -Zusammenführung und Aufbereitung der Berechnungen und Indikatoren erfolgt dabei über ShareHolder.

Der Datenumfang der Trainings-und Lerndaten ist dabei definiert mit:

Aktuell 135 Datenspalten die im ML als Trainingsdaten verarbeitet werden
Beispiel 1Beispiel 2Beschreibung und Hintergründe
1StockPrice  4.96  3.40Asset/Aktienkurs
2Open-Close-Range-Percent-4 -7.61 -1.32(Close-Open)*100/Close vom betrachten Tag - 4 Tage
3Open-Close-Range-Percent-3  0.97  1.02(Close-Open)*100/Close vom betrachten Tag - 3 Tage
4Open-Close-Range-Percent-2  1.92 -2.11(Close-Open)*100/Close vom betrachten Tag - 2 Tage
5Open-Close-Range-Percent-1  7.00 -3.45(Close-Open)*100/Close vom betrachten Tag - 1 Tag
6Open-Close-Range-Percent  1.63  1.44(Close-Open)*100/Close vom betrachten Tag
d.h. Verhältnis der Tages-Bewegungsbreite zwischen Schluss und Eröffnungskurs zum Schlusskurs. Starke Tage mit großen Bewegungen zum Eröffnungskurs können so betrachtet werden
7Volumes-Normalized  3.25  0.73Normalisiertes Handelsvolumen des Titels, wobei dieser im Verhältnis zum Durchschnittskurs der letzten 50 Tage betrachtet wird.
8MA-Difference-89  0.08 -0.13% Abstand des Schlusskurses zum Gleitenden Durchschnitt mit 89 Tagen (Fibonacci-Reihe)
9MA-Difference-8 -0.14  0.01siehe MA-Difference-89
10MA-Difference-55  0.00 -0.08siehe MA-Difference-89
11MA-Difference-5 -0.11  0.01siehe MA-Difference-89
12MA-Difference-34 -0.07 -0.03siehe MA-Difference-89
13MA-Difference-3 -0.07  0.01siehe MA-Difference-89
14MA-Difference-21 -0.13 -0.02siehe MA-Difference-89
15MA-Difference-144  0.13 -0.14siehe MA-Difference-89
16MA-Difference-13 -0.17 -0.01siehe MA-Difference-89
17High-Low-Range-Percent-4  7.61  4.14

(High-Low)*100/Close vom betrachten Tag - 4 Tage

Differenz zwischen Hoch-und Tiefstkurs im Verhältnis zum Schlusskurs

18High-Low-Range-Percent-3  4.37  2.90(High-Low)*100/Close vom betrachten Tag - 3 Tage
19High-Low-Range-Percent-2  1.92  3.09(High-Low)*100/Close vom betrachten Tag - 2 Tage
20High-Low-Range-Percent-1 14.00  4.92(High-Low)*100/Close vom betrachten Tag - 1 Tag
21High-Low-Range-Percent  4.07  2.85(High-Low)*100/Close vom betrachten Tag
22High-Close-Range-Percent-4  0.00  0.00(High-Close)*100/Close vom betrachten Tag - 4 Tage
23High-Close-Range-Percent-3  0.97  1.02(High-Close)*100/Close vom betrachten Tag - 3 Tage
24High-Close-Range-Percent-2  1.92  0.98(High-Close)*100/Close vom betrachten Tag - 2 Tage
25High-Close-Range-Percent-1  7.00  0.06(High-Close)*100/Close vom betrachten Tag - 1 Tag
26High-Close-Range-Percent  1.63  1.67(High-Close)*100/Close vom betrachten Tag
27StockPrices.MA[1d]  4.96  3.40Aktienkurs mit der Option (je nach Einstellung im Client) diesen geglättet zur Verfügung zu stellen. Der Wert in Klammern gibt die Anzahl der Tage für die Berechnung der Glättung an. 1d=Keine Glättung
28EMA-Difference-89  0.01 -0.09Analog MA nur hier als expotentiell gleitender Durchschnitt. Dieser reagiert heftiger auf kurzfristige Schwankungen als der MA.
29EMA-Difference-8 -0.11  0.00siehe EMA-Difference-89
30EMA-Difference-55 -0.02 -0.07siehe EMA-Difference-89
31EMA-Difference-5 -0.08  0.00siehe EMA-Difference-89
32EMA-Difference-34 -0.07 -0.04siehe EMA-Difference-89
33EMA-Difference-3 -0.05  0.01siehe EMA-Difference-89
34EMA-Difference-21 -0.11 -0.02siehe EMA-Difference-89
35EMA-Difference-144 -0.02 -0.12siehe EMA-Difference-89
36EMA-Difference-13 -0.13 -0.01siehe EMA-Difference-89
37ISINAT0000A0E9W5AT0000A0E9W5ISIN zur Identifikation des Titels. Dieser Wert ist der Primärschlüssel. Alle Kursdaten für die Berechnung beziehen sich immer auf die Marktdaten mit dem höchsten Handelsvolumen.
38MarktKap         1.3         1.3Markt-Kapitalisierung in Mrd. der Heimatwährung
39Date3867042023Datum
40DayOfWeek22Tag der Woche (0=Sonntag)
41CalendarWeek464Kalenderwoche im Jahr
42Close-Low-Range-Percent-4  7.61  4.14(Close-Low)*100/Close vom betrachten Tag - 4 Tage
43Close-Low-Range-Percent-3  3.40  1.89(Close-Low)*100/Close vom betrachten Tag - 3 Tage
44Close-Low-Range-Percent-2  0.00  2.11(Close-Low)*100/Close vom betrachten Tag - 2 Tage
45Close-Low-Range-Percent-1  7.00  4.86(Close-Low)*100/Close vom betrachten Tag - 1 Tag
46Close-Low-Range-Percent  2.44  1.18(Close-Low)*100/Close vom betrachten Tag
47Forecast[5d].MA[1d].Rounded.ts-17.00  1.00% Vorhersagewert [ für X Tage hier 5] gerundet mit [ X Tage hier 1/ Gar nicht] als numerisch gerundet
48Forecast[5d].MA[1d].Rounded.Enum.ts -3.00  1.00% Vorhersagewert [ für X Tage hier 5] mit [ X Tage hier 1/ Gar nicht] als Enum-Wert entsprechend der gesetzten Grenzwerte. Defaulteinstellung hier zwischen -3 und 3%. d.h. | Werte | > |Grenzwert | werden zum Grenzwert gleich gesetzt
49Forecast[5d].MA[1d].Normalized.ts -1.00 -0.49% Vorhersagewert normiert auf Werte zwischen -1 und 1 als Floating-Zahlen
50Forecast[5d].MA[1d].ts-16.94  1.41% Vorhersagewert exakt [ für X Tage hier 5] mit [ X Tage hier 1/ Gar nicht]
51Forecast[5d].MA[1d].Binaer.ts -1.00  1.00% Vorhersagewert binär d.h. -1, 0 oder 1 [ für X Tage hier 5] mit [ X Tage hier 1/ Gar nicht]
1=steigend
0=seitwärts
-1=fallend
52Forecast[30d].MA[1d].Rounded.ts -6.00  9.00siehe oben, hier für 30-Tage Vorhersagewerte
53Forecast[30d].MA[1d].Rounded.Enum.ts -3.00  3.00siehe oben, hier für 30-Tage Vorhersagewerte
54Forecast[30d].MA[1d].Normalized.ts -1.00  1.00siehe oben, hier für 30-Tage Vorhersagewerte
55Forecast[30d].MA[1d].ts -6.05  8.53siehe oben, hier für 30-Tage Vorhersagewerte
56Forecast[30d].MA[1d].Binaer.ts -1.00  1.00siehe oben, hier für 30-Tage Vorhersagewerte
57Forecast[10d].MA[1d].Rounded.ts -6.00  0.00siehe oben, hier für 10-Tage Vorhersagewerte
58Forecast[10d].MA[1d].Rounded.Enum.ts -3.00  0.00siehe oben, hier für 10-Tage Vorhersagewerte
59Forecast[10d].MA[1d].Normalized.ts -1.00 -0.87siehe oben, hier für 10-Tage Vorhersagewerte
60Forecast[10d].MA[1d].ts -6.45 -0.32siehe oben, hier für 10-Tage Vorhersagewerte
61Forecast[10d].MA[1d].Binaer.ts -1.00  0.00siehe oben, hier für 10-Tage Vorhersagewerte
62VolumeNotis.G1.signal  0.00 -0.10Indikator mit Signalgebung mit >0 für Kauf, <0 für Verkauf, 0 keine Signalgebung. Das Signal schwächt sich dabei über mehrere Tage ab. Beispiel Kaufsignal für 10.10.
  • 10.10. = 1 (Kaufsignal)
  • 11.10. = 0.8 (Kaufsignal abgeschwächt)
  • 12.10. = 0.2 (Kaufsignal expotentiell abgeschwächt)
  • 13.10. = 0 (Kein Signal mehr)

Der exakte Wert berechnet sich über den Indikator-Spezifischen Wert der "Verfallszeit" des Signals.

Indikatoren werden in Einstellungsgruppen organisiert. Dabei sind die Settings für steigende Märkte (Long) optimiert anders als für fallende Märkte (Short). Daher gibt es verschiedenen Indikatorengruppe, die eine eigene ID haben. Gx im Namen z.B. VolumeNotis.G1.Signal steht für Gruppe-ID=1 in diesem Fall für die Indikatoreneinstellungen der Long-Signal-Einstellungen. G2 wäre hier in diesem Setup für Short-Signal-Einstellungen.

63VolumeNotis.G1.norm -0.74 -0.90Indikatorenwert
64PosVolIndex.G1.signal  0.80  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
65PosVolIndex.G1.norm -0.90 -0.79Indikatorenwert
66NegVolIndex.G1.signal  0.00 -0.20Indikatorensignal (siehe VolumeNotis.G1.Signal)
67NegVolIndex.G1.norm  0.64 -0.95Indikatorenwert
68VolPriceTrend.G1.signal  0.18 -0.38Indikatorensignal (siehe VolumeNotis.G1.Signal)
69VolPriceTrend.G1.norm -0.99 -0.75Indikatorenwert
70OnBalanceVol.G1.signal  0.18 -0.38Indikatorensignal (siehe VolumeNotis.G1.Signal)
71OnBalanceVol.G1.norm -0.99 -0.38Indikatorenwert
72ForceIndex.G1.signal  0.07  0.52Indikatorensignal (siehe VolumeNotis.G1.Signal)
73ForceIndex.G1.norm  0.71  0.71Indikatorenwert
74TRWinkel.G1.signal  0.24  0.20Indikatorensignal (siehe VolumeNotis.G1.Signal)
75TRWinkel.G1.norm -0.73 -0.81Indikatorenwert
76Aroon.G1.signal  0.85  0.21Indikatorensignal (siehe VolumeNotis.G1.Signal)
77Aroon.G1.norm  0.67 -0.17Indikatorenwert
78RWI.G1.signal  0.85  0.12Indikatorensignal (siehe VolumeNotis.G1.Signal)
79RWI.G1.norm  0.03 -0.62Indikatorenwert
80RAVI.G1.signal -1.00  0.35Indikatorensignal (siehe VolumeNotis.G1.Signal)
81RAVI.G1.norm -0.78 -0.89Indikatorenwert
82DMIADXADXR.G1.signal  0.27 -0.45Indikatorensignal (siehe VolumeNotis.G1.Signal)
83DMIADXADXR.G1.norm  0.81  0.50Indikatorenwert
84WilderVol.G1.signal  0.00  0.85Indikatorensignal (siehe VolumeNotis.G1.Signal)
85WilderVol.G1.norm -0.56 -0.87Indikatorenwert
86VHF.G1.signal -0.45  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
87VHF.G1.norm -0.14 -0.16Indikatorenwert
88HistVol.G1.signal  0.00 -0.30Indikatorensignal (siehe VolumeNotis.G1.Signal)
89HistVol.G1.norm -1.66 -0.90Indikatorenwert
90Standardabweichung.G1.signal  0.00  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
91Standardabweichung.G1.norm -0.24 -0.96Indikatorenwert
92NewLow.G1.signal  0.00  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
93NewLow.G1.norm -0.76 -0.81Indikatorenwert
94NewHigh.G1.signal  0.00  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
95NewHigh.G1.norm -0.70 -0.84Indikatorenwert
96PVT.G1.signal  0.58  0.33Indikatorensignal (siehe VolumeNotis.G1.Signal)
97PVT.G1.norm -0.98 -0.38Indikatorenwert
98TSF.G1.signal  0.00  0.88Indikatorensignal (siehe VolumeNotis.G1.Signal)
99TSF.G1.norm -0.76 -0.82Indikatorenwert
100PFE.G1.signal  0.57 -0.58Indikatorensignal (siehe VolumeNotis.G1.Signal)
101PFE.G1.norm  0.52 -0.01Indikatorenwert
102RMI.G1.signal  0.27 -0.36Indikatorensignal (siehe VolumeNotis.G1.Signal)
103RMI.G1.norm  0.07 -0.21Indikatorenwert
104CCI.G1.signal  0.21  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
105CCI.G1.norm -0.07 -0.12Indikatorenwert
106TRIX.G1.signal  0.57  0.15Indikatorensignal (siehe VolumeNotis.G1.Signal)
107TRIX.G1.norm  0.09 -0.26Indikatorenwert
108MACD.G1.signal  0.57 -0.35Indikatorensignal (siehe VolumeNotis.G1.Signal)
109MACD.G1.norm -0.17 -0.04Indikatorenwert
110RSL.G1.signal  0.42  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
111RSL.G1.norm  0.13 -0.21Indikatorenwert
112Coppock.G1.signal  0.90  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
113Coppock.G1.norm  0.14 -0.15Indikatorenwert
114MFI.G1.signal  0.80 -0.10Indikatorensignal (siehe VolumeNotis.G1.Signal)
115MFI.G1.norm  0.32 -0.20Indikatorenwert
116DSmS.G1.signal  0.00 -1.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
117DSmS.G1.norm  0.47  0.18Indikatorenwert
118Chaikin.G1.signal -0.42 -0.13Indikatorensignal (siehe VolumeNotis.G1.Signal)
119Chaikin.G1.norm -0.17 -0.44Indikatorenwert
120Stochastik.G1.signal  0.13  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
121Stochastik.G1.norm  0.73  0.05Indikatorenwert
122RSI.G1.signal  0.20 -0.58Indikatorensignal (siehe VolumeNotis.G1.Signal)
123RSI.G1.norm -0.12  0.25Indikatorenwert
124MOMROC.G1.signal  0.29 -0.75Indikatorensignal (siehe VolumeNotis.G1.Signal)
125MOMROC.G1.norm  0.52 -0.26Indikatorenwert
126GDUmsatz.G1.signal  0.00  0.08Indikatorensignal (siehe VolumeNotis.G1.Signal)
127GDUmsatz.G1.norm -0.97 -0.65Indikatorenwert
128PSAR.G1.signal  0.45  0.27Indikatorensignal (siehe VolumeNotis.G1.Signal)
129PSAR.G1.norm -0.69 -0.82Indikatorenwert
130Bollingerband.G1.signal  0.85  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
131Bollingerband.G1.norm -0.97 -0.74Indikatorenwert
132Gleitender Durchschnitt.G1.signal  0.00  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
133Gleitender Durchschnitt.G1.norm -0.73 -0.82Indikatorenwert
134Candlesticks.G1.signal  0.00  0.00Indikatorensignal (siehe VolumeNotis.G1.Signal)
135Candlesticks.G1.norm  0.00  0.00Indikatorenwert


Round 5: Optimierungen der Modellnutzung und andere Fragestellungen

Zwischenstand 26.08.2018


FrageDetailsThesenAntwort bzw. Ableitungen
1Welcher der Vorhersagemodelle ist für die Praxis optimal, wenn ich den Markt systematisch nach starken Long oder Short-Positionen screenen möchte?

Anhand vom GBM-Modell-Rechnungen

Forecast[5d].MA[1d].ts (-Unendlich..Unendlich)

  • MSE 10.273237
  • RMSE 3.205189
  • nobs 15419
  • r2 0.504696
  • mean_residual_deviance 10.273237
  • mae 2.226095

Rounded-Enum[5d] (analog Rounded -3...3)

  • MSE 0.548741
  • RMSE 0.740771
  • nobs 15419
  • r2 0.866098
  • logloss 1.629311
  • mean_per_class_error 0.682464

Binär[5d] (1|0|-1)

  • MSE 0.236146
  • RMSE 0.485949
  • nobs 15419
  • r2 0.729077
  • logloss 0.728397
  • mean_per_class_error 0.434816

Rounded[5d] (-3..3)

  • MSE 10.365455
  • RMSE 3.219543
  • nobs 15419
  • r2 0.501119
  • mean_residual_deviance 10.365455
  • mae 2.249900

Normalized (Wertebereich -1..1)

  • MSE 0.301726
  • RMSE 0.549296
  • nobs 15419
  • r2 0.426001
  • mean_residual_deviance 0.301726
  • mae 0.451962

Die Ansprüche bzw. Ideen hinter den Modellen sind recht unterschiedlich. Die Thesen dahinter sollten geprüft werden.

  • Forecast.ts : Orginalvorhersage mit allerdings auch zugelassenen freien Werten
  • Rounded-Enum: Klassifikation der Zahlenwerten im Bereich -3..3 d.h. 7 Werten mit 0 hilft hier weiter
  • Rounded: Vereinfacht den Modellen die Berechnung da die Forecast-Werte gerundet werden und Extrempunkte vermieden werden
  • Binär: Wenn nur Steigend oder Fallend vorausgesagt werden sollen, dann sollte das Netz auch nur das Lernen müssen. Binäre Vorhersagen sind einfacher uns sollte treffsicherer sein.

(info) Wenn nur Long|Short-Signale generiert werden sollen, dann sollten auch Binäre-Forecasts durchgeführt werden. Diese haben ein Mean-Per-Class-Error von nur 0.43 bzw. sind sehr treffsicher mit insg. fast 73%.

(info) Wenn konkretere Chancen gesucht werden sollen, d.h. starke Anstiege oder starke Verluste dann sind die Forecast den Rounded etwas überlegen (MAE und R2 ähnlich).

(info) Die normalisierten Werte zeigen keine verbesserte Prognosequalität und können perspektivisch generell "deaktiviert" werden.

(info) Die Rounded-Enum haben einen Mean-per-Class-Error von 0.68. Bei genaurer Betrachtung sind aber ausgerechnet die gewünschten Extrempunkte sehr gut in den Vorhersagen und sollten daher gezielt verwendet werden. D.h. Rounded-Enum mit +3 oder -3-Werten sind sehr interessant mit hohen Trefferquoten (-3: 70%, +3: 77%)

2Welcher der Vorhersagemodelle ist für die Praxis optimal, wenn ich nur eine Richtungsvorhersage benötige?

siehe #1

These: Speziell trainierte Modelle für binäre Vorhersagen sollten verwendet werden

siehe #1

3Werden die Antworten besser, wenn ich kleinere Kursvorhersage-Tage habe?

Forecast[2d] -GBM-Modell für 2 Tage

  • MSE 6.329485
  • RMSE 2.515847
  • nobs 15419
  • r2 0.190371
  • mean_residual_deviance 6.329485
  • mae 1.737813

Binär[2d]-GBM-Modell für 2 Tage

  • MSE 0.351165
  • RMSE 0.592592
  • nobs 15419
  • r2 0.556843
  • logloss 1.098272
  • mean_per_class_error 0.508951

Forecast[10d] - GBM-Modell

  • MSE 10.804908
  • RMSE 3.287082
  • nobs 15419
  • r2 0.720063
  • mean_residual_deviance 10.804908
  • mae 2.293830

Binär[10d]

  • MSE 0.155766
  • RMSE 0.394672
  • nobs 15419
  • r2 0.827971
  • logloss 0.658212
  • mean_per_class_error 0.384103

Rounded-Enum [10d]

  • MSE 0.378345

  • RMSE 0.615098

  • nobs 15419

  • r2 0.911514

  • logloss 1.604135

  • mean_per_class_error 0.663119

These: Durch die Zusatzangaben der Candle-Range-Werten (Close-Low, Close-High etc.) sollte eventl. 1-2Tage-Prognose einer 5d-Prognose voraus sein. Zudem ist die Range der möglichen Vorhersagewerte kleiner und damit statistisch automatisch eine bessere Prognose möglich (in der Theorie).

Auswertung für 2 Tage

(info) Das Training zeigt deutliche Verbesserungen für 2d-Vorhersagen, was aber schlicht an der nun verdichteten Vorhersage-Range liegt. Damit werden die absoluten Fehler-Abstände natürlich auch kleiner bei Forecast-Modellen. Prüft man gleichzeitig das Binäre-GBM-Modell fällt die Vorhersage-Qualität sogar deutlich ab von 75% (bester Wert) auf hier 56%.

(warning) Auf 2d-Vorhersagen sollte daher mit dem Modell verzichtet werden!

Wie zu erwarten beginnt der ML-Algo hier kurzfristige Datenspalten wie High-Low-Range, MA-Differenz stärker in die Gewichtung mit aufzunehmen.

Auswertung für 10 Tage

(info) Das Training für einen verlängerten Zeitraum von 10d zeigt, dass die Daten sehr stark auf Indikatoren verschoben werden. Gleichzeitig wird eine extrem hohe Sicherheit von >90% erreicht für richtig Long-Vorhersagen und ca. 85% für Short-Positionen in der Testdatenmenge.

(grey lightbulb) Damit ist die Gesamttrefferrate bei 82% und steigt deutlich gegenüber der 5 Tage Prognose an!

Forecast[10d]

Binär

Rounded-Enum

4

Welche Signale und Werte der Indikatoren brauche ich?

  • Wie verhält sich das System, wenn ich alle Indikatoren entferne?
  • Wie verhält sich das System, wenn ich KEINE Signalgebungen durch die Indikatoren zulasse?

Binäres [5d]Vorhersagemodell 60.15.mit Ausgrenzung aller Indikatoren

  • MSE 0.311878
  • RMSE 0.558461
  • nobs 15419
  • r2 0.642478
  • logloss 0.914897
  • mean_per_class_error 0.544829


Dabei wurden als Daten herausgenommen:

  • ignored_columns StockPrice, MA-Difference-89, MA-Difference-8, MA-Difference-55, MA-Difference-5, MA-Difference-34, MA-Difference-3, MA-Difference-21, MA-Difference-144, MA-Difference-13, StockPrices.MA[1d], ISIN, MarktKap, Date, Forecast[5d].MA[1d].Rounded.Enum.ts, Forecast[5d].MA[1d].Rounded.ts, Forecast[5d].MA[1d].Normalized.ts, Forecast[5d].MA[1d].ts, VolumeNotis.G1.signal, VolumeNotis.G1.norm, PosVolIndex.G1.signal, PosVolIndex.G1.norm, NegVolIndex.G1.signal, NegVolIndex.G1.norm, VolPriceTrend.G1.signal, VolPriceTrend.G1.norm, OnBalanceVol.G1.signal, OnBalanceVol.G1.norm, ForceIndex.G1.signal, ForceIndex.G1.norm, TRWinkel.G1.signal, TRWinkel.G1.norm, Aroon.G1.signal, Aroon.G1.norm, RWI.G1.signal, RWI.G1.norm, RAVI.G1.signal, RAVI.G1.norm, DMIADXADXR.G1.signal, DMIADXADXR.G1.norm, WilderVol.G1.signal, WilderVol.G1.norm, VHF.G1.signal, VHF.G1.norm, HistVol.G1.signal, HistVol.G1.norm, Standardabweichung.G1.signal, Standardabweichung.G1.norm, NewLow.G1.signal, NewLow.G1.norm, NewHigh.G1.signal, NewHigh.G1.norm, PVT.G1.signal, PVT.G1.norm, TSF.G1.signal, TSF.G1.norm, PFE.G1.signal, PFE.G1.norm, RMI.G1.signal, RMI.G1.norm, CCI.G1.signal, CCI.G1.norm, TRIX.G1.signal, TRIX.G1.norm, MACD.G1.signal, MACD.G1.norm, RSL.G1.signal, RSL.G1.norm, Coppock.G1.signal, Coppock.G1.norm, MFI.G1.signal, MFI.G1.norm, DSmS.G1.signal, DSmS.G1.norm, Chaikin.G1.signal, Chaikin.G1.norm, Stochastik.G1.signal, Stochastik.G1.norm, RSI.G1.signal, RSI.G1.norm, MOMROC.G1.signal, MOMROC.G1.norm, GDUmsatz.G1.signal, GDUmsatz.G1.norm, PSAR.G1.signal, PSAR.G1.norm, Bollingerband.G1.signal, Bollingerband.G1.norm, Gleitender Durchschnitt.G1.signal, Gleitender Durchschnitt.G1.norm, Candlesticks.G1.signal, Candlesticks.G1.norm
Die Vorhersage muss deutlich schlechter werden, kann aber mit den MA-Daten und den Candlestick-Daten dennoch ein respektables Ergebnis erreichen in der Theorie.

Nehme ich alle Indikatoren und alle EMA-Werte heraus, kann das System dennoch in einem bestimmten Rahmen eine Einschätzung vornehmen. Hierbei kommt eine interessante Gewichtung heraus mit einer Vorhersagequalität insg. von 60%, die natürlich deutlich unter den 75% in der Gesamtkonstellation liegt.

5Wie gut performt ein Neuronales Netz?

Deep-Learning mit

  • hidden 100, 50 Hidden layer sizes (e.g. [100, 100])
  • epochs 20

Rounded-Enum[5d]

  • MSE 0.656183
  • RMSE 0.810051
  • nobs 15419
  • r2 0.839880
  • logloss 1.844687
  • mean_per_class_error 0.796682

Forecast[5d]

  • MSE 16.940916

  • RMSE 4.115934

  • nobs 15419

  • r2 0.183228

  • mean_residual_deviance 16.940916

  • mae 2.915877

Neuronale Netze sind gut in der Mustererkennung, aber nicht spezialisiert auf die Vorhersage von wahrscheinlichen Mustern.
  • (info) Die Deep-Learning-Ansätze funktionieren unzureichend da die r2 nur bei 0.18 liegt bzw. MAE_Werte von 2.9 viel zu hoch sind.
6Welche anderen ML-Algorithmen sind ebenfalls nutzbar neben GBM, DRF für den Kursprognose-Case?

Trainiert auf Forecast

Orginalwert mit GBM 100|20

Ergebnis:

  • MSE 9.546808
  • RMSE 3.089791
  • nobs 15419
  • r2 0.539720
  • mean_residual_deviance 9.546808
  • mae 2.109862

XGBoost (nur mit GPU-Support)[5d]

  • model_category Regression
  • MSE 11.164040

  • RMSE 3.341263

  • nobs 15419

  • r2 0.476745

  • mean_residual_deviance 11.164040

  • mae 2.318052

AutoML-GBM[5d]

  • MSE 9.062982
  • RMSE 3.010479
  • nobs 15563
  • r2 0.551056
  • mean_residual_deviance 9.062982
  • mae 2.112427

mit folgenden Einstellungen

  • nfolds 5

  • keep_cross_validation_predictions true

  • score_tree_interval 5

  • fold_assignment Modulo

  • ntrees 348 Number of trees.

  • max_depth 10 Maximum tree depth.

  • distribution gaussian

  • sample_rate 0.8

  • col_sample_rate 0.8

  • col_sample_rate_per_tree 0.8

Trainiert auf Binär

Orginalwert mit GBM 100|20

  • MSE 0.226473
  • RMSE 0.475892
  • nobs 15419
  • r2 0.740174
  • logloss 1.124607
  • mean_per_class_error 0.421958

Stacked-Ensemble[5d]

  • MSE 0.220594
  • RMSE 0.469675
  • nobs 15419
  • r2 0.747121
  • logloss 0.656527
  • mean_per_class_error 0.420293
  • residual_deviance 20245.979526
  • null_deviance 30329.251087
Der AutoML-Mechanismus und Experimente könnten noch weitere Subarten der Modelle bzw. Alternativen aufzeigen helfen.
  • (info) Im Kern konnte keine Alternative zu den bestehenden Modellen gefunden werden weder mit XGBoost, XRT, Stacked-Ensembles
  • (info) Manuell entwickelte Stacked-Ensemble zur Zusammenarbeit verschiedener Einzel-Systeme kann noch eine sehr interessante Kombination darstellen
7Macht es einen Unterschied die Datenmengen sortiert oder per Zufall zur Verfügung zu stellen?

GBM-60-15-Netz mit 6er-Validierungssätze
mit internem Shuffle durch SHAREholder


Auf Binärem Modell[5d] mit Shuffle

  • MSE 0.236146
  • RMSE 0.485949
  • nobs 15419
  • r2 0.729077
  • logloss 0.728397
  • mean_per_class_error 0.434816

Auf Rounded-Enum-Modell[5d] mit Shuffle

  • MSE 0.548741

  • RMSE 0.740771

  • nobs 15419

  • r2 0.866098

  • logloss 1.629311

  • mean_per_class_error 0.682464

  • Der Shuffle sollte der Standard sein und eine bessere Aufteilung der Datenmenge organisieren. Die Prognosewerte könnten sich sogar verschlechtern, dafür der Abstand zwischen Training und Validierung sich verbessern.
  • (info) Das Modell verbessert sich sehr leicht. Da dies keine zusätzliche Kosten verursacht sollte die Daten immer geschuffelt werden.
8Macht es einen Unterschied, ob die Validierungsmenge separat zur Verfügung gestellt wird als Val.hex oder sollte das System selbst shuffeln?

GBM-60-15-Netz mit 6er-Validierungssätze
auf Rounded-Enum[5d] ohne internem Shuffle durch SHAREholder

  • Laufzeit 2min:07s

  • MSE 0.549947

  • RMSE 0.741584

  • nobs 15419

  • r2 0.865803

  • logloss 1.633537

  • mean_per_class_error 0.687293

GBM-60-15-Netz mit kfolds=5 d.h. automatischer Cross-Validierungsdatenverwendung auf den Train-DAX-Werten d.h. OHNE die Validierungsdatensätze wieder einzuschließen

  • Nachteil keine Preview während des Job-Runs mehr vorhanden!
  • Laufzeit: Abbruch bei >30min

GBM-60-15-Netz mit Split-Daten auf Basis Trainingsdatensatz und 0.75 und 0.25 Val-Daten-Splitt über H2o.

  • Laufzeit 2min:04s
  • MSE 0.542601

  • RMSE 0.736615

  • nobs 23055

  • r2 0.868866

  • logloss 1.620967

  • mean_per_class_error 0.684966

  • Es kann sich positiv auswirken wenn ein interner zufälliger Shuffle-Algorithmus verwendet wird, da die Zufälligkeit stärker gegeben ist. Bei jedem 6. Beispiel verschiebt sich der Tag immer schrittweise, da immer nur 5 Handelstage vorhanden sind. Bei genau 5 kann es aber passieren, das ein Tag in den Trainingsdaten fehlt!
  • Die Ergebnisse von zwei Läufen sind dann aber wahrscheinlich nicht mehr vergleichbar.
  • Die Laufzeit kann durch die notwendigen Shuffle-Mechanismen leiden
  • (info) Die kfold-Funktion ist sehr teuer und sollte vermieden werden!
  • (info) Ob ein Daten-Split-über H2o vorgenommen wird oder in der Vorverarbeitung scheint unterheblich zu sein. Die Error-Metriken unterscheiden sich praktisch nicht.
9Können die Weighted-Columns helfen d.h. die Gewichtung einzelner Datenfelder?

Test mit weighted-Columns auf Basis "Normalized-Volume" wieder als GBM-60-15-Netz-Rounded-Enum-Forecast[5d]

  • Laufzeit 2min:30s
  • MSE 0.543010

  • RMSE 0.736892

  • nobs 23055

  • r2 0.869496

  • logloss 1.622349

  • mean_per_class_error 0.685769

  • Die Verwendung sollte sich auf die Laufzeit auswirken und eventl. einen positiven Einfluss auf die Stabilität des Systems durch die Gewichtung von Datensätzen
  • (info) In dem verwendetem Setup keine Verbesserung.

10Optimierungen über die Anzahl der Trees und Depth möglich

GBM-Forecast-Direkt[5d]

mit

  • ntrees 200
  • max_depth 25

Ergebnis:

  • MSE 9.546808
  • RMSE 3.089791
  • nobs 15419
  • r2 0.539720
  • mean_residual_deviance 9.546808
  • mae 2.109862

versus (60, 15-System)

  • MSE 10.273237
  • RMSE 3.205189
  • nobs 15419
  • r2 0.504696
  • mean_residual_deviance 10.273237
  • mae 2.226095

GBM-Binär[5d]

  • Laufzeit allerdings 5min: 30s
  • MSE 0.226473
  • RMSE 0.475892
  • nobs 15419
  • r2 0.740174
  • logloss 1.124607
  • mean_per_class_error 0.421958

versus (60, 15-System), Binär (1|0|-1)

  • MSE 0.236146
  • RMSE 0.485949
  • nobs 15419
  • r2 0.729077
  • logloss 0.728397
  • mean_per_class_error 0.434816

GBM-Rounded-Enum (-3..3)[5d]

  • Laufzeit allerdings 16min
  • MSE 0.509305
  • RMSE 0.713656
  • nobs 15419
  • r2 0.875721
  • logloss 1.986936
  • mean_per_class_error 0.674909

versus(60,15-System)

  • MSE 0.548741
  • RMSE 0.740771
  • nobs 15419
  • r2 0.866098
  • logloss 1.629311
  • mean_per_class_error 0.682464


  • Verbesserung kann durch Differenzierung erreicht werden. Dies passiert auf Kosten der Rechenzeit. Aufgrund vorheriger Berechnungen wird dies allerdings linear passieren können und ist damit vertretbar.
  • (info) Für produktive Systeme scheinen 200|25 Systeme statt 60|15-Modelle angebracht. Diese verbessern die Performance nochmals deutlich in allen Prognose-Systemen unter dem Preis einer höheren Berechnungszeit.
  • (info) Die Berechnungszeit erhöht sich praktisch linar mit der Anzahl der Modelle und der Tiefe der Bäume
  • (info) Binäre Vorhersage-Ergebnisse sind ebenfalls zu verbessern auf 75% von 73%
  • versus
  • (info) Rouned-Enum-Vorhersagen verbessern sich für -3 von 70% auf 78% und für +3-Vorhersagen von 77% auf 81%:

    versus



Round 4: Technische Indikatorenoptimierungen in ShareHolder

Zwischenstand 14.08.2018

Kernaussagen:

  • Binäre Kursvorhersagen sind mit einem DRM mit 72% (28% Fehlerquote) möglich!

  • Mit DRM-Modellen sind bereits 26% exakte Rounded-Enum-Vorhersagen in der Validierung möglich auf -5 bis 5 exakte Einstufungen d.h. -5% als Kursvorhersage wurde korrekt 888x in den Validierungsdaten vorhergesagt und hat damit eine Vorhersagequalität von 52%. -4% allerdings nur von 7%! Achtung: Absolute Kursprognosen >5% werden auf 5% angenommen, was diese statistische Verschiebung auch erklärt. Dennoch kann so gezielt nach Prognosen auf mind. 5% gesucht werden, um Chancen am Markt wahrzunehmen!

  • Die Optimierung der Indikatorenparameter bringen deutliche Ergebnisse (+6% Trefferquote Rounded-Enum, +3% Trefferquote Binär)
  • DRF-Modelle sind für Quick-Checks durch die schnelle Berechnung gut geeignet. Die GBM-Modelle sollten final verwendet werden!
  • Neuronale Netze konnten wiederholt nicht auf eine hinreichende Prognosequalität trainiert werden. Sie bleiben vorerst außen vor.

Achtung folgende Anpassungen wurden vorgenommen:

  • Indikatoreneinstellungen in Shareholder erstmal optimiert
  • Abstand des Kurses zu den gleitenden Durchschnitten (13, 25, 49, 100) einbezogen
  • Zonenwerte werden nur noch als Einzelwert betrachtet mit dem Wertebereich 1..3 und dem Sonderfall 0 (kein Wert)
  • Rounded-Enums sind nun auf -5 ... 5 ausgelegt, da dies für das Trading ausreichend erscheint.

Modell-ID
ZeitbedarfIgnored ColumnsnTreesmax_depthResponse-ColumnErgebnis Validation MetricsErkenntnisse
1DRF-Net10-60nTrees-15-maxDepth-Rounded-Enum0min:52s
  • Date
  • Forecast[5d].MA[1d].ts,
  • Forecast[5d].MA[1d].normalized[-1.00-1.00].ts,
  • Forecast[5d].MA[1d].Rounded.ts,
  • Forecast[5d].MA[1d].Binaer.ts
6015Rounded.Enum
(5 Tage Kursrognose)

0.77 Validation-Error

These: Indikatorenoptimierungen bringen weitere Optimierungen und verbessern die Prognosequalität.

Die Werte konnten gesteigert werden für ein DRF-Netz mit 60|15|Allen Werte von 0.83 auf 0.77 d.h. um -6% Fehlerquote. Dies ist sehr gut, da die Optimierungen hier noch nicht abgeschlossen sind.

2DRM-Net10-60nTrees-15-maxDepth-Rounded-Enum5min:33
  • Date
  • Forecast[5d].MA[1d].ts,
  • Forecast[5d].MA[1d].normalized[-1.00-1.00].ts,
  • Forecast[5d].MA[1d].Rounded.ts,
  • Forecast[5d].MA[1d].Binaer.ts
6015Rounded.Enum
(5 Tage Kursrognose)

0.74 Validation-Error

These: Indikatorenoptimierungen bringen weitere Optimierungen und verbessern die Prognosequalität. Das GBM kann noch etwas mehr herausholen als die DRF-Modelle

Die Prognosewerten können tatsächlich nochmals von 77% Fehlerquote auf 74% (-3%) reduziert werden.

Signalgenerierungen haben nun eine ausreichende Relevanz, so dass diese bereits in den vorderen Auswertungsreihen erscheinen (ForceIndex, TRWinkel). Die Moving-Average-(100d)-Analyse scheint ebenfalls mit einzugehen!


Die Berechnungszeit ist mit 5min 5x so hoch wie die des DRF-Modells!

3DRM-Net10-60nTrees-15-maxDepth-Bin1min:51s
  • Date
  • Forecast[5d].MA[1d].ts,
  • Forecast[5d].MA[1d].normalized[-1.00-1.00].ts,
  • Forecast[5d].MA[1d].Rounded.ts,
  • Forecast[5d].MA[1d].Rounded-Enum.ts
6015

Binär

(5 Tage Kursprognose)

0.2784 Validation-Error

These: Für binäre Aussagen sind weitere Verbesserungen analog den Rounded-Enum-Vorhersagen möglich.

Die Prognosewerten können tatsächlich auf ca. 72% Trefferquote (von 70%) gesteigert werden.

Signalgenerierungen haben nun eine ausreichende Relevanz, so dass diese bereits in den vorderen Auswertungsreihen erscheinen (WilderVol, GDUmsatz, RAVI, PVT). Die Moving-Average-(100d)-Analyse geht ebenfalls mit ein!


Die Berechnungszeit ist mit 5min 5x so hoch wie die des DRF-Modells!

4Deep-Learning-Net102min
  • Date
  • Forecast[5d].MA[1d].ts,
  • Forecast[5d].MA[1d].normalized[-1.00-1.00].ts,
  • Forecast[5d].MA[1d].Rounded.ts,
  • Forecast[5d].MA[1d].Rounded-Enum.ts
50 Epochen

hidden
200,200

Binär

(5 Tage Kursprognose)

0.52 Validation-Error

These: Erneuter Anlauf mit Neuronalen Netzen

Leider bringen auch die erneuten Durchläufe keine Erfolge mit diesem konkreten Setup. Eine Fehlerquote von 52% für einfache Binäraussagen ist nicht wirklich verwendbar! Neuronale Netze bleiben daher vorerst außen vor in den weiteren Betrachtungen!




Round 3: Gradient Boost Machines - Optimierung nach max-depth, nTrees und Response-Columns sowie Ignored-Columns

Zwischenstand: 13.08.2018

Kernaussagen:

  • GBM kann bei binären Modellen eine Trefferquote bis 70% erreichen. Bei Rounded-Enum sind exakte Treffer von 17% möglich (-10..10).
  • GBM hat etwas längere Berechnungszeiten, ist aber dem DRF-Modellen überlegen (70% versus 65%)
  • 60nTrees und 15depth sind optimal für das Modell-Training (DRF und GBM)
  • Für einfache Validierungen kann auf StockPrice, Zones und Kauf/Verkaufs-Signale verzichtet werden. Für Produktionsmodelle sollten diese einbezogen werden, da dies bis zu +2% bei binären Modellen ausmachen in der Trefferquote.
  • Die Optimierung der Indikatorenparameter ist zwingend weiter notwendig

Modell-IDZeitbedarfIgnored ColumnsnTreesmax_depthResponse-ColumnErgebnis Validation MetricsErkenntnisse
1GBM-60ntrees-15depth-without-Zones-without-Kauf-Verkauf-.Rounded-Enum

04min:15s

  • Date
  • Forecasts
  • Zones
  • Kauf/Verkauf
6015

Rounded-Enum

(5 Tage Kursrognose)

0.84 Validation-Error


These: Wenn Kauf/Verkauf und Zones herausgenommen wird, wird das GBM-Modell eine Reaktion zeigen.

Die Klassifikation ist mit 84% Fehlerquote erstaunlich ähnlich zu den vorherigen Modellen, wenn Kauf/Verkauf und Zonen-Werte herausgenommen wurden. Die Variablen haben zum jeztigen Zeitpunkt daher noch nicht die Bedeutung oder geschickte Wertbelegung oder sind wirklich irrrelevant.

2GBM-60ntrees-15depth-with-Zones-Kauf-Verkauf-.Rounded-Enum31min:29s
  • Date
  • Forecasts
6025

Rounded-Enum

(5 Tage Kursrognose)

0.83 Validation-Error-Date-Rate und 0 Training?

These: Die Erhöhung der Entscheidungsbaumtiefe verbessert auch in GBM-Modellen die Prognose-Qualität nur unwesentlich.

Auch das GBM kann mit einer Erhöhung der Baumtiefe keine wesentlichen Verbesserungen erreichen. In Produktions-Umgebungen bleibt die Erhöhung aber eine finaler Optimierungsschritt.

Das GBM-Modell ist dem DRF-Modell hier nicht überlegen, benötigt aber deutlich mehr Zeit mit 25-depth mit 31min versus 5min.

3GBM-60ntrees-15depth-without-Zones-without-Kauf-Verkauf-.Binaer1min:02s
  • Date
  • Forecasts
  • Zones
  • Kauf/Verkauf
6015

Binär

(5 Tage Kursrognose)

0.3152 Error Validation (0.27 für -1 und 0.17 für 1)

These: GBM kann algorithmisch dem DRF überlegen sein

GBM ist dem DRF leicht überlegen mit 0.31 zu 0.33

4GBM-60ntrees-15depth-without-Zones-without-Kauf-Verkauf-+Stockprice-Binaer1min:02
  • Date
  • Forecasts
  • Zones
  • Kauf/Verkauf
  • + StockPrice
6015

Binär

(5 Tage Kursrognose)

0.3169 Error-Validation

StockPrice - 611.36 und 0.0225

These: Höhe des Kurses könnte bei den Entscheidungsbäume feine Differenzierungen erlauben, da hochpreisige Titel oft auch eine andere Marktkapitalisierung haben

Stockprice nicht nennenswert relevant

5
2min:49s
  • Date
  • Forecasts
  • Zones
  • Kauf/Verkauf
  • + StockPrice
6015

Binär

(5 Tage Kursrognose)

0.310

These: Zonenwerte werden algorithmisch zusätzlich berechnet und erlauben eine normierte Betrachtung der Norminalwerte der Indikatoren und können einen Mehrwert darstellebn.

Zones erhöhen die Berechnungsdauer deutlich, minimieren aber das Ergebnis nur minimal und unbedeutend. Die Betrachtung sollte daher umgestellt werden auf nur einen Zonenwert bzw. kann komplett ignoriert werden!

6
1min:39s
  • Date
  • Forecasts
  • Zones
  • +SignaleKauf/Verkauf
6015

Binär

(5 Tage Prognose)

0.3116

These: Konkrete Kauf-und Verkaufssignale helfen die Prognose-Qualität zu erhöhen

Signale sind im Gesamtergebnis in diesem Indikatorensetup aktuell noch nicht so relevant wie erwartet. Sie verbessern das Gesamtsystem aber leicht. Hier ist sowohl eine Optimierung der Indikatoren-Setups notwendig, als auch weitere Experimente.

7Gegencheck03min:20s
  • Date
  • Forecasts
6015

Binär

(5 Tage Kursrognose)

0.3081

These: Umsomehr Informationen und Daten als Variablen gegeben werden, desto mehr können hier feine Differenzierungen vorgenommen werden.

Zusammen mit den Signalen und Zonen kann das Gesamtsystem verbessert werden. Nachfolgend hierzu auch die Variablen-Relevanz, da diese im System in der sortierten Liste doch mehrfach genutzt werden.

Bis auf weiteres sollten diese daher mit exportiert werden! Sie können allerdings als Einzel-Signale verwendet werden.

Das GBM kann hier mit 0.3 gegenüber 0.35 bei binären Entscheidungen eine deutlich bessere Fehlerquote d.h. 70% versus 65% aufweisen.



Round 2: Distributed Random-Forest - Optimiert nach nTrees und max-depth

Zwischenstand: 13.08.2018

Kernaussagen:

  • Für Model-Trainings haben sowohl die nTrees, als auch die Depth eine relevante Bedeutung auf die Berechnungszeit (scheinbar lineares Zeitmodell). Diese ist aber ohnehin im Minutenbereich.
  • Die nTrees können mit einem einmaligen Lauf direkt aus dem Graph heraus optimiert werden. In den Beispielen liegen diese bei 60. In der Defaulteinstellung sind diese 50 von H2o.
  • Die Entscheidungsbaum-Tiefe sollte zwischen 10 und 20 liegen

Modell-IDZeitbedarfIgnored ColumnsnTreesmax_depthResponse-ColumnErgebnis Validation MetricsErkenntnisse
1DRF-Net8-200nTrees-10-maxDepth-without-Zones-Rounded-Enum2min:33s
  • Zones
  • Date
  • Forecasts
20010

Rounded-Enum

(5 Tage Kursrognose)

0.85 Rate

These: Die Anzahl der nTrees bestimmt die Anzahl der Berechnungsläufe. Bis zu einem bestimmten Grenzwert könnte das Netz verbessert werden.

Wie bereits die Deviance-Grafik zeigt ist der Grenzwert bei 60. Eine Erhöhung auf 200nTrees bringt daher tatsächlich keine Verbesserung. Rounded-Enum sind hier einmal als Beispiel verwendet. Die Berechnungszeit erhöht sich von 1:33 auf 2min:33s und ist damit nicht komplett linear.

2DRF-Net8-50nTrees-10-maxDepth-without-Zones-Rounded-Enum0min:38s
  • Zones
  • Date
  • Forecasts
5010

Rounded-Enum

(5 Tage Kursrognose)

0.85 Rate

These: Kurzer Gegencheck mit einem erneuten Lauf sollten die Ursprungswerte für die Rate bestätigen.

50nTrees und 10-max-depth zeigt keine nennenswerte Verschlechterung gegenüber 200-ntrees.

3DRF-Net8-60nTrees-5-maxDepth-without-Zones-Rounded-Enum0min:19s
  • Zones
  • Date
  • Forecasts
605

Rounded-Enum

(5 Tage Kursrognose)

0.86 Rate

These: Eine Verkürzung der Tree-Tiefe von 10 auf 5 erhöht die Generalisierungsfähigkeit.

Mit 5-max-depth verschlechtert sich die Rate tatsächlich nur minimal. Die Berechnungszeit halbiert sich.

4DRF-Net8-60nTrees-15-maxDepth-without-Zones-Rounded-Enum1min:53s
  • Zones
  • Date
  • Forecasts
6015

Rounded-Enum

(5 Tage Kursrognose)

0.83 Rate

These: Leichte Erhöhung der Baumtiefe kann Verbesserungen bringen.

Mit 15-max-depth bringt sichtbare Erfolge und wird weiter betrachtet.

8DRF-Net8-60nTrees-25-maxDepth-with-Zones-Rounded-Enum5min:53
  • Date
  • Forecasts
6025

Rounded-Enum

(5 Tage Kursrognose)

0.822 Validation-Error-Data-Rate

These: Erhöhung der Baumtiefe von 15 auf 25 wird bei der Art der Variablen keinen nennenswerten Vorteil mehr bringen. Gleichzeitig wurden die Zonen herausgenommen.

In der Tat erhöht sich mit 25-Tiefe hauptsächlich die Berechnungszeit. Die exakte Feld-Trefferquote liegt weiterhin nur bei 18%. Die Zonen zeigen keine ausreichende Relevanz zum jetzigen Zeitpunkt.

5DRF-Net8-60nTrees-15-maxDepth-without-Zones-Binaer0min:29s
  • Zones
  • Date
  • Forecasts
6015

Binär

(5 Tage Kursrognose)

0.35 Error-Validate-Data

These: Verwendung der Baumtiefe von 15 könnte optimtal sein. Zonen werden vorerst herausgenommen, da diese scheinbar nicht ausreichend relevant sind (bei Rounded-Enum-Tests).

In der Tat kann mit 60er und 15-depth eine Trefferquote von 65% erreicht werden auf binäre Aussagen! Damit kann man gut weiterarbeiten!

6DRF-Net8-50nTrees-15-maxDepth-without-Zones-Binaer-Minus-CalenderWeek0min:28s
  • Zones
  • Date
  • Forecasts
  • CalendarWeek
6015

Binär

(5 Tage Kursrognose)

0.375 Error-Validate-Data

These: In den vorherigen Trainings wurde immer wieder die Kalenderwoche als sehr relevant eingestuft mit 1er-Gewichtungen. Wenn diese Variable herausgenommen wird, sollte das System nicht komplett instabil werden!

In der Tat bleiben die Vorhersagewerte hoch mit 63% Trefferquote (zuvor 65%). Die Kalenderwoche sollte jedoch betrachtet werden!

7DRF-Net8-60nTrees-15-maxDepth-with-Zones-Binaer1min:13s
  • Date
  • Forecasts
6015

Binär

(5 Tage Kursrognose)

0.33 Error Validate-Data
(0.34 für -1 und 0.13 für 1)

These: Binäre Aussagen können optimiert werden unter Zunahme aller verfügbaren Daten mit einem scheinbar optimalen Modell-Setup von 60-nTrees und 15depth.

In der Tat können die Vorhersagewerte auf 67% Trefferquote (zuvor 65%) gebracht werden, wenn alle Daten verwendet werden (inkl. Zonen).



Round 1: Distributed Random-Forest - Optimierung auf Response  und Ignored Columns

Zwischenstand: 13.08.2018

Kernaussagen:

  • Rounded-Enum sind durch die Matrizen-Validierungen gegenüber Rounded zu bevorzugen
  • Wenn uneingeschränkte Vorhersagen notwendig sind, dann machen die Orginal-Forecast-Werte Sinn
  • Binäre-Vorhersagen sind nutzbar mit >55% .. >80% (je nach Optimierungsgrad)

Modell-IDZeitbedarfIgnored ColumnsnTreesmax_depthResponse-ColumnErgebnis Validation MetricsErkenntnisse
1

"DRF-Net8-100nTrees-10-maxDepth-without-Zones-Rounded"

0:19s
  • Zones
  • Date
  • Forecasts
10010

Rounded

(5 Tage Kursrognose)

16.55 Validate - Deviance

These: Rounded-Kursprognosewerte d.h. gerundete Forecast-Werte für die Kursprognose können verwendet werden

Die Abweichung von 16.55 ist noch sehr hoch. Das Modell ist nicht ausbalanciert. Interessant ist hier, dass die Validierungsdaten leicht besser liegen als die Trainingsdaten. Eine 10er-Tiefe des Entscheidungsbaums ist wahrscheinlich zu klein. Beeindruckend ist die sehr gute Performance von 10s, womit schnelle Validierungen auf die Eingabevariablen-Relevanz möglich sind (Quick-Checks).

2"DRF-Net8-100nTrees-10-maxDepth-without-Zones-Rounded-Enum"1min:33s
  • Zones
  • Date
  • Forecasts
10010

Rounded-Enum

(5 Tage Kursrognose)

0.85 Error-Rate

These: Rounded-Enum-Werte verringern die Prognosemöglichkeit auf exakt -10..10 d.h. 21 möglichen Vorhersagewerten. Dies erleichtert das Interpretieren als auch das Modell-Training.

Durch die Matrizenauswertung bei Enum-Werten ist eine Interpretation leicht möglich. Die Fehlerquote von 85% ist nur auf die exakte Einordnung zu verstehen. Die Richtung wird analog der späteren Binärbetrachtungen mit >75% korrekt vorhergesagt.

3"DRF-Net8-100nTrees-10-maxDepth-without-Zones-Rounded-Normalized"0:26s
  • Zones
  • Date
  • Forecasts
10010

Normalized

(5 Tage Kursrognose)

0.147 Validate - Deviance

These: Normalisierte Vorhersagewerte die hier zwischen -10 und 10 auf -1 und 1 normalisiert werden, bringen keinen Vorteil Gegenüber den Enum-Varianten, könnten aber bei der Berechnung eventl. relevant sein und eventl. die Interpretation erleichtern da immer nur zu -1 und 1 der Zahlenbereich betrachtet werden sollte.

TBD / Bin mir über die Interpretation noch unsicher. Durch die normierte Betrachtung könnte aber praktisch jedes Modell miteinander verglichen werden.

4"DRF-Net8-100nTrees-10-maxDepth-without-Zones-Rounded-Origin"0:21s
  • Zones
  • Date
  • Forecasts
10010

Origin-Forecasts

(5 Tage Kursrognose)

16.48 Validate Deviance

These: Wenn Zahlwerte vorhergesagt werden sollen, kann dies direkt auf die Orginalwerte erfolgen ohne Manipulation.

Die Deviance-Werte sind mit 16.48 wie zu erwarten ähnlich den Rounded-Werten (16.55). Hier sollten weitere Tests gemacht werden, ob hier nicht direkt die Origin-Werte bei exakter "offener" Prognose verwendet werden sollten.

5"DRF-Net8-100nTrees-10-maxDepth-without-Zones-Binaer"0:16s
  • Zones
  • Date
  • Forecasts
10010

Binär

(5 Tage Kursrognose)

0.45 Error-Rate Validation-Data (0.128 -1, 0.65 -1 und 0.997 - 0)

These: Binärentscheidungen (1-steigend, -1-fallen) sind durch die Art der Entscheidung treffsicherer durch ein Modell abzubilden. Es bleiben dadurch natürlich nur einfache Entscheidungen (long oder short) übrig. Es sollte damit eine >>50% Trefferquote notwendig sein.

Die Trefferquote liegt mit 55% tatsächlich über den Soll-Wert. Hier sind weitere Optimierungen sinnvoll. Für Binäre-Optionsschein-Trades ist es bereits ein interessanter Ansatz.



  • No labels