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

 
elibrarius:
Si c'est unique, c'est de travers. Par exemple, il existe 100 chaînes de caractères dont 10 sont uniques, parmi lesquelles 2 sont des chaînes de 45 et 8 des chaînes de 1. Divisé par 5 quanta, il est possible que seuls 5 par 1 soient choisis, et que les 2 plus représentatifs (45 chacun) soient ignorés.

Différentes approches fonctionnent différemment et efficacement sur différents prédicteurs, c'est pourquoi je veux disposer de différents algorithmes pour comprendre comment mieux les choisir. Je partagerai mes recherches si vous pouvez traduire le code en MT5.

 
Aleksey Vyazmikin:

Avec une distribution uniforme, je vois - je créerais d'abord un tableau de valeurs uniques et l'utiliserais pour couper.

Mais il existe d'autres méthodes pour diviser la grille :

Uniforme - il suffit de diviser la plage de valeurs, par exemple les valeurs d'une colonne de 0 à 100, le quantum de l'étape = 100/255 = 0,39 seulement pas en lignes, mais en valeurs. C'est-à-dire 0,0.39,0.78 .... 99.61

Vous pouvez ensuite utiliser ces valeurs pour trouver celles qui sont réellement présentes dans la colonne et supprimer les doublons.


UniformAndQuantiles - il suffit de chercher la moitié de 255/2 = 127 quanta par la méthode 1 et 128 par la méthode 2, et de les combiner en un seul tableau.

Les 3 autres méthodes sont compliquées - je n'y ai pas jeté un œil.

 
Aleksey Vyazmikin:

Ce sont les méthodes de quantification de l'échantillonnage pour CatBoost - ce sont les limites par lesquelles l'énumération/apprentissage procède ensuite.

Mes expériences montrent que la grille devrait être choisie pour chaque prédicteur séparément, puis un gain de qualité est observé, mais CatBoost ne peut pas le faire et je ne peux pas construire une grille et je dois construire des grilles et les télécharger en csv et ensuite les itérer pour évaluer le comportement de la cible dans celles-ci. Je pense que c'est une puce très prometteuse, mais il faut traduire le code en MQL.

1) Voici comment cela fonctionne. Il prend une colonne séparée triée et la divise en quanta.

2) C'est exactement ce qu'il fait.

 

Uniforme - il suffit de diviser la plage de valeurs, par exemple les valeurs d'une colonne de 0 à 100, le quantum de l'étape = 100/255 = 0,39 uniquement pas en lignes, mais en valeurs. C'est-à-dire 0,0.39,0.78 .... 99.61

Vous pouvez ensuite utiliser ces valeurs pour trouver les valeurs réelles présentes dans la colonne et supprimer les doublons.


UniformAndQuantiles - il suffit de chercher la moitié de 255/2 = 127 quanta par la méthode 1 et 128 par la méthode 2, et de les combiner en un seul tableau.

Les trois autres méthodes sont compliquées - je ne les ai pas étudiées.

Ce sont des complexes qui nous intéressent :)

Et sur UniformAndQuantiles je connais la théorie, mais comment le faire dans la vie réelle je ne comprends pas - comment définir la zone où tant de quantum et tant de quantiles. Ici, je ne comprends pas - ou jusqu'au milieu par une méthode, et après par une autre - mais c'est fou.

 
Aleksey Vyazmikin:

Le choix de la bonne ventilation a un impact important sur le résultat.

Voici un exemple sur Recall - jusqu'à 50% d'écart - pour moi c'est significatif.

En augmentant les limites de 8 à 512 par incréments de 512 - mais pas dans l'ordre sur l'histogramme - j'ai les noms un peu gênants.


Je suis encore en train d'expérimenter la sélection de mailles, mais il est déjà évident qu'il existe différents prédicteurs pour lesquels vous avez besoin de différentes mailles pour suivre la logique, et pas seulement pour s'adapter.

Prenez 65535 quanta et ne vous donnez pas la peine. Les calculs seront aussi précis que possible.

 
Aleksey Vyazmikin:

Ce sont les complexes qui m'intéressent :)

Et sur UniformAndQuantiles je connais la théorie, mais je ne comprends pas comment le faire dans la vie réelle - comment définir la zone où l'on quantifie et où l'on quantifie. Ici je ne comprends pas - ou jusqu'au milieu par une méthode, et après une autre - mais c'est fou.

Oui

 
elibrarius:

1) Voici comment cela fonctionne. Il prend une colonne séparée, la trie et la divise en quanta.

2) C'est exactement ce qu'il fait- qu'est-ce qui vous fait croire le contraire ?

Il ne sait pas comment estimer la relation entre l'objectif et l'ensemble des valeurs lorsqu'elles sont quantifiées. Il divise la grille en un nombre donné de segments, si possible, pour tous les prédicteurs, ce qui n'est pas toujours nécessaire. Mais CatBoost sait comment travailler avec une grille de quantification alimentée (préparée séparément), ce que j'utilise.

 
elibrarius:

Prenez 65535 quanta et ne vous en faites pas. Les calculs seront aussi précis que possible.

Non, ce sera un modèle d'ajustement, pas un modèle significatif !

 
elibrarius:

Oui

C'est assez bizarre.

 
Aleksey Vyazmikin:

Il ne sait pas comment estimer la relation entre l'objectif et l'ensemble des valeurs lors de la quantification. La grille est divisée en un nombre donné de sections, si possible, pour tous les prédicteurs, ce qui n'est pas toujours nécessaire. Mais CatBoost sait comment travailler avec la grille de quantification soumise (préparée séparément), ce que j'utilise.

Et tu sais comment ?