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

 
Maxim Dmitrievsky #:

Vielleicht bin ich verwirrt über etwas ... wir diskutiert montecarloa Optimierung (als eine Suche nach einem TS), und hier sind wir über die Risikobewertung eines fertigen Strategie sprechen. Um genauer zu sein, nicht einmal Risiken, sondern wie man feststellt, wann der TS nicht mehr funktioniert.

Ja, in dem Link dort geht es um die Validierung von überangepassten TS. Wahrscheinlich macht es so keinen Sinn. Ob es bedeutet, dass es keinen Sinn macht, den zulässigen Drawdown zu bestimmen, ist auch eine Frage.

Nun, Monte Carlo bietet viele Möglichkeiten, und es kann auf unterschiedliche Weise eingesetzt werden.

In Ihrem Link wird meines Erachtens eine zufällige Mischung von Geschäften (Shuffle) verwendet, so dass sich nur der Drawdown ändert. Nach meinem Verständnis ist dies keine Definition des "wahren" Drawdowns, sondern eher die Frage, ob der tatsächliche Drawdown "normal" ist oder nicht. Wenn der Drawdown zu groß oder zu klein ist (in den linken oder rechten Bereich des modellierten Histogramms fällt), kann dies auf eine Abhängigkeit zwischen benachbarten Geschäften hindeuten.

 

Ich habe ein interaktives Programm in R geschrieben, um Kombinationen von Sinuskurven von Hand hinzufügen zu können.

Vielleicht hat jemand Lust, sich damit zu beschäftigen)))

my.sin <- function(vec,a,f,p)  a*sin(f*vec+p)

library(shiny)
ui <- fluidPage(
  sidebarPanel(
  sliderInput("am1", "amplitude1", -5, 5,value = 1, step = 0.1),
  sliderInput("frq1", "frequency1", 0, 5,value = 0.2, step = 0.005),
  sliderInput("pha1", "phase1", -10, 10,value = 0.2, step = 0.5),
  
  sliderInput("am2", "amplitude2", -5, 5,value = 1, step = 0.1),
  sliderInput("frq2", "frequency2", 0, 5,value = 0.2, step = 0.005),
  sliderInput("pha2", "phase2", -10, 10,value = 0.2, step = 0.5),
  ),
  mainPanel(  plotOutput("plot1") )
)

server <- function(input, output) {
  
  output$plot1 <- renderPlot({
    s1 <- my.sin(vec = 1:100,input$am1,input$frq1,input$pha1)
    s2 <- my.sin(vec = 1:100,input$am2,input$frq2,input$pha2)
    
    par(mar=(c(2,2,2,2)),mfrow=c(2,1))
    matplot(cbind(s1,s2),t="l",col=c(2,4),lty=1)
    plot(s1+s2,t="l")
    })
}
shinyApp(ui, server)
 
Nicht für viele...
https://youtu.be/rITSSAI5YsM
 
mytarmailS #:

Ich habe ein interaktives Programm in R geschrieben, um Kombinationen von Sinuskurven von Hand hinzuzufügen

vielleicht hat jemand Lust, sich damit zu beschäftigen)))

was damit zu tun ist

Versuchen Sie diese Zeichen

for i in MA_PERIODS:
        pFixed[str(count)] = price - price.rolling(i).mean().apply(np.log) * price.rolling(i).std() * 150
        count += 1

Preis - Logarithmus von MA(i) * gleitende Standardabweichung(i) * Koeffizient

i - Mittelungszeitraum

150 ist der Koeffizient, von 50 bis 250 versuchen Sie es. Je größer, desto stationärer ist die Reihe.

und für mehrere gleitende Fenster mit Periode i (mehrere solcher Zeichen)
 
Maxim Dmitrievsky #:

und was man dagegen tun kann.

Es geht darum, der Maschine zu erklären, was man sich selbst nicht erklären kann....

Sie können es sich selbst nicht erklären, geschweige denn einer Maschine, aber wenn Sie eine gute Steuerung sehen, werden Sie sagen: "Oh, das ist es!".

Diese Steuerkurve kann also aus der Summe einer Sinuswelle gebildet werden...

Karoch ist es mit Ihren Händen Ziel zu tun, die Sie nicht erklären können, um sich selbst, und deshalb programmiert fand ich diese Lösung)

Maxim Dmitrievsky #:

versuchen Sie diese Zeichen

Preis - Logarithmus von MA(i) * gleitende Standardabweichung(i) * Koeffizient

i - Mittelungszeitraum

150 ist der Koeffizient, von 50 bis 250 versuchen Sie es. Je größer, desto stationärer ist die Reihe.

und für mehrere gleitende Fenster mit Periode i (mehrere solcher Zeichen).

Wie haben Sie die Stationarität gemessen?

Du musst sie vergleichen

Maxim Dmitrievsky #:

Oh, das ist dein Favorit ))

ja

 
mytarmailS #:

Nun, es geht darum, dem Auto erklären zu können, was man sich selbst nicht erklären kann...

Zum Beispiel, wie man die Periode des Blinkers richtig steuert... Man kann es sich selbst nicht erklären, geschweige denn der Maschine, aber wenn man eine gute Steuerung sieht, wird man definitiv sagen "oh, das ist es!".

Diese Kontrollkurve kann also aus der Summe von Sinuswellen gebildet werden...

Es geht darum, Zielkurven zu erstellen, die man sich selbst nicht erklären kann, und deshalb kann man sieauch nicht programmieren . Ich habe diese Lösung gefunden).

Und wie hast du die Werte gemessen?

Man muss sie vergleichen.

Ja, ja.

Ich habe die Stationarität nach Augenmaß gemessen. Je kleiner der Koeffizient ist, desto mehr ähnelt das Diagramm einem normalen Diagramm, je größer das Diagramm ist, desto mehr ähnelt es einem Retournierdiagramm.
 
mytarmailS #:
Schlussfolgerung?

Die Korrelation, sofern es sich um eine Korrelation handelt, kann als Maß für die Stärke der beeinflussenden Faktoren verwendet werden. Kraft ist natürlich auch hier kein besonders geeigneter Begriff. Aber ein besserer fällt mir nicht ein.

 
Maxim Dmitrievsky #:
Ich habe die Stationarität nach Augenmaß gemessen. Je kleiner der Koeffizient ist, desto mehr sieht das Diagramm wie ein normales Diagramm aus, je größer er ist, desto mehr sieht es wie ein retourniertes Diagramm aus.

Ist dies ein gleitendes Fenster?

Wenn ja, wie groß ist es?

 
mytarmailS #:

Ist das ein Schiebefenster?

Wenn ja, welche Größe hat es?

Ja, jede Größe

von 10 bis 200.

In 10er-Schritten erhalten Sie z. B. 20 Zeichen.
 
Maxim Dmitrievsky #:

ja, jeder

von 10 bis 200.

In 10er-Schritten erhalten Sie zum Beispiel 20 Zeichen.


soll das so aussehen?


P[i] - log( Mittelwert(P[ii] ) ) * sd( P[ii] )*150

wobei " P[ii ] " die letzten 20 Preise sind

und " P[i] " der aktuelle Wert