L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 2104

 
elibrarius:

Je ne pense pas que le nombre de transactions doive être compté ici. Il suffit de soustraire le spread et la commission de chaque transaction. C'est comme ça :

ce n'est pas comme ça que ça marche, il faut compter de toute façon

 
Vladimir Perervenko:

Oui, le vôtre est plus correct.

Non) le vôtre est plus correct !

Parce que l'affaire qui a été ouverte " plus tôt " (l'ouverture n'est pas tombée dans notre vecteur).

cela signifie que la commission a été retirée "plus tôt". mais pas dans le vecteur actuel

mais ce sont des détails mineurs...

 

pour ceux qui ont 2 heures de temps


 
mytarmailS:

pour ceux qui ont deux heures de temps.


De quoi s'agit-il ?

 
mytarmailS:

pour ceux qui ont 2 heures de temps


Il bourre les cerveaux des jeunes gens de ses fantasmes schizoïdes et de ses fausses conclusions.

 
mytarmailS:

Non) le vôtre est plus correct !

parce que l'affaire qui a été ouverte "plus tôt" (l'ouverture n'est pas tombée dans notre vecteur)

Cela signifie que la commission a été retirée "plus tôt". mais pas dans le vecteur actuel

mais ce sont des détails mineurs.

Ce sont vraiment des broutilles, sauf pour deux choses. Le premier est la rapidité d'exécution :

cnt<-function(x){
    n <- 1:(length(x)-1)
    cnt <- 0
    for(i in n) {if(x[i]!=x[i+1]) {cnt<-cnt+1}}
    return(cnt)
}
cnt1 <- function(x){
    length(rle(c(x))$values)
}

sig <- rep(c(1,1,1,-1,-1,-1), 3000)

bench::workout({
    c <- cnt(sig)
    c1 <- cnt1(sig)
})
# A tibble: 2 x 3
  exprs            process     real
  <bch:expr>      <bch:tm> <bch:tm>
1 c <- cnt(sig)     15.6 ms   9.21 ms
2 c1 <- cnt1(sig)        0   1.15 ms

Le second est 15 fois plus rapide. Et s'il est impliqué dans une fonction de fitness qui est appelée des dizaines de milliers de fois, cela entraînera une perte de temps considérable.

Deuxième point. Tout va bien si nous avons deux conditions Achat/Vente/ Mais en règle générale, le TS génère trois signaux - Achat/Vente/Maintien (1, -1, 0). Et puis la deuxième option ne fonctionne pas. Et la première variante avec une légère modification

sig <- rep(c(1,1,1,-1,-1,-1,0,0,0), 3000)
> length(sig)
[1] 27000
cnt<-function(x){
    n <- 1:(length(x)-1)
    cnt <- 0
    for(i in n) {if(x[i] != x[i+1] & x[i+1] != 0) {cnt<-cnt+1}}
    return(cnt)
}
bench::workout({
    op <- cnt(sig)
    op1 <- cnt1(sig)
})
# A tibble: 2 x 3
  exprs             process     real
  <bch:expr>       <bch:tm> <bch:tm>
1 op <- cnt(sig)     31.2 ms  17.43 ms
2 op1 <- cnt1(sig)        0   3.23 ms
> op
[1] 5999
> op1
[1] 9000

La première variante montrera le résultat correct (bien que lent), et la seconde considérera la sortie de position comme une donne, ce qui est faux.

 
Vladimir Perervenko:

Ce sont vraiment des petites choses si vous ne tenez pas compte de deux choses. Le premier est la rapidité d'exécution :

Je suis tout à fait d'accord...

Existe-t-il des moyens de former des réseaux ou des forêts avec une fonction de fitness ?
 
mytarmailS:

Je suis tout à fait d'accord...

Existe-t-il un moyen d'entraîner un réseau ou un échafaudage avec une fonction de fitness ?

La fonction de fitness calcule la valeur du critère d'optimisation pendant le processus d'optimisation. Cela n'a rien à voir avec la formation des modèles.

 

nous devons modifier la multiclasse catbust dans la métaq pour ajouter "pas de commerce".

l'éventail des stratégies s'élargira

 

J'ai ajouté un nouveau calcul de solde et une fonction de commission à la fonction de fitness...

Je pense que l'algorithme essaie maintenant de minimiser le nombre de transactions pour économiser la commission... par conséquent, moins de commerce entraîne moins d'expérience...

Voici les graphiques, vous pouvez clairement voir que lorsqu'il y a peu de transactions, l'apprentissage ne fonctionne pas...

gris est TRAIN 1500 pips

le noir est le TEST 500 points

Celui-ci avait peu de transactions, l'algo n'a rien appris, c'est une fréquence très basse...


C'est amusant de connaître les points d'entrée 2 jours à l'avance ;))

Mais c'est probablement mieux de se recycler tout le temps, je ne sais pas encore comment tester tout cela.