L'Apprentissage Automatique dans le trading : théorie, modèles, pratique et trading algo - page 102

 
Alexey Burnakov:

Il y a une cymique dans ce que vous faites.

Cependant, vous devriez également essayer l'échantillonnage différé. C'est un classique. Former, tester, valider.

Et rendre la procédure encore plus compliquée. Pour chaque modèle qui fonctionne bien en termes de formation et de test, appelons-le modèle X, faites une validation sur les données différées. Vous pouvez ainsi savoir si vous choisissez le modèle correctement ou non, en utilisant uniquement la formation et le test. Faites plusieurs modèles avec différents paramètres, choisissez les meilleurs (10, 100, 1000). Échec. Vous comprendrez si votre "meilleure" métrique se reflète dans les données futures ou non. Ce n'est qu'après cela qu'il faut aller au combat.

S'il existe de nombreuses valeurs de la même variable aléatoire, vous pouvez compter les intervalles de confiance et ensuite, au lieu de "valeurs proches", opérer sur "l'intersection/convergence des intervalles de confiance".
 
mytarmailS:

pouvez-vous voir le résultat des transactions d'hier ?

Et c'est pour aujourd'hui. Non sans erreurs, bien sûr, mais finalement tout à fait égal.....

 
Mihail Marchukajtes:

Et c'est pour aujourd'hui. Pas sans erreurs, bien sûr, mais au final, c'est assez égal.....

Pas mal, mais que sont les cercles verts et que signifient les flèches ?

 
SanSanych Fomenko:
S'il existe de nombreuses valeurs de la même variable aléatoire, vous pouvez compter les intervalles de confiance et ensuite, au lieu de "valeurs proches", opérer "intersection/convergence des intervalles de confiance".

SanSan, laissez-moi vous expliquer à nouveau. Et je pense que ce sera plus clair pour tout le monde.

Le tableau ci-dessous est un journal de l'expérience. Chaque expérience est écrite dans un tableau. Avant la colonne J, il y a les variables. Modèle, formation de la fonction de perte, outil, horizon de prévision, paramètres du modèle (GBM), paramètres qui ne sont pas optimisés dans le caret, mais que j'optimise aussi dans la boucle : nombre de failles crossvalid, nombre de prédicteurs sélectionnés pour la formation, randomisation pour l'arbre, suppression d'une partie des prévisions qui sont dans la zone grise de l'incertitude.

Viennent ensuite mes mesures de qualité : sur la formation (ensemble de 10 ans), sur les échecs aux tests de validation croisée et sur les échantillons retardés. J'ai marqué les colonnes les plus intéressantes en rouge.

Suivant. Je peux vous montrer les meilleurs modèles qui ont fait une sacrée différence sur les échantillons différés. Mais - c'est un ajustement difficile !

Avec des données cohérentes et une méthode de formation appropriée, je m'attends simplement à obtenir une relation entre la métrique sur les échantillons différés et la métrique sur la validation croisée (test). Voyons voir ce que j'ai :

Objectivement - la qualité des modèles sélectionnés sur l'échantillon différé (qui émule une période de négociation réelle) est presque sans rapport avec la métrique de qualité sur le test (tests de validation croisée.).

Conclusion, mes amis : si je choisis le meilleur modèle en fonction de l'heuristique suivante "le modèle doit être meilleur au test", je n'ai aucune certitude sur les performances futures du modèle.

Cette définition s'étend à un tel scénario : je choisis un modèle selon l'heuristique "le meilleur modèle montrera une bonne qualité sur un échantillon retardé" ; un tel choix, chers amis, conduira également à l'incertitude. Tout est probabiliste, bien sûr, on peut avoir de la chance, mais on ne peut pas tricher avec les statistiques.

C'est là, et seulement là, l'avantage de l'échantillonnage différé. Vérification de la performance du modèle, vérification de l'heuristique de sélection du meilleur modèle.

PS : Je réfléchis à la manière d'améliorer le résultat. Dans le bon sens du terme, vous avez besoin d'un nuage incliné eliptique. A partir de là, vous pouvez prendre des comités sur le bord droit, etc. et en moyenne, cela fonctionnera.

 

Belle boîte à outils que vous avez développée pour évaluer les heuristiques, solide. Vous avez prouvé que la méthode que vous avez développée pour entraîner le modèle (comité) n'est pas adaptée au forex, mais que faire ensuite ?

Vous devez trouver un moyen de construire un modèle de manière à ce qu'il y ait une corrélation entre les résultats sur les données d'entraînement elles-mêmes, les résultats sur le test et les résultats sur l'échantillon en attente.

J'ai une situation similaire, par exemple j'essaie différentes manières de prétraiter les données, différents paquets pour la formation/prédiction, différentes fonctions pour évaluer la qualité de la prédiction. Tout est important, et il existe une infinité de combinaisons de tout cela. J'essaie de m'en tenir à la règle du rasoir d'Occam : moins on a besoin de prédicteurs et moins un modèle a de paramètres, mieux c'est.

 

De plus, mon opinion subjective est que vos prédicteurs ne peuvent pas être utilisés pour prédire vos valeurs cibles. Au moins en travaillant avec votre fichier dat_train_final_experimental1.csv - je ne peux pas obtenir un résultat positif pour ma fonction fitness lors de l'ajustement des paramètres gbm. C'est-à-dire que, quel que soit le modèle, quels que soient les paramètres que je construise, je ne suis pas satisfait des résultats de la validation croisée. Je ne peux pas le prouver, c'est juste mon opinion personnelle, je conseille de prendre plus de prédicteurs et d'essayer de diminuer leur nombre lors de la construction d'un modèle.

Par exemple, dans mon tableau d'entraînement, il y a 150 prédicteurs pour chaque barre, 100 barres au total, soit un total de 15000 prédicteurs. J'utilise ensuite la génétique pour rechercher les prédicteurs et les paramètres du modèle en cherchant le meilleur résultat de la fonction de fitness. De cette façon, je sélectionne les prédicteurs qui sont liés aux valeurs cibles et sur lesquels le modèle peut prédire. À la fin de la sélection, il ne me reste que 10 à 20 prédicteurs. Le résultat de la fonction fitness est nécessairement légèrement réduit pour chaque prédicteur utilisé. J'ai écrit le code R approximatif de la fonction fitness sur le forum ici hier, c'est plus clair.

 
mytarmailS:

Pas mal, mais que sont les cercles verts et que signifient les flèches ?

Les points verts indiquent que le signal sera, chaque série de points verts se termine par un point bleu ou rouge, ce qui signifie que les Séquents signalent d'acheter ou de vendre en conséquence. Eh bien, les flèches sont le travail du classificateur de Reshetov, qui dit vrai signal ou faux un.....

Au fait, Sequenta est atacha, utilisez-le à votre avantage. ....

Dossiers :
 
Dr.Trader:

C'est aussi mon opinion subjective que vos prédicteurs ne peuvent pas être utilisés pour prédire vos valeurs cibles.

Il me semble avoir été capable de mieux articuler ceci -

Les résultats de la prédiction sur les échantillons d'entraînement eux-mêmes présentent une faible corrélation, en moyenne, avec les résultats sur les échantillons de test.

Il existe un paquet ForeCA, et il possède une fonction Omega qui estime la "prévisibilité" du signal. S'il estime à 100% - le signal répond à certaines exigences et est facile à prévoir. Un score de 0 % signifie que le signal n'est que du bruit et qu'il est impossible de le prévoir.

J'ai toujours votre table dat_test_features_experimental.RData, où la dernière colonne est l'augmentation du prix. Par exemple, l'estimation pour eurusd = 0,83% (pas 83%, exactement 0,83%, moins de un). Selon ForeCA, il est impossible de prédire cette série chronologique. Non pas que j'aie une grande confiance dans ce paquet, mais son auteur comprend manifestement quelque chose, je l'écouterais.

Omega(dat_test_features[dat_test_features[,109] == "eurusd", 110])

Je ne me souviens pas de la période sur laquelle vous travaillez, mais si c'est M1 - il y a une bonne raison d'essayer plus, H1 par exemple.

 
Dr. Trader,

Je vous entends. Je travaille avec un horizon de quelques heures.

Sur les minutes, la régression fonctionne bien, mais il lui manque le mode opératoire du métier. Sur l'heure, la différence de prix absolue est d'environ 8 pips. Que diable.... Vous voyez ? Vous devez avoir une précision de 65_70%. Et à 9 heures, 53-53% est suffisant pour dominer le spread.
 
Dr. Trader:

...

Il existe un paquet ForeCA, et il possède une fonction Omega qui évalue la "prévisibilité" du signal. S'il estime à 100% - le signal répond à certaines exigences et est facile à prévoir. Un score de 0 % signifie que le signal n'est que du bruit et qu'il est impossible de le prévoir.

...

Que signifie le terme "prévisibilité" dans ce paquet ? Je pensais que cela signifiait la capacité d'extrapoler (c'est le mot) des valeurs antérieures (précédentes). Si nous prenons des incréments, alors l'outil le plus large applicable, très bien élaboré avec beaucoup de nuances : ARIMA, si ce modèle ne passe pas, alors toutes sortes d'ARCH. Et le paquet ForeCA doit être comparé à ces modèles.

En général, il me semble que l'idée originale est perdue. Pour moi, l'idée originale était que nous avions besoin de méthodes qui ne dépendent PAS du modèle pour déterminer la capacité de chacun des prédicteurs utilisés à prédire la variable cible. Veillez à le faire dans le lien prédicteur(s)/variable cible. Et lorsque nous avons éliminé le bruit, nous utilisons les modèles ou leurs comités ...... Mais seulement après avoir éliminé le bruit. Et le fait qu'il n'y ait pas de bruit est déterminé par l'invariance approximative de la performance du modèle entre les échantillons. Ce n'est pas la valeur absolue de l'erreur de prédiction mais le fait de l'égalité approximative des indicateurs de performance, qui (égalité) peut être interprétée comme la preuve de l'absence de surentraînement du modèle. L'absence de surentraînement est notre priorité. Si le modèle est surentraîné sur un ensemble donné de prédicteurs, tout le reste n'est qu'un jeu de chiffres. Seuls les modèles qui ne sont pas recyclés sont intéressants.