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

 
Aleksey Panfilov:

Très intéressant, pouvez-vous nous en dire plus sur la mesure de la capacité prédictive?

Et surtout, que mesurer ?

J'ai écrit, donné des graphiques, posté du code - le bricoleur a tout enfoui dans ces 1000 pages...

Trop paresseux pour me répéter. Le plus utilisé ici est vtreat, je ne l'utilise pas. L'essentiel est de penser à ce sujet et d'écarter tout le reste.

 
Aleksey Vyazmikin:

Vous n'avez donc pas soulevé la question de savoir quels devraient être les paramètres ZZ ?

Le paramètre ZZ est différent pour chaque instrument et chaque période de temps. Par exemple pour EURUSD M15 une bonne valeur initiale de 15 pips (4 chiffres). Cela dépend également des prédicteurs que vous utilisez. C'est une bonne idée d'optimiser tous les paramètres des prédicteurs et de ZZ. Il est donc souhaitable d'avoir des prédicteurs non paramétriques, cela vous facilite grandement la vie. À ce titre, les filtres numériques donnent de bons résultats. En utilisant les ensembles et la combinaison en cascade, j'ai obtenu une précision moyenne de 0,83. C'est un très bon résultat. Demain, j'enverrai un article pour vérification, qui décrit le processus.

Bonne chance

 
Vladimir Perervenko:

Le paramètre ZZ est différent pour chaque instrument et chaque période de temps. Par exemple pour EURUSD M15 une bonne valeur initiale de 15 pips (4 chiffres). Cela dépend également des prédicteurs que vous utilisez. C'est une bonne idée d'optimiser tous les paramètres des prédicteurs et de ZZ. Il est donc souhaitable d'avoir des prédicteurs non paramétriques, cela vous facilite grandement la vie. À ce titre, les filtres numériques donnent de bons résultats. En utilisant les ensembles et la combinaison en cascade, j'ai obtenu une précision moyenne de 0,83. C'est un très bon résultat. Demain, j'enverrai un article pour vérification, qui décrit le processus.

Bonne chance

Extrêmement intéressant. J'ai hâte d'y être.

 
Graal:

Si vous pouvez partager vos lignes d'offres et de demandes de 2004 par date actuelle, j'essaierai, j'apprends généralement 1-3 ans et je teste pour 20-30%.

dataset, lern et test ainsi que les séries brutes de ducas

Belle courbe :) Mais il est peu probable que cela intrigue quelqu'un, on ne sait pas très bien quel type de logiciel, comment vous avez calculé cette courbe. Sur vos ensembles de données, je n'ai pas obtenu beaucoup plus de 52% de précision, d'ailleurs vous terminez les marqueurs avant les puces, je les ai coupés dans les miens. Je dois ajouter d'autres prix de coupe à partir desquels vous avez obtenu le lern et le test, pour ensuite exécuter le résultat du classificateur sur le bulltester.

PS : en fait, tout testeur de courbes de rendement et comme il s'est avéré des rapports de qualité de classification ne peut rien prouver au public. Il y a quelque temps, dans un groupe fermé d'algotrading, il y a eu une idée intéressante de se mettre d'accord sur une interface pour l'échange de modèles prêts à l'emploi en C++ dll (que de toute façon tous les algotraders et machinistes utilisent) qui prennent en entrée un tas de lignes en json passé et ensuite complété avec de nouvelles données (chandeliers, ticks, tickans, etc.), et affiche des prévisions. En bref, l'idée est d'échanger des sortes de "boîtes noires" normalisées qui pourront ensuite être testées lorsque le futur arrivera, sur le testeur, lorsque les données seront disponibles. C'est la seule façon de comprendre si le modèle fonctionne ou non, bien, vous pouvez également utiliser web-api, mais il est encombrant de garder un VPN pour cela, surtout s'il y a beaucoup de modèles. Et donc tous ces chiffres de précision, Sharp ratio etc. ont peu de sens, il y a 100500 façons de ne pas correspondre consciemment et autant de correspondre consciemment et personne ne le comprendra, il faut plus de preuves vestigiales.

 
Maxim Dmitrievsky:

Si vous avez une classification, vous pouvez estimer avec l'erreur relative de classification ou logloss (entropie croisée), si régression, rmse fera l'affaire. Vous pouvez également mesurer le différentiel d'erreur sur une trace et un test et obtenir la plus petite différence.

Les paramètres sont choisis de manière à ce que le stage, la validation et le test aient à peu près la même séparation dans les classes prédites.

Ce dont il s'agit, c'est qu'une forêt peut facilement être surentraînée même par des arbres peu profonds, et certainement si les arbres sont créés pour nettoyer les feuilles, il y aura là un surentraînement avec une plus grande probabilité.

Alors comment éviter cela ? Eh bien, c'est reparti pour "les ordures entrent, les ordures sortent". Existe-t-il dans la nature des prédicteurs qui ne soient pas des "déchets" ?

L'idée est de prendre ROC_AUC et la valeur sur l'axe horizontal devrait cesser de croître si le prédicteur est bon. Mais après les avoir tous parcourus, je n'en ai trouvé aucun.

J'ai dessiné une ligne strictement plate vers le haut.

Mais aucun des indicateurs ne fera monter le marché par l'histoire, bien sûr que non).

Je l'ai essayé plusieurs fois mais je n'ai pas été très impressionné.

 
forexman77:

Les paramètres sont choisis de manière à ce que l'apprenant, la validation et le test aient à peu près la même répartition des classes prédites.

A quoi bon tout cela, une forêt peut facilement être surentraînée même par des arbres peu profonds, et certainement si les arbres sont créés jusqu'aux feuilles pures, il y aura surentraînement avec une plus grande probabilité.

Alors comment éviter cela ? Eh bien, c'est reparti pour "les ordures entrent, les ordures sortent". Existe-t-il dans la nature des prédicteurs qui ne soient pas des "déchets" ?

L'idée est de prendre ROC_AUC et la valeur sur l'axe horizontal devrait cesser de croître s'il y a quelque chose de bon dans le prédicteur. Mais après les avoir tous parcourus, je n'en ai trouvé aucun.

J'ai dessiné une ligne strictement plate vers le haut.

Mais aucun indicateur ne fera jamais monter le marché par le passé).

Si l'erreur sur le graphique validé est la même que sur la trace, tout devrait fonctionner. De toute évidence, ce n'est pas le cas.

 
Maxim Dmitrievsky:

Si l'erreur sur la section valide. est la même que sur le stagiaire alors tout devrait fonctionner. Apparemment pas.

Eh bien, pas exactement identiques, proches. S'il est complètement identique, c'est un arbre de profondeur trois, la photo a été donnée.

La profondeur 15 est choisie, ce qui a plus ou moins montré le test.

Dans une vingtaine de minutes, je publierai la répartition par classe.

 

Profondeur trois :

[[8010 7122]
 [7312 8410]]
трайн наоборот

[[8026 7105]
 [7209 8512]]
трайн 

[[5538 5034]
 [5117 5395]]
предсказание по обученной модели на трайн, эти данные не участвовали в обучении.
Поясню данные для теста берутся не из не использованных выборок, это данные, которые вообще не доступны для
алгоритма в процессе обучения(находятся вне временного промежутка участка обучения).

Profondeur 15 :

[[7667 7464]
 [7227 8494]]
трайн наоборот

[[14430   702]
 [  661 15061]]
трайн 

[[5405 5167]
 [4958 5554]]
тест

En même temps, bien que la profondeur 15 conduise clairement au surentraînement, l'avant est meilleur avec elle. Aussi sur les autres modèles que j'ai. Lorsqu'il n'y a pas de surajustement important.

Les attaquants :

15

3

Il s'avère qu'il prédit les tags de la classe que vous recherchez 4-6% de plus que le négatif...

 
Gianni:

Belle courbe :) Mais il est peu probable que cela intrigue quelqu'un, on ne sait pas très bien quel type de logiciel, comment vous avez calculé cette courbe. Sur vos ensembles de données, je n'ai pas obtenu beaucoup plus que 52% de précision, d'ailleurs, vos marqueurs se terminent avant les puces, je les ai coupés dans les miens. Je dois ajouter d'autres prix de coupe à partir desquels vous avez obtenu le lern et le test, pour ensuite exécuter le résultat du classificateur sur le bulltester.

PS : en fait, tout testeur de courbes de rendement et comme il s'est avéré que les rapports de qualité de classification ne peuvent rien prouver au public. Il y a quelque temps, dans un groupe fermé d'algotrading, il y a eu une idée intéressante de se mettre d'accord sur une interface pour l'échange de modèles prêts à l'emploi en C++ dll (que de toute façon tous les algotraders et machinistes utilisent) qui prennent comme entrée un tas de lignes en json passé et ensuite complété avec de nouvelles données (chandeliers, ticks, tickans, etc.), et affiche des prévisions. En bref, l'idée est d'échanger des sortes de "boîtes noires" normalisées qui pourront ensuite être testées lorsque le futur arrivera, sur le testeur, lorsque les données seront disponibles. C'est la seule façon de comprendre si le modèle fonctionne ou non, bien, vous pouvez également utiliser web-api, mais il est encombrant de garder un VPN pour cela, surtout s'il y a beaucoup de modèles. Et tous ces chiffres, précision, ratio Sharp, etc. ne veulent pas dire grand chose, il y a 100500 façons de ne pas ajuster consciemment et autant consciemment et personne ne le comprendra, vous avez besoin de meilleures preuves.

Il y a des tuples de caractéristiques nuls au début des échantillons de données d'entraînement et de test, probablement parce qu'il n'y avait pas assez d'historique pour les calculer, et l'algorithme n'a pas contrôlé cela, donc pour un travail correct, ils doivent aussi être supprimés.

Où se trouve ce groupe, si ce n'est pas un secret, et est-il possible d'y chercher ?

 
forexman77:

Profondeur trois :

Profondeur 15 :

En même temps, bien que la profondeur 15 conduise clairement au surentraînement, l'avant est meilleur avec elle. Aussi sur les autres modèles que j'ai. Lorsqu'il n'y a pas de surajustement important.

Les attaquants :

15

3


Je pense que vous devez réduire le nombre de transactions, il semble que sur chaque barre...

Raison: