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

 
mytarmailS #:

Des échanges ont-ils eu lieu ou s'agissait-il uniquement de tests dans le r-ka ?

Juste R.

 

Je suis loin d'être un pro de la MO, et j'aimerais donc savoir comment résoudre un problème.

Comme vous le savez, pour convertir une température de Fahrenheit en Celsius, on utilise la formule standard : C = (F-32)*5/9

Legradient bousting donne d'excellents résultats dans l'échantillon, mais en dehors de l'échantillon, l'erreur augmente immédiatement.

Pourquoi ? parce que la formule est très simple. que dire d'une relation complexe sur le marché des devises ?)

Comment faire en sorte que cet algorithme donne de bons résultats en dehors de l'échantillon ?

 
Evgeni Gavrilovi gradient bousting donne d'excellents résultats dans l'échantillon, mais au-delà, l'erreur augmente immédiatement.

Pourquoi ? parce que la formule est très simple. que dire de la relation complexe sur le marché des devises ?)

Comment faire pour que cet algorithme donne de bons résultats sur OOS ?

Vous devez normaliser toutes les données dans une fourchette, ou prendre les OOS dans la même fourchette de valeurs

En dehors de cette fourchette, la valeur extrême de la fourchette sera prédite, c'est ainsi que fonctionnent partiellement la forêt, le bousting et l'OOS.
 
Je me suis toujours demandé pourquoi les poids sont ajustés dans le testeur de stratégie? Ça colle...

La meilleure solution ne serait-elle pas d'optimiser le nombre de neurones, de couches et de types de fonctions (certaines dans la première, d'autres dans la dernière) d'activation dans le testeur de stratégie ? Et d'utiliser la rétropropagation de l'erreur comme changement de poids ?

J'ai décidé de tester l'idée. Réseau monocouche (je ne sais pas comment augmenter le nombre de couches), fonction tangente (je ne sais pas comment la changer) aux neurones, pas de fonction à la sortie (je ne sais pas comment la mettre). Période d'entraînement : année - 2021/08/01-2022/08/01

L'optimisation a consisté à sélectionner les paramètres suivants :

- nombre de données d'entrée (la boucle envoyait en entrée le nombre demandé d'écarts de cours de clôture N0-N1, on peut faire d'autres choses, mais les mains n'ont pas atteint) - de 1 à 999 (la variable tableau ne permettait pas de faire plus), étape 1.
- nombre de neurones - de 1 à 99 999 (ne riez pas), étape 1.
- nombre d'ensembles (Bar++[nombre de données d'entrée]) - 9 999, étape 1. Comme l'entraînement a été effectué sur un graphique en heures, il y a 6500 barres dans une année. Le résultat est presque égal à un an et demi , je pense que c'est correct.
- facteur d'apprentissage sur la sortie : de 0 à 1 par pas de 0.00001.
- facteur d'apprentissage sur l'entrée : de 0 à 1 par pas de 0.00001
- nombre d'époques - de 1 à 1000, étape 1.


Alors, je vais vous dire tout de suite pour le nombre d'époques - je n'ai pas réussi à changer quoi que ce soit, que ce soit 1 époque ou 1000, je n'ai pas remarqué beaucoup de différence, il y a probablement des erreurs.

MAIS ! Observations intéressantes :

- plus le nombre de neurones est grand, plus il y a de transactions (presque chaque bougie, si elles sont prédites dans des directions différentes)
- le taux d'apprentissage sur l'entrée dans les 10 premiers meilleurs résultats est le plus souvent proche de 0.7
- le taux d'apprentissage sur la sortie dans les 10 premiers meilleurs résultats est le plus souvent proche de 0.07
- les meilleurs résultats montrent la formule : le nombre de données d'entrée < le nombre de neurones < le nombre d'ensembles. Le meilleur résultat (pour autant que j'aie eu la patience d'attendre) était à peu près le suivant : environ 200 données d'entrée, environ 300 neurones et environ 400 ensembles. Pourquoi le meilleur résultat ? Parce que sur le backtest - croissance lisse ondulatoire, sur les 2 mois à venir - croissance lisse ondulatoire et.... sur la période précédant le backtest d'environ 2 mois - croissance lisse ondulée .

Pour l'intérêt de 99 999 neurones - 50/50, mais, naturellement - le profit le plus élevé - ou le drawdown le plus élevé
. Dans le même temps, le nombre d'entrées ne dépasse pas 100, le nombre d'ensembles ne dépasse pas 100. C'est une longue période d'attente. Mais on ne sait pas quels seraient les résultats avec 1000 entrées et 1000 séries, ou 10 000.
 
Evgeni Gavrilovi gradient bousting donne d'excellents résultats dans l'échantillon, mais au-delà, l'erreur augmente immédiatement.

Pourquoi ? parce que la formule est très simple. que dire de la relation complexe sur le marché des devises ?)

Comment faire en sorte que cet algorithme donne de bons résultats en OOS ?

Il faut apprendre l'AMO sur un échantillon stagiaire, et choisir un modèle sur un échantillon test....
Validation croisée de Google
 
СанСаныч Фоменко #:

Seulement R

Alors il y a une probabilité d'erreur dans le code, vous devez faire des tests soit avec des cotations réelles soit en simulant....

Cela m'est arrivé récemment, le signe regardait +1 barre, ce n'était pas du tout une erreur évidente, cela a pris une demi-heure pour régler le problème....
 
Ivan Butko testeur de stratégie? C'est de l'ajustement...

N'est-ce pas la meilleure façon de s'en sortir ? .....
Le premier et le second sont des ajustements, c'est-à-dire la recherche de paramètres inconnus, c'est-à-dire l'optimisation.
Et peu importe ce que vous ajustez, les poids, le nombre de neurones. L'activation, le nombre de pommes dans le panier.
 
mytarmailS #:
La première et la seconde sont des ajustements, c'est-à-dire la recherche de paramètres inconnus, c'est-à-dire l'optimisation.
Et peu importe ce que l'on ajuste, les poids, le nombre de neurones, les neurones, FUN. Activation, nombre de pommes dans le panier.

C'est triste à dire. Je ne sais pas quoi faire à ce sujet.

Les options de base, où chercher...
 
Ivan Butko #:

C'est triste à dire. Je ne sais pas quoi faire.

Ce sont les principales options, où chercher ailleurs...
Un sarcasme ?
 
mytarmailS #:
Un sarcasme ?

Non, pas du tout. Je ne sais tout simplement pas quoi faire d'autre. Essayer d'utiliser les réseaux neuronaux du marché... Je ne pense pas qu'il y ait de perspectives là non plus.

Raison: