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

 
Vladimir Perervenko:
J'ai lu par hasard un article dont l'affirmation m'a surpris.Prédicteurs, réponses et résidus : qu'est-ce qui doit vraiment être normalement distribué?

Le passage sur la régression linéaire indique que l'auteur n'est pas familier avec les théories et les statistiques. Variante standard des hypothèses pour LR - les entrées sont déterministes (par exemple, les moments du temps) et la distribution des sorties dépend de la distribution du bruit (et chaque sortie aura son espérance en fonction de l'entrée et différente des autres).

Autre variante - si les entrées et les sorties sont tirées d'une certaine distribution conjointe, la condition d'applicabilité d'un modèle de régression linéaire est encore plus stricte - une distribution JUNICIPALE (bivariée, au moins) doit être normale. Sans cette hypothèse, vous pouvez oublier le MOC.

 
Vladimir Perervenko:
J'ai lu par hasard un article contenant une affirmation surprenante.Prédicteurs, réponses et résidus : qu'est-ce qui doit vraiment être normalement distribué?

Quelques citations :

"De nombreux scientifiques sont préoccupés par la normalité ou la non-normalité des variables dans l'analyse statistique. Les points de vue suivants et d'autres similaires sont souvent exprimés, publiés ou enseignés :

  • " Si vous voulez faire des statistiques, tout doit être distribué normalement .
  • "Nous avons normalisé nos données pour qu'elles correspondent à l'hypothèse de normalité .
  • " Nous avons converti nos données en logarithme car elles avaient une distribution très asymétrique .
  • "Après avoir ajusté le modèle, nous avons testé l'homoscédasticité des résidus .
  • "Nous avons utilisé un test non paramétrique car nos données ne correspondaient pas à l'hypothèse de normalité .

En raison des exigences des réseaux en matière de normalisation des données, de distribution normale et d'un certain nombre d'ajustements, j'ai opté pour des systèmes arborescents. Ils se souviendront des données telles qu'elles sont.

Et après le nom de l'IA (dans l'un des articles pour les gens ordinaires) comme une base de données basée sur les réseaux neuronaux ou des arbres, a commencé à les traiter exactement comme des bases de données, qui dans une cellule (liste) peut stocker plusieurs lignes très similaires, c'est-à-dire en même temps et de résumer. En divisant l'arbre jusqu'au dernier exemple, les cellules ne contiendront que les mêmes lignes sans généralisation - c'est-à-dire que vous obtiendrez une base de données pure. Nous avons encore besoin de généraliser, donc nous arrêtons de diviser les feuilles tôt.

 
Vladimir Perervenko:

Il ne s'agit pas d'impression, mais de générateurs et d'itérateurs.

Vladimir, pouvez-vous expliquer le?

Si ce paquet peut accélérer mon code sans le modifier, c'est très intéressant pour moi, donnez-moi un exemple de fonctionnement, s'il vous plaît.

 
mytarmailS:

Vladimir, pouvez-vous me donner une explication sur le?

Si ce paquet peut accélérer mon code sans le modifier, c'est très intéressant pour moi, donnez-moi un exemple de fonctionnement, s'il vous plaît.

Il y a beaucoup d'exemples dans le paquet. Vous ne pouvez pas le trouver ? Voir

> #  A generator statement creates a generator factory. The
> #  following generator yields two times and then returns `"c"`:
> generate_abc <- generator(function() {
+   yield("a")
+   yield("b")
+   "c"
+ })
> 
> #  Or equivalently:
> generate_abc <- generator(function() {
+   for (x in letters[1:3]) {
+     yield(x)
+   }
+ })
> 
> #  The factory creates generator instances. They are iterators
> #  that you can call successively to obtain new values:
> abc <- generate_abc()
> abc()
[1] "a"
> abc()
[1] "b"
> 
> #  Once a generator has returned it keeps returning `exhausted()`.
> #  This signals to its caller that new values can no longer be
> #  produced. The generator is exhausted:
> abc()
[1] "c"
> abc()
exhausted
> 
> #  You can only exhaust a generator once but you can always create
> # new ones from a factory:
> abc <- generate_abc()
> abc()
[1] "a"
> 
> 
> #  As generators implement the coro iteration protocol, you can use
> #  coro tools like `loop()`. It makes it possible to loop over
> #  iterators with `for` expressions:
> loop(for (x in abc) print(x))
[1] "b"
[1] "c"
> 
> #  To gather values of an iterator in a list, use `collect()`. Pass
> #  the `n` argument to collect that number of elements from a
> #  generator:
> abc <- generate_abc()
> collect(abc, 1)
[[1]]
[1] "a"

> 
> #  Or drain all remaining elements:
> collect(abc)
[[1]]
[1] "b"

[[2]]
[1] "c"

> 
> 
> #  coro provides a short syntax `gen()` for creating one-off
> #  generator _instances_. It is handy to adapt existing iterators:
> numbers <- 1:10
> odds <- gen(for (x in numbers) if (x %% 2 != 0) yield(x))
> squares <- gen(for (x in odds) yield(x^2))
> greetings <- gen(for (x in squares) yield(paste("Hey", x)))
> 
> collect(greetings)
[[1]]
[1] "Hey 1"

[[2]]
[1] "Hey 9"

[[3]]
[1] "Hey 25"

[[4]]
[1] "Hey 49"

[[5]]
[1] "Hey 81"

> 
> 
> #  Arguments passed to generator instances are returned from the
> # `yield()` statement on reentry:
> new_tally <- generator(function() {
+   count <- 0
+   while (TRUE) {
+     i <- yield(count)
+     count <- count + i
+   }
+ })
> tally <- new_tally()
> tally(1)
[1] 0
> tally(2)
[1] 2
> tally(10)
[1] 12
 
Vladimir Perervenko:

Il ne s'agit pas de générateurs et d'itérateurs.

Vraiment ? ))

 
Maxim Dmitrievsky

Allez-vous publier un nouvel article sur le trading de paires basé sur le MO à l'avenir ?

 
Evgeni Gavrilovi:

Allez-vous publier un nouvel article sur le trading de paires basé sur le MO à l'avenir ?

Oui, on n'a pas encore eu le temps. Les articles prennent beaucoup de temps à penser à leur plan, puis à programmer...

 
Maxim Dmitrievsky:

Oui, on n'a pas encore eu le temps. Les articles prennent beaucoup de temps pour réfléchir à leur plan, puis pour programmer...

Je ne sais pas si je peux ajouter le script qui ouvre les ordres directement dans Python selon cette stratégie.

 
Evgeni Gavrilovi:

Pouvez-vous alors ajouter à l'article un script qui ouvre les ordres directement dans Python en utilisant cette stratégie ?

Oui, vous pouvez. Mais il est plus pratique en tant que conseiller expert.

 
Maxim Dmitrievsky:

Oui, c'est possible. Mais c'est plus pratique en tant que conseiller, n'est-ce pas ?


Il y a un article sur le hubra https://m.habr.com/ru/post/549202/, qu'en penses-tu ? Peut-on faire quelque chose de pratique ? Je suis intéressé par votre avis d'expert (et celui d'autres mathématiciens).