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

 

Tout le problème des théoriciens est de dessiner des théories qui n'existent pas dans la réalité. Mais la réalité ressemble parfois à une sorte de théorie. Il ne reste plus qu'à déterminer à quel point ? Et c'est ce que font les testeurs de théorie. Franchement, un trader est comme un testeur. Il teste une stratégie ou une théorie sur un dépôt avec son courtier (le plus intrépide fait juste sans utiliser de théorie :)) ... Mais le lâche (comme moi) ... et il en va de même pour tout vérifier à l'infini :) Disons que c'est ... une immersion dans la théorie du trading ! Et comment cela fonctionne-t-il vraiment ? ... Nous ne pouvons pas en être sûrs. Nous pouvons seulement savoir ce qui peut affecter. Je pense que nous devons comprendre exactement ce qui affecte ? Par exemple, la hausse des crypto-monnaies, la chute du baril de pétrole, les fortes fluctuations du yen, etc. etc. Honnêtement... Je ne sais pas. Je regarde l'expérience des précédents... ...la ressource d'où ils tiraient leurs données a disparu et... Donc l'analyse fondamentale est pour les traders rapides et intrépides. OK, j'en viens à la réalité... tout ce que nous pouvons faire... est de saisir la tendance et la récurrence de cette tendance dans l'histoire. Nous pouvons simplement dire que...

1. attraper la même chose à un moment donné (tendance à la baisse, tendance à la hausse, swing, stop, breakout)

2. essayer certains paramètres qui contribuent à la tendance ( lignes de résistance, support)

3. les réactions du prix à des événements importants ou connus.

C'est tout. Je ne sais pas ce qui peut encore nous donner un signal... Nous pouvons utiliser des paramètres pour dessiner le prix sur le graphique... cela ressemble à un trader chaman qui danse avec des tambourins ! :) Les gens aiment ça :) Le chaman sait ce qui est quoi :) Bien sûr, ce serait bien d'avoir des informations provenant d'une source fiable, mais la fiabilité est souvent de plus en plus faible ces derniers temps. Alors on se contente de copier bêtement ce qu'on a :) Comment faire ? Eh bien... ...définir un peu de paramètres de copie Qu'est-ce que ça peut être ? Oui ? Qu'est-ce que ce serait ?

 
Yuriy Asaulenko:

Je ne sais pas de quoi il s'agit ?

Tout est en corrélation avec tout ce qui se trouve sur l'outil. Et c'est inévitable puisque tout est obtenu par des transformations à partir des mêmes séries chronologiques, des mêmes données.

À propos, avec l'ACP, vous pouvez essayer de vous débarrasser de la multicollinéarité et de réduire la dimension des entrées, ou de la décomposition singulière.

Je n'ai aucun problème à adapter les NS à un morceau d'histoire, j'ai un problème avec les modes adaptatifs et l'auto-apprentissage maintenant. Je n'ai pas encore trouvé d'articles ou d'autres informations qui couvrent bien le sujet... J'ai mes propres petits développements, mais ça ne fonctionne pas très bien pour l'instant. C'est pourquoi mon article sur la RF et le système adaptatif est resté bloqué pour le moment, car je voulais couvrir le sujet de l'adaptabilité autant que possible.

Je vois maintenant la solution dans des prédicteurs adaptatifs qui donneront des signaux +- corrects sur différents graphiques, et les ns de base, en fait, ne seront entraînés qu'une seule fois ou pas très souvent, c'est-à-dire que nous devrions nous débarrasser du problème - quand réentraîner NS et du problème de réentraînement lui-même, lorsque les prédicteurs cessent de fonctionner lorsque le marché change.

 
Maxim Dmitrievsky:

À propos, grâce à l'ACP, vous pouvez essayer de vous débarrasser de la multicollinéarité et de réduire la dimension des entrées, ou de la décomposition singulière.

Je n'ai aucun problème à adapter NS à un peu d'histoire, j'ai un problème avec les modes adaptatifs et l'auto-formation maintenant. Je n'ai pas encore trouvé d'articles ou d'autres informations qui couvrent bien le sujet... J'ai mes propres petits développements, mais ça ne fonctionne pas très bien pour l'instant. C'est pourquoi mon article sur la RF et les systèmes adaptatifs est resté bloqué pour le moment, car je voulais couvrir le sujet de l'adaptabilité autant que possible.

J'ai obtenu ce résultat sur un modèle d'il y a une semaine.

x - numéro de transaction, y - bénéfice total en p. Traiter avec un lot fixe.

Je dois dire que je suis étonné. Cela fait maintenant une semaine que j'ai mis en place un véritable système.

 
Yuriy Asaulenko:

J'ai obtenu ce résultat sur un modèle datant d'une semaine.

x - numéro de transaction, y - bénéfice total en p. Trader un lot constant.

Je dois dire que je suis étonné. Je suis en train de riveter le vrai système depuis une semaine maintenant.

J'ai une bonne idée pour utiliser de vrais écarts et des commissaires, mais je préfère voir les résultats... + Je vais utiliser le slippage pour les transactions courtes.

et en avant :)

 
Maxim Dmitrievsky:
S'ils n'y sont pas habitués, ils seront utilisés de la même manière qu'au début du jeu. + slippage si les transactions sont courtes

Le modèle semble prendre tout cela en compte. On estime que 30 pence sont perdus sur chaque transaction, qu'elle soit réussie ou non. (ce sont des contrats à terme) - c'est beaucoup pour eux. Test sur les données non utilisées pendant le débogage Débogage sur les futures -6.17 - Test sur les futures ultérieures -9.17. Tout est pris en compte, si possible).

Toutefois, il y aura des nuances, bien sûr. Je suppose, comme d'habitude, que la réalité sera un peu plus mauvaise.

J'ai maintenant atteint le moment de l'ouverture du marché. Je m'entraîne - j'ai regardé une douzaine d'entrées dans un marché en ligne. Il semble que l'entrée soit correcte.

 

Il y a un problème sur ALGLIB avec la version SOFTMAX de NS. Toutes les réponses sont biaisées vers la première sortie (pour moi c'est BUY).
Mêmes données NS - la régression avec 3 sorties (avec activation linéaire) donne des résultats plus fiables :

Achat Vente NA
0.10302356, 0.01091621, 0.88606040
0.09705416, 0.01083526, 0.89211080
0.08283979, 0.12548789, 0.79167247
1.02522414,-0.00119697,-0.02403573
0.09498582, 0.01529507, 0.88971917
1.01878489,-0.00111341,-0.01767998
0.07906346, 0.05960769, 0.86132762
0.00201949, 0.00497863, 0.99300189

en >0,5 donneront des réponses plausibles.

Les, d'ailleurs, est également biaisé vers la 1ère sortie.

 

Quelle est l'activation de vos neurones de sortie ? Je vois des valeurs négatives. Ça ne devrait pas l'être. Vous devez utiliser l'activation softmax dans les neurones de sortie. Ses valeurs sont comprises entre 0 et 1.

 
Grigoriy Chaunin:

Quelle est l'activation de vos neurones de sortie ? Je vois des valeurs négatives. Ça ne devrait pas l'être. Vous devez utiliser l'activation softmax dans les neurones de sortie. Ses valeurs sont comprises entre 0 et 1.

L'exemple ci-dessus est issu d'une régression avec des sorties linéaires (comme variante de travail). Pendant l'entraînement, je me nourris de 0 à 1.

Sur softmax était soit clairement 1, soit quelques centièmes de moins ; mais tout sur la 1ère sortie, les 2 autres sorties étant toujours = 0. C'est-à-dire qu'il y a un problème avec softmax dans ALGLIB...

 

Découvrez les fonctions d'activation des neurones. Vous pouvez fournir les valeurs que vous souhaitez à la sortie, mais une fonction d'activation incorrecte produira des valeurs négatives. Il s'agit généralement d'une tangente hyperbolique. La fonction de perte softmax ne fonctionnera pas correctement avec elle. Bien que cela dépende beaucoup de la bibliothèque et de l'implémentation de la fonction de perte. Par exemple, dans Tensorflow, les neurones de sortie de la fonction de perte softmax ne doivent pas avoir de fonction d'activation. Et pour une utilisation correcte du réseau formé, nous devons ajouter l'activation softmax. Je n'aipas travaillé avecALGLIB, peut-être ont-ils fait quelque chose de mal. Dans tous les cas, un réseau entraîné avec softmax ne devrait pas donner de valeurs négatives.

 

C'est le cas lorsqu'une des classes a un très grand nombre d'exemples d'apprentissage par rapport aux autres classes. Par exemple, 2000 exemples d'entraînement pour l'achat et seulement 1000 pour la vente. Le neurone peut toujours renvoyer "Acheter" et, dans ce cas, il aura raison dans 66 % des cas. Il est préférable de rendre le nombre d'exemples de formation de chaque classe égal.

Raison: