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

 
Maxim Dmitrievsky:

1 : décider de la taille de l'échantillon, votre échantillon est très petit

2. étudiez les modèles de classification/régression simples (linéaires), il est fort probable qu'ils fonctionnent pour vous, et si l'erreur est importante, vous pouvez essayer de passer à des modèles plus complexes (non linéaires) dans la bibliothèque alglib du terminal (les arbres de décision et les forêts sont également disponibles).

3) Ne jamais prendre de conseils, surtout du côté R :))) Il est temps de les bannir de ce forum.

4. Si le problème peut être résolu sans apprentissage automatique, il est préférable de ne pas l'utiliser.

1. Oui, ce n'est qu'un exemple, l'échantillon est bien sûr important dans la réalité.

2. Merci, bien sûr qu'il vaut mieux commencer par un simple. Je pense que c'est une nouvelle étape dans mon développement en matière d'exploration de données.

3) Il est bon de connaître les alternatives sur MQL...

4. Pour l'instant, je cherche à regrouper les caractéristiques (modèles) en fonction de leur degré d'influence sur le commerce. J'ai peur d'avoir commencé à développer mon TS dans le sens de l'ajustement, et ensuite je veux accumuler des idées sous forme de signes de comportement du marché afin de rejeter mes illusions.

 
Aleksey Vyazmikin:

1. Oui, ce n'est qu'un exemple, l'échantillon est bien sûr important dans la réalité.

2. Merci, bien sûr, il vaut mieux commencer simple - je pense que c'est une nouvelle étape de mon développement en matière d'exploration de données.

3. il est donc bon de connaître les alternatives sur MQL...

4. Pour l'instant, je cherche à regrouper les caractéristiques (modèles) en fonction de leur degré d'influence sur le commerce. Car j'ai peur d'avoir commencé à développer mon TS dans le sens de l'ajustement, et ensuite je veux accumuler des idées sous forme de signes de comportement du marché afin de rejeter mes hallucinations.

http://alglib.sources.ru/dataanalysis/

tout ceci est disponible dans mql (la bibliothèque est fournie en standard avec le terminal)

pour le clustering, vous pouvez utiliser les k-means simples.

Et pour votre tableau, vous pouvez essayer la régression logistique (youtube est plein de clips sur ce que c'est et comment l'utiliser) (régression logit multiple), c'est juste une base pour diviser en classes, comme dans votre cas 0 ou 1. Vient ensuite le perseptron multicouche, qui divise également en classes, mais d'une manière plus complexe (non linéaire).

un arbre de décision ordinaire a peu de chances de fonctionner, il est préférable d'utiliser une forêt, qui se compose de plusieurs arbres de ce type qui sont partitionnés différemment (par exemple, comme la 1ère partition sera utilisée non pas la 1ère variable, mais la 3ème), puis les résultats de tous les arbres sont moyennés et obtenir une estimation plus précise et robuste. Mais si le problème s'avère être essentiellement linéaire, l'échafaudage ne convient pas. Il est préférable d'utiliser la régression logistique ou le perseptron avec une couche cachée. C'est pourquoi il est recommandé de commencer par les modèles linéaires les plus simples, et si vous êtes satisfait du résultat - ne vous donnez pas la peine.

 
Aleksey Vyazmikin:

si je veux examiner l'impact des jours de la semaine, dois-je faire différents paramètres d'entrée marquant le jour, ou un seul paramètre marquant de 1 à 5 est-il suffisant ?)

Forest crée une règle utilisant les opérations "plus" ou "moins" pour comparer les valeurs.

Dans le cas des valeurs 1,2,3,4,5 - si, par exemple, vous devez créer une règle qui ne fonctionne que le mercredi, alors il faut deux branches - "moins que jeudi" et "plus que mardi".
S'il s'agit de paramètres différents avec des marquages, une seule comparaison suffit (marquages supérieurs à zéro).
Moins il y a de branches nécessaires pour créer une règle, plus le modèle est simple, et mieux c'est.

Faites les deux en général, ensemble. Une colonne avec les valeurs 1,2,3,4,5. Et 5 autres colonnes avec des étiquettes.

 
Aleksey Vyazmikin:

Quelqu'un a-t-il déjà fait une comparaison de différents algorithmes pour l'efficacité, enfin, si la réponse est connue, comme dans mon exemple, mais pour des tâches plus complexes ?

La prédiction de données comme les vôtres est appelée classification, lorsque la réponse nécessaire peut n'être qu'une paire de valeurs, ou même ne pas être des chiffres mais des termes ("exit trade", "roll over", etc.).
Les neurones et le boosting s'en accommodent bien, ils peuvent être entraînés sur de telles données et ensuite utilisés pour la prédiction sur de nouvelles données.


Je comprends que votre objectif est d'extraire les informations les plus précieuses de vos données, et d'obtenir un ensemble de règles lisibles. Alors la neuronique ne fonctionnera pas, l'extraction de règles et de connaissances de la neuronique n'est pas si facile.

Une forêt offre plusieurs choix, plusieurs arbres (formules), et la réponse finale est déterminée par un vote, où chaque formule donne une réponse différente, et la plus populaire sera finalement choisie. Mais un tel fouillis de règles est trop compliqué à interpréter, il y aura beaucoup d'images comme je l'ai ajouté ci-dessus, chacune donnera une réponse différente, et le résultat sera ce qui est le plus souvent frappé.

Un arbre donnera une image comme celle ci-dessus, dans des cas compliqués avec des dizaines ou des centaines de branches dans le graphique. Mais il peut être facilement interprété et répété en suivant les branches de l'image.

Il existe de nombreux modèles, choisissez celui qui convient le mieux à votre application.


Alglib dans MQL peut aussi faire tout cela. Mais c'est peu pratique, chaque fois que vous avez le moindre changement, vous devez compiler un script, l'exécuter, attendre le résultat.

R ou Python vous permet de réexécuter simplement une ligne de code précédente en cas d'erreur et de la modifier. Tous les objets créés pendant l'exécution du script restent en mémoire et vous pouvez continuer à travailler avec eux, en prédisant et en exécutant de nouvelles lignes de code. Il n'est pas nécessaire de relancer l'ensemble du script après la moindre modification, comme dans mql.

 
Pendant cette période d'accalmie, je vais poster quelques textes ici pour voir si quelqu'un est intéressé.
 
Yuriy Asaulenko:

Et prévoir avec une confiance de 70 % dans l'intervalle ne sert pas à grand-chose. Ce n'est pas très difficile à faire, mais c'est toujours inutile.

70% de confiance que 50% de précision n'est pas grand chose, et 70% de précision est un conte de fée ou une erreur de ceux qui utilisent des cibles mixtes, à 70% de précision SharpRatio >30, c'est fantastique même pour l'ultra HFT

 
SanSanych Fomenko:

Pour la centième fois :

1. l'exploration des données est obligatoire. il est obligatoire de commencer par sélectionner uniquement les prédicteurs qui ont un IMPACT sur la variable cible. Et puis toutes les recherches de données.

2. Il existe deux modèles :

3. entraînement des modèles avec validation croisée si possible

4. évaluation des modèles en dehors du fichier de formation

5. Test effectué dans le testeur.


Pour la centième fois, TOUTES les étapes sont obligatoires !


Ayant fait tout cela, vous pouvez partir du principe que la dépo ne sera pas vendue immédiatement !


On y va, les gars ! Finir de traîner sur le forum et avec une joie tranquille mettre en œuvre le plan esquissé pour R.


Trois hourras !

Je plaisante, je suis comme vous, j'essaie d'apprendre aux gens à utiliser ZZ comme objectif, j'étais naïf et n'ai pas compris votre plan diabolique :)

 
Aliosha:

C'est bon, je plaisante, je m'agite comme vous pour utiliser ZZ comme objectif, j'étais juste naïf et n'ai pas compris vos plans insidieux :)

Je dois encore une fois préciser que je ne milite pas pour ZZ, mais que c'est très clair pour les systèmes de trading de tendance.

Et la cible et les prédicteurs de la cible sont tous extrêmement compliqués et très coûteux. Et le modèle est assez facile à prendre en main. Il arrive qu'un type soit catégoriquement inadapté à la cible et à ses prédicteurs et qu'un autre type convienne. En général, vous devriez toujours essayer une douzaine ou deux modèles.

 
Aliosha:

70 % de certitude que la précision de 50 % ne fait pas grand-chose, et que la précision de 70 % est un conte de fées ou une erreur de ceux qui utilisent des cibles mixtes, à 70 % de précision SharpRatio >30, c'est fantastique même pour l'ultra HFT

Encore une fois, pour ceux qui ne comprennent pas. 70% est la réalité. A 70% de l'intervalle de temps, nous pouvons facilement faire des prévisions justifiables.

La question de l'inutilité de ces prévisions est différente. Sur ces 70% de prévisions justifiées, seul un quart ou moins est réaliste pour entrer dans une transaction, c'est-à-dire seulement ~17% de l'intervalle. Cependant, étant donné que nous ne savons pas a priori où la prévision se justifie, et que les 30% restants nous donnent une part importante de trades ratés et de trades "corrects" manqués, il est impossible de mettre en œuvre 70% de prévisions fiables.

 
Aliosha:

C'est bon, je plaisante, je suis exactement comme vous en train d'inciter les gens à utiliser ZZ comme objectif, j'étais juste naïf et je n'ai pas compris vos plans diaboliques :)

Le plan viral insidieux "ZZ-01" a été mis au point il y a plusieurs années dans l'une des entreprises suivantes
dans un laboratoire secret. Fa a seulement agi comme son porteur. Eh, Alyosha...

Raison: