L'apprentissage automatique dans la négociation : théorie, modèles, pratique et algo-trading - page 2669

 
Maxim Dmitrievsky #:

Nous avons discuté de l'optimisation du Montecarloa (en tant que recherche d'un TS), et nous parlons ici de l'évaluation des risques d'une stratégie prête à l'emploi. Pour être plus précis, il ne s'agit même pas de risques, mais de la manière de déterminer quand le TS a cessé de fonctionner.

Oui, le lien ici concerne la validation des TS surajoutés. Cela n'a probablement pas de sens de cette manière. La question se pose également de savoir si cela signifie qu'il n'y a pas de sens à déterminer l'abaissement autorisé.

Monte Carlo offre de nombreuses possibilités et peut être utilisé de différentes manières.

Dans votre lien, je pense qu'ils utilisent un mélange aléatoire de transactions (shuffle) de sorte que seul le drawdown change. D'après ce que j'ai compris, il ne s'agit pas d'une définition du "vrai" drawdown, mais plutôt de savoir si le drawdown réel est "normal" ou non. Si le drawdown est trop important ou trop faible (il se situe dans la queue gauche ou droite de l'histogramme modélisé), cela peut indiquer une dépendance entre les transactions voisines.

 

J'ai écrit un programme interactif sur R pour pouvoir ajouter des combinaisons de sinusoïdes à la main.

Peut-être que quelqu'un aimerait y jeter un coup d'oeil)))

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)
 
Pas pour beaucoup...
https://youtu.be/rITSSAI5YsM
 
mytarmailS #:

J'ai écrit un programme interactif en R pour ajouter des combinaisons de sinusoïdes à la main

peut-être que quelqu'un voudra y jeter un coup d'œil)))

ce qu'il faut en faire

Essayez ces signes

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

prix - logarithme de MA(i) * écart-type mobile(i) * coefficient

i - période de calcul de la moyenne

150 est le coefficient, de 50 à 250 essayez-le. Plus il est élevé, plus la série est stationnaire.

et pour plusieurs fenêtres glissantes de période i (plusieurs signes de ce type)
 
Maxim Dmitrievsky #:

et ce qu'il faut faire.

Il s'agit de pouvoir expliquer à la machine ce que l'on ne peut pas s'expliquer à soi-même. ....

On ne peut pas se l'expliquer à soi-même, encore moins à une machine, mais quand on voit un bon contrôle, on se dit "oh, c'est ça".

Donc cette courbe de contrôle peut être faite à partir de la somme d'une onde sinusoïdale...

Karoch c'est à faire avec tes mains cible, que tu ne peux pas t'expliquer, et donc programmé j'ai trouvé cette solution)

Maxim Dmitrievsky #:

essayez ces signes

prix - logarithme du MA(i) * écart type mobile(i) * coefficient

i - période de calcul de la moyenne

150 est le coefficient, de 50 à 250 essayez-le. Plus il est grand, plus la série est stationnaire.

et pour plusieurs fenêtres glissantes de période i (plusieurs signes de ce type).

Comment avez-vous mesuré la stationnarité ?

Il faut comparer

Maxim Dmitrievsky #:

Oh, c'est votre préféré ))

oui

 
mytarmailS #:

Eh bien, c'est pour pouvoir expliquer à la voiture ce que l'on ne peut pas s'expliquer à soi-même...

Vous ne pouvez pas vous l'expliquer à vous-même, et encore moins à la machine, mais lorsque vous verrez un bon contrôle, vous vous direz certainement "oh, c'est ça !".

Cette courbe de contrôle peut donc être obtenue à partir de la somme d'ondes sinusoïdales...

C'estpour faire des cibles qu'on ne peut pas s'expliquer, et donc qu'on ne peut pas programmer , j'ai trouvé cette solution).

Et comment as-tu mesuré les stats ?

Il faut comparer.

Oui, c'est vrai.

J'ai mesuré la stationnarité à l'œil nu. Plus le coefficient est petit, plus le graphique ressemble à un graphique normal, plus le graphique ressemble à un graphique de retournement.
 
mytarmailS #:
Conclusion ?

La corrélation, s'il s'agit d'une corrélation, peut être utilisée pour mesurer la force des facteurs d'influence. Force n'est pas un terme très approprié ici non plus, bien sûr. Mais je n'en vois pas de meilleur.

 
Maxim Dmitrievsky #:
J'ai mesuré la stationnarité à l'œil nu. Plus le coefficient est petit, plus le graphique ressemble à un graphique normal, plus il est grand, plus il ressemble à un graphique de retournement.

S'agit-il d'une fenêtre coulissante ?

Si oui, quelle est sa taille ?

 
mytarmailS #:

S'agit-il d'une fenêtre coulissante ?

Si oui, quelle est sa taille ?

Oui, n'importe quelle taille

De 10 à 200.

par incréments de 10, vous obtenez 20 signes, par exemple.
 
Maxim Dmitrievsky #:

oui, n'importe qui

de 10 à 200.

par tranche de 10, vous obtenez 20 signes, par exemple.


Est-ce que c'est ce à quoi cela doit ressembler ?


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

où " P[ii ] " représente les 20 derniers prix

et " P[i] " est le prix actuel.