L'apprendimento automatico nel trading: teoria, modelli, pratica e algo-trading - pagina 2669

 
Maxim Dmitrievsky #:

Forse sono confuso su qualcosa... abbiamo parlato di ottimizzazione di montecarloa (come ricerca di un TS), e qui stiamo parlando di valutazione dei rischi di una strategia pronta. Per essere più precisi, non si tratta nemmeno di rischi, ma di come determinare quando il TS ha smesso di funzionare.

Sì, il link che si trova lì riguarda la convalida di TS sovradimensionati. Probabilmente non ha senso in questo modo. È lecito chiedersi se ciò significhi che non ha senso determinare il drawdown ammissibile.

Beh, Monte Carlo offre molte possibilità e può essere utilizzato in modi diversi.

Nel tuo link credo che si utilizzi il rimescolamento casuale delle operazioni (shuffle) in modo che cambi solo il drawdown. A mio avviso, non si tratta di una definizione di drawdown "vero", ma piuttosto di stabilire se il drawdown effettivo è "normale" o meno. Se il drawdown è troppo grande o troppo piccolo (cade nella coda sinistra o destra dell'istogramma modellato), può indicare una dipendenza tra operazioni vicine.

 

Ho scritto un programma interattivo su R per poter aggiungere combinazioni di sinusoidi a mano.

Forse a qualcuno piacerebbe curiosare)))

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)
 
 
mytarmailS #:

Ho scritto un programma interattivo in R per aggiungere combinazioni di sinusoidi a mano

forse qualcuno vuole curiosare)))

cosa fare con esso

Prova questi segni

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

prezzo - logaritmo della MA(i) * deviazione standard mobile(i) * coefficiente

i - periodo di mediazione

150 è il coefficiente, da 50 a 250 provatelo. Più grande è, più la serie è stazionaria.

e per diverse finestre scorrevoli con periodo i (diversi segni di questo tipo)
 
Maxim Dmitrievsky #:

e cosa fare al riguardo.

Si tratta di essere in grado di spiegare alla macchina ciò che non si riesce a spiegare a se stessi....

Non si può spiegare a se stessi, figuriamoci a una macchina, ma quando si vede un buon controllo, si dice: "Oh, ecco!".

Quindi questa curva di controllo può essere ricavata dalla somma di un'onda sinusoidale...

Karoch è da fare con le mani obiettivo, che non si può spiegare a te stesso, e quindi programmato ho trovato questa soluzione)

Maxim Dmitrievsky #:

provare questi segni

prezzo - logaritmo di MA(i) * deviazione standard mobile(i) * coefficiente

i - periodo di mediazione

150 è il coefficiente, da 50 a 250 provatelo. Più grande è, più la serie è stazionaria.

e per diverse finestre scorrevoli con periodo i (diversi segni di questo tipo).

Come avete misurato la stazionarietà?

È necessario confrontarla

Maxim Dmitrievsky #:

Oh, questo è il tuo preferito ))

 
mytarmailS #:

Beh, è per poter spiegare alla macchina quello che non si riesce a spiegare a se stessi...

Non è possibile spiegarlo a se stessi, figuriamoci alla macchina, ma quando si vede un buon controllo, si dice sicuramente "oh, ecco!".

La curva di controllo può essere ottenuta dalla somma di onde sinusoidali...

Èper fare i target che non si possono spiegare a se stessi e quindi non si possono programmare . Ho trovato questa soluzione).

E come avete misurato le statistiche?

Devi fare un confronto.

Sì, è così.

Ho misurato la stazionarietà a occhio. Più il coefficiente è piccolo, più il grafico assomiglia a un grafico normale, più il grafico assomiglia a un grafico a ritorni.
 
mytarmailS #:
Conclusione?

La correlazione, se di correlazione si tratta, può essere utilizzata come misura della forza dei fattori di influenza. Anche forza non è un termine molto appropriato, ovviamente. Ma non me ne viene in mente uno migliore.

 
Maxim Dmitrievsky #:
Ho misurato la stazionarietà a occhio. Più il coefficiente è piccolo, più il grafico assomiglia a un grafico normale, più è grande, più assomiglia a un grafico a ritorni.

Si tratta di una finestra scorrevole?

Se sì, quanto è grande?

 
mytarmailS #:

È una finestra scorrevole?

Se sì, di che dimensioni è?

Sì, di qualsiasi dimensione

Da 10 a 200.

Con incrementi di 10, si ottengono ad esempio 20 segni.
 
Maxim Dmitrievsky #:

sì, chiunque

da 10 a 200.

Con incrementi di 10, si ottengono 20 segni, ad esempio.


È questo l'aspetto che dovrebbe avere?


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

dove " P[ii ] " è il prezzo degli ultimi 20 prezzi

e " P[i] " è il prezzo attuale