Aprendizado de máquina no trading: teoria, prática, negociação e não só - página 2669

 
Maxim Dmitrievsky #:

Talvez eu esteja confuso com alguma coisa... discutimos a otimização da montecarloa (como uma busca por uma TS) e aqui estamos falando sobre a avaliação de risco de uma estratégia pronta. Para ser mais preciso, nem mesmo riscos, mas como determinar quando a TS parou de funcionar.

Sim, o link ali é sobre a validação de TS com ajuste excessivo. Provavelmente não faz sentido dessa forma. Se isso significa que não faz sentido determinar o rebaixamento permitido, também é uma questão.

Bem, o Monte Carlo oferece muitas possibilidades e pode ser usado de diferentes maneiras.

No seu link, acho que eles usam o embaralhamento aleatório de negociações (shuffle) para que apenas o drawdown mude. No meu entendimento, essa não é uma definição de drawdown "verdadeiro", mas sim se o drawdown real é "normal" ou não. Se o drawdown for muito grande ou muito pequeno (cair na cauda esquerda ou direita do histograma modelado), isso pode indicar uma dependência entre negociações vizinhas.

 

Escrevi um programa interativo no R para poder adicionar combinações de senoides manualmente.

Talvez alguém queira dar uma olhada)))

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)
 
Não para muitos...
https://youtu.be/rITSSAI5YsM
 
mytarmailS #:

Escrevi um programa interativo em R para adicionar combinações de senoides manualmente

talvez alguém queira dar uma olhada)))

o que fazer com ele

Experimente estes sinais

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

preço - logaritmo de MA(i) * desvio padrão móvel(i) * coeficiente

i - período de cálculo da média

150 é o coeficiente, de 50 a 250 tente. Quanto maior, mais estacionária é a série.

e para várias janelas deslizantes com período i (vários sinais desse tipo)
 
Maxim Dmitrievsky #:

e o que fazer a respeito.

Bem, isso é ser capaz de explicar à máquina o que você não consegue explicar a si mesmo....

Por exemplo, como controlar o período de um indicador? Você não consegue explicar isso para si mesmo, muito menos para uma máquina, mas quando vê um bom controle, diz "ah, é isso!".

Portanto, essa curva de controle pode ser feita a partir da soma de uma onda senoidal...

Karoch tem a ver com o alvo de suas mãos, que você não consegue explicar para si mesmo e, portanto, programado , encontrei essa solução)

Maxim Dmitrievsky #:

tente estes sinais

preço - logaritmo de MA(i) * desvio padrão móvel(i) * coeficiente

i - período de cálculo da média

150 é o coeficiente, de 50 a 250 tente. Quanto maior, mais estacionária é a série.

e para várias janelas deslizantes com período i (vários desses sinais).

Como você mediu a estacionariedade?

Você precisa compará-la

Maxim Dmitrievsky #:

Ah, esse é o seu favorito ))

sim

 
mytarmailS #:

Bem, é para poder explicar ao carro o que você não consegue explicar a si mesmo...

Por exemplo, como controlar adequadamente o período do indicador? Você não consegue explicar isso para si mesmo, muito menos para a máquina, mas quando vir um bom controle, com certeza dirá "ah, é isso!".

Portanto, essa curva de controle pode ser feita a partir da soma de ondas senoidais...

Épara criar controles-alvo que você não consegue explicar para si mesmo e, portanto, não consegue programá-los . Encontrei essa solução).

E como você mediu as estatísticas?

Você precisa compará-las.

Sim.

Eu medi a estacionariedade a olho nu. Quanto menor o coeficiente, mais o gráfico se assemelha a um gráfico normal, e quanto maior, mais se assemelha a um gráfico retourny.
 
mytarmailS #:
Conclusão?

A correlação, se for uma correlação, pode ser usada como uma medida da força dos fatores de influência. Força também não é um termo muito apropriado aqui, é claro. Mas não consigo pensar em um termo melhor.

 
Maxim Dmitrievsky #:
Medi a estacionariedade a olho nu. Quanto menor o coeficiente, mais o gráfico se parece com um gráfico normal, e quanto maior ele for, mais ele se parece com um gráfico retourny

Essa é uma janela deslizante?

Em caso afirmativo, qual é o tamanho dela?

 
mytarmailS #:

Essa é uma janela deslizante?

Se sim, qual é o tamanho dela?

Sim, qualquer tamanho

10 a 200.

Em incrementos de 10, você obtém 20 sinais, por exemplo.
 
Maxim Dmitrievsky #:

sim, qualquer um

de 10 a 200.

Em incrementos de 10, você recebe 20 sinais, por exemplo.


é assim que deve ser?


P[i] - log( média(P[ii] ) ) * sd( P[ii] )*150

em que " P[ii ] " são os últimos 20 preços

e " P[i] " é o preço atual
Razão: