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

 
fxsaber #:

Cela varie, bien sûr. Mais très souvent, on peut constater une rupture juste après Sample. Il s'agit peut-être d'une distorsion cognitive, lorsque l'on prête plus d'attention à quelque chose et que l'on a l'impression que cela se produit trop souvent.

Si cela se produit souvent, il ne devrait pas être question d'un changement des modèles globaux, sinon le point de rupture se situerait à peu près à la même date.

Mais peut-être que, d'un point de vue purement statistique, la fréquence de leur apparition change. En d'autres termes, les anciens modèles continuent de fonctionner, mais il y en a de nouveaux pour le modèle, qui n'ont pas été rencontrés auparavant pour un certain nombre de raisons - la plus importante étant qu'ils n'étaient pas présents lors de l'entraînement. Par exemple, la volatilité a changé de manière significative et le code (prédicteurs conditionnels) a des valeurs fixes, ou il y a peu d'observations pour une telle volatilité - elle était stable tout le temps pendant la formation ou dans d'autres plages. En d'autres termes, de nouvelles observations apparaissent dans l'échantillon (si de nouvelles données sont collectées) - nous avons besoin d'un mécanisme pour détecter l'apparition de tels événements.

L'inverse peut également se produire - lorsqu'une stratégie est construite sur des événements rares et que la tendance dure plus d'un an. Récemment, on m'a donné un aperçu d'un tel miracle de construction d'EA.

La personne n'avait vu que l'historique du comportement de l'EA depuis 2016 initialement (croissance de l'or) et se plaignait que quelque chose s'était cassé et qu'il était nécessaire d'optimiser le bon découpage graphique avec l'aide de MO.

Sous le capot, il s'est avéré qu'une douzaine d'indicateurs, dont chacun donnait en moyenne 100 signaux, c'est-à-dire en fait des émissions trouvées détectées par différents indicateurs sur l'historique et combinées dans un groupe commun. Ces valeurs aberrantes continueront-elles à se répéter dans l'historique avec le même résultat probabiliste ?

Oui, il y a des valeurs aberrantes qui ne le sont pas, bien que statistiquement elles le soient, mais la question est de savoir comment les séparer des autres.

fxsaber #:

Le graphique montre trois années de transactions quotidiennes.

Pour les ticks, cela semble beaucoup, mais j'utilise une fourchette plus large - de 10 ans sur les minutes et les signaux ne sont initialement pas si fréquents - il y a un signal de base.

fxsaber #:

Ce que je n'ai pas fait, c'est un graphique pour chaque fourchette. J'ai compté les données statistiques, mais je n'ai pas regardé le graphique lui-même.

Regardez la dynamique des motifs - souvent, il peut s'agir d'amas qui se sont produits dans un intervalle de temps relativement court - par rapport à l'échantillon, il est bon que les observations du motif aient tendance à se répéter sur l'ensemble de l'intervalle.

Autre nuance, avec le même CatBoost - environ 50 % des feuilles meurent sur les nouvelles données, c'est-à-dire que les motifs sur lesquels le modèle a été construit cessent de se produire.

fxsaber #:

Je n'ai pas compris la mise en évidence.

Les deux autres échantillons sont le test et l'examen, qui suivent l'échantillon sur lequel la formation a été effectuée.

Vous avez ensuite demandé pourquoi les utiliser - initialement, le test était utilisé pour contrôler le surentraînement dans CatBoost, c'est-à-dire que lorsque les nouveaux modèles ne donnent pas d'améliorations sur l'échantillon de test, les itérations sur l'amélioration sont arrêtées. Quant à l'examen, il s'agit simplement d'un test indépendant du modèle. Idéalement, vous devriez apprendre à sélectionner un modèle qui sera performant à l'examen en l'entraînant et en le testant - il s'agit d'une question distincte.

Bien entendu, si la tâche de sélection du modèle est résolue, il est possible d'augmenter l'échantillon de formation, si nécessaire, ou au moins de rapprocher les échantillons de formation et de test de la date actuelle.

 
Aleksey Vyazmikin #:

Quels tests de signification proposez-vous ? Je ne dis pas que l'algorithme de sélection quantique des segments est parfait, au contraire - beaucoup de déchets y sont introduits et je veux l'améliorer.

Je ne comprends pas sur quels signes vous avez décidé qu'il s'agissait d'une sorte de "pi-hacking" - et quelle partie exactement, la sélection des segments quantiques ou le filtrage des chaînes, qui sont bien et sans formation filtrées par les segments quantiques (c'est-à-dire les graphes que j'ai construits) ? Oui, la méthode est un peu différente de l'approche courante de la construction de modèles en bois, mais pas vraiment, le concept reste le même.

En ce qui concerne l'exemple du SB, il y a deux considérations à prendre en compte :

1. Si le processus est inconnu et qu'il n'y a que des données, alors on peut considérer qu'il y a une meilleure heure pour trader. Ou existe-t-il une considération permettant de rejeter cette hypothèse ?

2. Si ces observations ont été relativement uniformément réparties dans le temps (historique des événements), il s'agit plutôt d'une erreur du générateur de nombres aléatoires.

Pour la formation, j'utilise des échantillons sur une longue période - généralement au moins 10 ans.

Je peux suggérer de modifier mon expérience. Soit dix boîtes contenant des chiffres de 1 à 10, cent boules blanches et cent boules noires (les chiffres 10 et 100 sont pris conditionnellement). Les boules sont disposées d'une manière ou d'une autre dans les boîtes, puis on regarde combien de boules il y a dans chaque boîte et on essaie de comprendre s'il y a une régularité dans l'algorithme de disposition - dans les boîtes avec quels nombres il y a une prédominance de boules d'une certaine couleur.

Ainsi, si chaque boule (des deux couleurs) est placée au hasard et avec une probabilité égale de 0,1 dans l'un des tiroirs, il n'y aura pas d'uniformité dans le rapport des couleurs ! Il y aura presque toujours une boîte où il n'y aura presque que du blanc et une autre où il n'y aura presque que du noir. Le problème n'est pas du tout lié à la qualité du DSP, vous pouvez prendre un vrai DSP quantique et tout sera identique. Il s'agit de la nature même du hasard probabiliste. Il y aura toujours une irrégularité, mais le nombre de boîtes où elle sera trouvée lors de la disposition suivante est absolument imprévisible. Il en va de même dans l'exemple précédent avec l'heure de la semaine (l'heure de la semaine est l'analogue du numéro de la case).

Il y a deux façons de procéder. Soit on essaie de montrer que l'inégalité dans la pratique est beaucoup plus grande qu'elle ne le serait à probabilité égale. Cela se fait au moyen de tests statistiques. Soit être sûr que la non-uniformité, bien que faible, est due à une régularité qui ne se manifeste que faiblement en raison du bruit. Mais c'est une question de foi et de pratique, et si cela fonctionne, d'accord.

J'espère qu'il est clair que les nombres de la boîte (heure de la semaine) sont une analogie à vos quanta.

 
Aleksey Nikolayev #:

Je peux vous proposer de modifier mon expérience. Soit dix boîtes portant des numéros de 1 à 10, cent boules blanches et cent boules noires (les numéros 10 et 100 sont pris par convention). Les boules sont disposées d'une manière ou d'une autre dans les boîtes, puis vous regardez combien de boules il y a dans chaque boîte et vous essayez de comprendre s'il y a une régularité dans l'algorithme de disposition - dans les boîtes avec quels nombres il y a une prédominance de boules d'une certaine couleur.

Ainsi, si chaque boule (des deux couleurs) est placée au hasard et avec une probabilité égale de 0,1 dans l'un des tiroirs, il n'y aura pas d'uniformité dans le rapport des couleurs ! Il y aura presque toujours une boîte où il n'y aura presque que du blanc et une autre où il n'y aura presque que du noir. Le problème n'est pas du tout lié à la qualité du DSP, vous pouvez prendre un vrai DSP quantique et tout sera identique. Il s'agit de la nature même du hasard probabiliste. Il y aura toujours une irrégularité, mais le nombre de boîtes où elle sera trouvée lors de la disposition suivante est absolument imprévisible. C'est la même chose dans l'exemple précédent avec l'heure de la semaine (l'heure de la semaine est un analogue du numéro de la boîte).

Il y a deux façons de procéder. Soit on essaie de montrer que l'inégalité dans la pratique est beaucoup plus grande qu'elle ne le serait à probabilité égale. Cela se fait au moyen de tests statistiques. Soit s'assurer que la non-uniformité, bien que faible, est due à une certaine régularité, qui ne se manifeste que faiblement en raison du bruit. Mais c'est déjà une question de foi et de pratique et si ça marche, ok.

J'espère qu'il est clair que les nombres de la boîte (heure de la semaine) sont une analogie à vos quanta.

Si nous parlons de SB, alors de quel type de modèles pouvons-nous parler, car l'essence des modèles (en bois ou neuronaux) est de trouver des modèles dans les données.

Concernant le fait qu'il peut y avoir une majorité de boules de la même couleur dans une boîte - je fais l'expérience 10 fois et à chaque fois je reçois les résultats (j'ai divisé l'échantillon en 10 parties), et seulement si la plupart d'entre elles sont similaires dans le résultat, je sélectionne un segment quantique. Quelle est la probabilité qu'après avoir fait l'expérience 10 fois, nous trouvions plus de boules d'une certaine couleur dans la même boîte que dans d'autres boîtes ?

Connaissez-vous un autre test statistique qui conviendrait à ce cas ?

On ne peut être sûr de rien, plus sur SB tho....

Je cherche des méthodes qui ajouteront à la certitude.

En outre, je suppose que le segment quantique sélectionné a toujours plus de potentiel de division non aléatoire que l'autre partie du prédicteur - je ne sais pas comment l'exprimer sous forme de formule ou d'une sorte d'estimation. Je perçois abstraitement un tel segment comme une veine de minerai/métal précieux à l'intérieur d'un galet.....

 

Je ne sais pas comment rendre les choses plus claires, c'est pourquoi je montre schématiquement deux divisions d'arbres.

Les barres verticales symbolisent le temps (mais je ne l'ai pas reproduit à l'identique).

La ligne épaisse représente l'emplacement standard de la division des prédicteurs par le modèle arborescent.

Le deuxième prédicteur (à gauche sur la figure) montre que l'intervalle de 2 à 3 inclus présente la plus grande accumulation d'unités, que j'ai mise en évidence en couleur.

Après la première division, j'ai mis en évidence en couleur bleuâtre les chiffres qui restaient de la première division (disons qu'il s'agit de la partie droite, où les unités sont allées le long de la branche).

Ainsi, si nous comptons le nombre total d'unités restantes après la première division, la division devrait se faire exactement au milieu et s'étendre de 1 à 2 inclus, mais la première colonne contient les indices statistiques les plus faibles sur les réponses en termes absolus, ainsi que 4 - seulement 8 chacun, tandis que les colonnes centrales contiennent 10 et 12. La coupure quantique peut déplacer les colonnes 1 et 4 d'un côté et les colonnes 2 et 3 de l'autre, ce qui ne représente qu'une unité de moins au total que sans la coupure quantique, mais il y a initialement 8 unités de plus observées dans cet intervalle, ce qui semble significatif. En d'autres termes, on s'attend à ce que cette plage continue à contenir plus d'unités que les deux plages voisines.

Avez-vous réussi à expliquer l'essence de l'idée de sélection quantique des segments ?

Je dois ajouter : il s'agit d'une convention - qui autorise les erreurs arithmétiques - ce qui compte ici, c'est le texte et la logique, pas les chiffres.
 

Eh bien, en termes quotidiens, nous avons un prédicteur avec une plage de -162 et +162 - qui envoie des signaux.

Avec l'aide de la détection des segments quantiques, nous pouvons trouver les plages de niveaux, lorsque la frappe qui se produit le plus souvent, par exemple, rebondit vers les niveaux inférieurs. Les sections restantes qui ne sont pas proches d'un niveau peuvent simplement être classées dans l'ordre. Et il s'avère qu'un prédicteur, mais il y a deux façons de représenter les données à des fins différentes - en tant qu'option.


 
Aleksey Vyazmikin #:

Connaissez-vous un autre test statistique qui conviendrait à ce cas ?

Le test le plus universel est probablement celui de Monte Carlo. Simulez à plusieurs reprises la situation de classes manifestement inséparables et voyez comment vos quanta se comportent en moyenne. S'ils trouvent quelque chose, c'est qu'il s'agit d'un cas d'auto-défaite.

Les classes indivisibles peuvent être obtenues en prenant des échantillons générés avec la même distribution que les caractéristiques.

 
Aleksey Nikolayev #:

La méthode la plus universelle est probablement celle de Monte Carlo. Simulez à plusieurs reprises la situation de classes manifestement inséparables et voyez comment vos quanta se comportent en moyenne. S'ils trouvent quelque chose, c'est qu'il s'agit d'une auto-illusion.

Les classes indivisibles peuvent être obtenues en prenant des échantillons générés avec la même distribution que les caractéristiques.

Monte Carlo consiste à mélanger des séquences et à obtenir des chaînes de manière aléatoire - en quoi cela est-il utile ? Et il n'est probablement pas correct de mélanger des séquences si l'on suppose qu'elles ne sont pas aléatoires..... et les séries chronologiques ne sont pas aléatoires. Je ne comprends pas l'idée, si vous pouviez la décrire plus en détail.

Pouvez-vous créer un tel échantillon pour le test en csv ? Je pense que c'est assez rapide avec R. Sinon, je vais passer une autre journée à écrire du code, et je ne sais pas si j'y arriverai.

 
Aleksey Vyazmikin #:

Monte Carlo consiste à mélanger des séquences et à obtenir des chaînes de manière aléatoire - en quoi cela est-il utile ? Et il n'est probablement pas correct de mélanger des séquences si nous supposons qu'elles ne sont pas aléatoires.... et ce n'est pas aléatoire dans les séries temporelles. Je ne comprends pas ces idées, si vous pouvez les décrire plus en détail.

Pouvez-vous créer un tel échantillon pour le test en csv ? Je pense que c'est assez rapide avec R. Sinon, je vais passer une autre journée à écrire du code, et je ne sais pas si j'y arriverai.

Vous pouvez le faire dans MT5, la bibliothèque statistique a des fonctions pour générer des échantillons pour différentes distributions. Par exemple, vous pouvez générer un échantillon normal de 200 comme signe dans la première colonne, et dans la deuxième colonne vous pouvez faire des marques par sélection aléatoire avec une probabilité de 0,5.

Il serait préférable d'automatiser cette opération d'une manière ou d'une autre dans votre progiciel, car vous devez le faire plusieurs fois et calculer quelque chose à chaque fois - vous seul savez quoi.

 
Aleksey Nikolayev #:

Vous pouvez le faire dans MT5, la bibliothèque statistique a des fonctions pour générer des échantillons pour différentes distributions. Par exemple, générez un échantillon normal de 200 comme signe dans la première colonne, et dans la deuxième colonne faites des marques par sélection aléatoire avec une probabilité de 0,5 chacune.

Il serait préférable d'automatiser cette opération d'une manière ou d'une autre dans votre progiciel, car vous devez le faire plusieurs fois et calculer quelque chose à chaque fois - vous seul savez quoi.

Je n'ai jamais utilisé cette fonction auparavant.

Qu'en est-il de cette fonction ?

Генерирует псевдослучайные величины, распределенные по нормальному закону с параметрами mu и sigmа. В случае ошибки возвращает false. Аналог rnorm() в R. 



bool  MathRandomNormal( 
   const double  mu,             // математическое ожидание 
   const double  sigma,          // среднеквадратическое отклонение 
   const int     data_count,     // количество необходимых значений 
   double&       result[]        // массив для получения псевдослучайных величин 
   );
 
 
Aleksey Vyazmikin #:

Tout comme j'ai écrit sur le fait que le dépassement aléatoire est une approche improductive.

J'utilise le suréchantillonnage avec l'élément aléatoire de la sélection des prédicteurs lorsque je teste le potentiel d'échantillonnage, et je l'utilise depuis de nombreuses années dans CatBoost.

La randomisation ne justifie pas que l'on s'attende à ce que le modèle continue à fonctionner, parce que les réponses des prédicteurs ont été randomisées.

On risque de s'enliser à nouveau dans des querelles inutiles. Quelle est la différence entre un ensemble trouvé au hasard qui fonctionne sur oos et un autre qui a été inventé au prix des pires souffrances mentales, mais aussi sans justification fondamentale ? Quand la méthode de validation est la même. Question rhétorique.

Quelle est la différence entre une recherche aléatoire et une recherche avec un élément de choix aléatoire ? ))