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

 
Maxim Dmitrievsky #:
Irgendwie kreativ, man weiß es nicht im Voraus.
Die Trades eines profitablen TS sollten ein Muster aufweisen. Wenn sie nur Preis/Zeit verwendet, scheint eine Auswahl/Annäherung möglich zu sein.
Alles kann approximiert werden, und TS ist eine klare Logik im Code, ohne Approximationen
 
mytarmailS #:
Alles kann approximiert werden, aber TC ist eine klare Logik im Code, ohne Approximationen.
Wir kennen die genaue Logik nicht, wenn ich es mir recht überlege, ist es keine Dekompilierung. Damit bleibt unscharf: "nach dem Bild und Gleichnis". Abibas-Trainer
 
Maxim Dmitrievsky #:
Wir kennen die genaue Logik nicht, wissen Sie, es ist keine Dekompilierung. Damit bleibt unscharf: "nach dem Bild und Gleichnis". Abibas-Trainer

Wenn Sie also die Strategie der Kreuzung zweier Autos nehmen und dem Modellierer kein direktes Zeichen der Kreuzung geben.

Es ist ziemlich gut, ich bin sogar überrascht, aber es ist ein primitiver Algorithmus...

blau für das ursprüngliche Signal, rot für das Präfix.

Reference
Prediction   0   1
         0 106   4
         1   1  89
                                          
               Accuracy : 0.975           
                 95% CI : (0.9426, 0.9918)
    No Information Rate : 0.535           
    P-Value [Acc > NIR] : <2 e-16          
                                          
                  Kappa : 0.9496     


Und wenn man es nicht normalisiert...

Prediction   0   1
         0  96   0
         1   0 104
                                     
               Accuracy : 1          
                 95% CI : (0.9817, 1)
    No Information Rate : 0.52       
    P-Value [Acc > NIR] : < 2.2 e-16  
                                     
                  Kappa : 1          
x <- cumsum(rnorm(10000))

m5 <- TTR::SMA(x,5)
m15 <- TTR::SMA(x,15)

X <- matrix(ncol = 20,nrow = length(x))

for(i in 20:length(x)){
  ii <- (i-19):i
  X[i,] <- m5[ii] - m15[ii]
}


Yn <- (m5>m15)*1
Y <-  as.factor(Yn)

tr <- 50:9800
ts <- 9801:10000

library(randomForest)
rf <- randomForest(Y[tr]~., X[tr,])
pr <- predict(rf ,X[c(tr,ts),])

prN <- as.numeric(as.character(pr))

par(mar=c(2,2,0,0))
layout(1:3, heights = c(10,1,1)) #  Heights of the two rows
      
plot(tail(x,200),t="l",col=8)
lines(tail(m5[c(tr,ts)],200),col=2,lwd=1)
lines(tail(m15[c(tr,ts)],200),col=4,lwd=1)
plot(tail(Yn,200),t="h",col=4,lwd=2)
plot(tail(prN,200),t="h",col=2,lwd=2)


caret::confusionMatrix(predict(rf ,X[ts,]) , Y[ts])
 
mytarmailS #:

Wenn man also die Strategie der Kreuzung zweier Autos nimmt und dem Modellierer kein direktes Zeichen der Kreuzung gibt.

Es ist ziemlich gut, ich bin sogar überrascht, aber es ist ein primitiver Algorithmus...

blau für das ursprüngliche Signal, rot für das Präfix.


Und wenn man es nicht normalisiert...

Es ist also in Ordnung, ich muss herausfinden, wie ich die Berichte analysieren und versuchen kann, einen einfachen TC zu erstellen, wie Ihre MAs, ja. Ich bin im Moment etwas beschäftigt, aber es ist ein interessantes Thema.
 
mytarmailS #:

Wenn man also die Strategie der Kreuzung zweier Autos nimmt und dem Modellierer kein direktes Zeichen der Kreuzung gibt.

Es ist ziemlich gut, ich bin sogar überrascht, aber es ist ein primitiver Algorithmus...

blau für das ursprüngliche Signal, rot für das Präfix.


Und wenn man es nicht normalisiert...

Sie können nicht im Voraus wissen, welchen MA Expert Advisor er verwendet und welche Zeiträume er hat. Oder es werden andere Indikatoren verwendet.
Versuchen Sie, das Modell nicht auf den MA (X) zu trainieren, sondern auf rohen Kursen (x), z. B. auf 100 Balken (Sie kennen die Perioden des MA aus der Blackbox nicht, Sie können nur raten, wie viele Balken verwendet wurden).

Nun, das Y ist das von Ihrem Prüfer vorgegebene.

 
elibrarius #:

Sie können nicht im Voraus wissen, was der Experte MA verwendet und welche Zeiträume. Oder andere verwendete Indikatoren.

Sagen Sie mir nicht, was ich tun kann und was nicht, sondern sagen Sie: "Ich weiß nicht, wie Sie es tun können". Das ist ehrlicher.

 
elibrarius #:


Versuchen Sie, das Modell auf Basis von Rohdaten (x) statt auf Basis von MAhs (X) zu trainieren.

roh ist auch nicht schlecht.

 Reference
Prediction   0   1
         0  72   2
         1   5 121
                                          
               Accuracy : 0.965           
                 95% CI : (0.9292, 0.9858)
    No Information Rate : 0.615           
    P-Value [Acc > NIR] : <2 e-16          
                                          
                  Kappa : 0.9255     
 
mytarmailS #:

auch im Rohzustand nicht schlecht

Das ist viel interessanter...
 
mytarmailS #:

Auch die rohen sind nicht schlecht.

Braucht es wirklich MO?

 

Meine Ergebnisse. Wer es entziffern kann, gut gemacht, ich habe vergessen, was was ist.

Ein weiteres Testbeispiel, Kreuzung von ma und Preis. Die Eingabe ist die Inkrementierung mehrerer letzter Bars, die Ausgabe ist die Handelsrichtung (1-bay, 0-sell). Parameter des zugrunde liegenden Netzes: 1 Dichte Schicht mit tanh. 1 Epoche, Batch=32. win - Anzahl der Eingaben, per - MA-Periode, total - Umfang der Trainingsstichprobe. Das Netz wird in einer Epoche trainiert, so dass es während des Trainings keine wiederholten Proben gibt. Die Validierung basiert auf der vertikal umgekehrten Trainingsstichprobe (*-1). Der Test wird an einer separaten, unabhängigen Stichprobe durchgeführt. Sie sind alle gleich groß. Bei per<=win zeigt das Netz eine hohe Genauigkeit, die erforderlich war, um zu beweisen, dass das Netz in der Lage ist, nach versteckten Mustern zu suchen.

Bei kleinen Netzen (<1000 Neuronen) ist die Berechnung auf dem Prozessor schneller als auf dem Grafikprozessor. Bei batch=8192 dauert die Berechnung genauso lange. Dieser Testfall mit 1 und 100 versteckten Neuronen wird in der gleichen Zeit gerechnet. Die Ergebnisse für die doppelte und einfache Genauigkeit der CPU sind vergleichbar. Die verschiedenen Aktivierungsarten zählen etwa gleich lange und ergaben vergleichbare Ergebnisse. Die Gewinngröße hat keinen großen Einfluss auf die Zeit. total=10^6 bei batch=1 dauert 18 Minuten. Die Beziehung zwischen Charge und Zeit ist linear.

Genauigkeit des Stichprobenumfangs. batch=1 , per=100, win=100. Erste Spalte - Stichprobenumfang (insgesamt), 2 - Zeit (min. Sek.), 3 - Genauigkeit beim Test, 4 - Genauigkeit beim Training, 5 - Genauigkeit bei der Validierung.
1м 18.49 99. 98,7 99.
100k 1,54 98,5 97,3 98,6
10k 0,11 97,8 88,4 98,1
1k 0,01 71,2 62,1 66,5

Hinzufügen von Rauschen zur Eingabe. total=10^6, batch=32 , per=10, win=10. Erste Spalte - Rauschanteil der Eingabe, 2 - Genauigkeit bei der Prüfung, 3 - Genauigkeit bei der Verfolgung, 4 - Genauigkeit bei der Validierung.

0,001 99,8 98,1 99,8
0,01 99,6 98,2 99,6
0,1 96,8 96,1 96,8
1 74,9 74,2 75,1

Anzahl der Eingaben und des Fehlers. total=10^6, batch=32, per=100. accuracy on test, accuracy on train, accuracy on validation.

win=150: 99,5 98,7 99,5

Sieg=100: 99,6 98,8 99,6

win=90: 98,9 98,2 98,9

win=80: 97,2 96,6 97,2

win=70: 94,8 94,3 94,8

win=60: 92,0 91,6 91,9

win=50: 88,6 88,2 88,6

win=20: 74,7 74,4 74,7

Diagramme der Gewichte. 1 Eingangsneuron. ma(100) 100 Eingänge links, ma(50) 100 Eingänge rechts