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

 
Yuriy Asaulenko:
C'est certainement vrai. Mais le seuil d'entrée élevé augmente toutes sortes de risques. Pas nécessairement financière.

Il est vrai que ce qui précède peut aussi être exprimé sous une forme banale : "le profit est une fonction monotone du risque raisonnable", ce qui s'applique non seulement au commerce, mais à toutes les activités humaines, d'ailleurs on sait que ceux qui pensent ne pas risquer du tout, par exemple en choisissant une profession qui n'est pas compétitive et en comptant sur la pension de l'Etat, sont des gens extrêmes))).


Et qu'est-ce que la vie "sans" risque ? Ce n'est pas du tout intéressant, étant donné que la fin sera la même pour tous.

 
Eh bien, mon article couvre l'intervalle de confiance et ainsi de suite. Je vous recommande vivement de le lire attentivement et vous pourrez en retirer beaucoup de choses.
 
Yuriy Asaulenko:

Par approche systématique, j'entends la compréhension de ce que vous faites et donc la capacité de planifier et de prévoir les résultats de vos actions.

Merci pour cet article. Comme je ne suis pas familier avec un logiciel particulier, il est parfait pour un débutant - simple et clair. La seule chose que je ne comprends pas est quelle méthode est utilisée, la régression ou la classification ?
Naturellement, j'ai immédiatement commencé à l'essayer sur mes propres systèmes. Si une question est gênante, elle sera peut-être résolue au fur et à mesure que le jeu avance.

1. je n'utilise pas les chandeliers pour entrer et sortir - seulement un flux de cotations, et les chandeliers uniquement sur l'historique du chandelier précédent. Bien que je puisse le laisser apprendre par chandelier, c'est toujours un mystère de savoir comment faire pour que Rattle avale le flux de citations du chandelier à l'intérieur du chandelier actuel. Le flux du chandelier doit être analysé d'une manière ou d'une autre.

2. que faire avec les prédicteurs reconstructibles ? Par exemple, avec les lignes de régression et les sigmas. Vous ne pouvez même pas les coller dans l'historique (pour l'apprentissage), nous avons besoin de fonctions qui les calculent à la volée et suppriment leurs dessins précédents de l'historique.

De même, il y a des prédicteurs chatoyants qui n'existent pas toujours et qui sont construits à partir de certains points de la série, et en général peuvent aussi être reconstruits au cours de la pièce.

4 La question de la normalisation des prédicteurs par les points 2 et 3 - c'est fondamentalement impossible.

Et l'historique des prédicteurs doit être calculé au cours de la formation et du travail.

Jusqu'à présent, nous n'avons que de la confusion.


Le cliquetis est bon dans deux cas :

  1. Quand on se connaît pour la première fois.
  2. à essayer... quand on connaît le problème...

1. Régression ou classification. Cela détermine le type de variable cible. Un nombre réel est une régression. Nominal (facteur) - classification.

2. Commencez par la variable cible. Bien que simple en apparence, cette question est complexe. Qu'allez-vous prédire ? Direction ? magnitude, excès, niveau...

3. Prédicteurs. Vous devez prouver qu'ils sont "pertinents" pour la variable cible. C'est la partie la plus difficile. Je passe jusqu'à 70% de mon temps sur cette question. J'ai beaucoup écrit à ce sujet dans ce fil.

4. Je ne suis pas satisfait des statiques. C'est là qu'intervient le fait de laisser à R. rattle facilite le passage à R car il enregistre toutes vos actions sur R et ce code fini peut être utilisé pour la modification. En général, l'étape suivante est le caret.

 
SanSanych Fomenko:


2. Vous devez commencer par la variable cible. Malgré son apparente simplicité, c'est une question assez compliquée. Qu'allez-vous prédire ? Direction ? Magnitude, excès, niveau...

On dirait que tout doit être prédit). Il y a maintenant environ 30 "indicateurs" (plus correctement appelés prédicteurs) dans le modèle (pas MO) + leur traitement mutuel et leur logique. C'était supposé + 10 de plus.

Il n'est plus réaliste de traiter manuellement un tel volume tout en comprenant la contribution de chaque prédicteur à l'ensemble. D'où, d'ailleurs, l'idée d'utiliser le MO. Tout est encore à un stade très précoce.

SanSanych Fomenko:

3. Prédicteurs. Vous devez prouver qu'ils sont "pertinents" pour la variable cible. C'est la plus difficile. Je passe jusqu'à 70% de mon temps sur cette question. J'ai beaucoup écrit à ce sujet dans le fil de discussion.

Oui, je vais devoir l'adapter. On dirait que vous ne pouvez pas simplement l'enfoncer).

SanSanych Fomenko:

4. Je ne suis pas satisfait de la statique. C'est là qu'intervient le fait de laisser à R. rattle simplifie ce type de départ vers R car il enregistre toutes vos actions sur R et ce code prêt peut être utilisé pour la modification. En fait, l'étape suivante est le caret.

Je l'ai.

 

Tableau intéressant, les paquets MO les plus utilisés

classenompaquettéléchargements
survivre.coxphModèle de risque proportionnel de Coxsurvie153681
class.naïveBayesBayes naïfse1071102249
classifier.svmMachines à vecteurs de support (libsvm)e1071102249
classifié.ldaAnalyse discriminante linéaireMASS55852
classer.qdaAnalyse discriminante quadratiqueMASS55852
Forêt aléatoire classifiéeForêt aléatoireForêt aléatoire52094
class.gaussprProcessus gaussienskernlab44812
classifier.ksvmMachines à vecteurs de supportkernlab44812
classifier.lssvmMachine à vecteurs de soutien des moindres carréskernlab44812
cluster.kkmeansKernel K-Meanskernlab44812
regr.rvmMachine vectorielle de pertinencekernlab44812
classifier.cvglmnetGLM avec régularisation Lasso ou Elasticnet (Lambda validée par recoupement)glmnet41179
class.glmnetGLM avec régularisation Lasso ou Elasticnetglmnet41179
surv.cvglmnetGLM avec régularisation (Lambda validée par recoupement)glmnet41179
surv.glmnetGLM avec régularisationglmnet41179
classifier.cforestForêt aléatoire basée sur des arbres d'inférence conditionnellefête36492
class.ctreeArbres d'inférence conditionnelsfête36492
regr.cforestForêt aléatoire basée sur des arbres d'inférence conditionnelsfête36492
regr.mobPartitionnement récursif basé sur un modèle donnant un arbre avec des modèles ajustés associés à chaque nœud terminalpartie, outils de modélisation36492
survivre.cforestForêt aléatoire basée sur des arbres d'inférence conditionnelsfête, survie36492
 
SanSanych Fomenko:

Tableau intéressant, les paquets MO les plus utilisés

classenompaquettéléchargements
survivre.coxphModèle de risque proportionnel de Coxsurvie153681
class.naïveBayesBayes naïfse1071102249
classifier.svmMachines à vecteurs de support (libsvm)e1071102249
classifié.ldaAnalyse discriminante linéaireMASS55852
classer.qdaAnalyse discriminante quadratiqueMASS55852
Forêt aléatoire classifiéeForêt aléatoireForêt aléatoire52094
class.gaussprProcessus gaussienskernlab44812
classifier.ksvmMachines à vecteurs de supportkernlab44812
classifier.lssvmMachine à vecteurs de soutien des moindres carréskernlab44812
cluster.kkmeansKernel K-Meanskernlab44812
regr.rvmMachine vectorielle de pertinencekernlab44812
classifier.cvglmnetGLM avec régularisation Lasso ou Elasticnet (Lambda validée par recoupement)glmnet41179
class.glmnetGLM avec régularisation Lasso ou Elasticnetglmnet41179
surv.cvglmnetGLM avec régularisation (Lambda validée par recoupement)glmnet41179
surv.glmnetGLM avec régularisationglmnet41179
classifier.cforestForêt aléatoire basée sur des arbres d'inférence conditionnelsfête36492
class.ctreeArbres d'inférence conditionnelsfête36492
regr.cforestForêt aléatoire basée sur des arbres d'inférence conditionnellefête36492
regr.mobPartitionnement récursif basé sur un modèle donnant un arbre avec des modèles ajustés associés à chaque nœud terminalpartie, outils de modélisation36492
survivre.cforestForêt aléatoire basée sur des arbres d'inférence conditionnelsfête, survie36492

J'ai oublié d'en inclure un autre dans la liste. Ah oui, j'ai un logiciel unique, on pourrait dire rare :-)
 
Yuriy Asaulenko:

On dirait que tout doit être prédit). Il y a maintenant environ 30 "indicateurs" (plus correctement appelés prédicteurs) dans le modèle (pas MO) + leur traitement mutuel et leur logique. C'était supposé + 10 de plus.

Il n'est plus réaliste de traiter manuellement un tel volume tout en comprenant la contribution de chaque prédicteur à l'ensemble. D'où, d'ailleurs, l'idée d'utiliser le MO. Tout est encore à un stade très précoce.

SanSanych Fomenko:

3. Prédicteurs. Vous devez prouver qu'ils sont "pertinents" pour la variable cible. C'est la plus difficile. Je passe jusqu'à 70% de mon temps sur cette question. J'ai beaucoup écrit à ce sujet dans le fil de discussion.

Oui, je vais devoir l'adapter. On dirait que vous ne pouvez pas simplement l'enfoncer).

SanSanych Fomenko:

4. Je ne suis pas satisfait de la statique. C'est là qu'intervient le fait de laisser à R. rattle simplifie ce type de départ vers R car il enregistre toutes vos actions sur R et ce code prêt peut être utilisé pour la modification. En fait, l'étape suivante est le caret.

Je l'ai.

Je vais ajouter mes 5 kopeck. En fait, vous devez fournir des intrants qui ne causeront pas la variable de sortie mais le prix ! Ainsi, tout TS sera bien formé. Exemples de fonctions cibles :

Les signaux les plus évidents sont les suivants : le signal "mieux", le recul vers un certain niveau, les niveaux d'aujourd'hui qui seront atteints, etc. Lisez mon article, ne soyez pas paresseux, je le mentionne. Ainsi, pour toutes ces fonctions cibles, je donne les mêmes entrées et le fonctionnement de tous les modèles est tout à fait satisfaisant. Et vous pouvez voir comment les mêmes entrées regardent le marché. Ici sur le profit, ici sur le repli, ici sur le niveau. Ils fonctionnent bien, car les entrées sont la raison du prix.

Pour expliquer un peu, la raison est que lorsque des changements dans l'entrée entraînent des changements dans le prix, et non l'inverse. Cela peut être très déroutant, car les statistiques du TS lui-même sont très mauvaises. Parce que le Zscore prend exactement la valeur que le prix lui indique, et non l'inverse. Le delta est la raison du changement de prix, par exemple. :-)

 
Mihail Marchukajtes:

Je vais vous donner mes cinq centimes. Ce que vous devez vraiment faire, c'est fournir des entrées qui ne sont pas la raison de la variable de sortie, mais du PRIX ! Alors n'importe quel TS s'entraînera bien. Exemples de fonctions cibles :

Les signaux les plus évidents sont les suivants : le signal "meilleur", le recul vers un certain niveau, le niveau qui sera atteint aujourd'hui, etc. Lisez mon article, ne soyez pas paresseux, je le mentionne. Ainsi, pour toutes ces fonctions cibles, je donne les mêmes entrées et le fonctionnement de tous les modèles est tout à fait satisfaisant. Et vous pouvez voir comment les mêmes entrées regardent le marché. Ici sur le profit, ici sur le repli, ici sur le niveau. Ils fonctionnent bien, car les entrées sont la raison du prix.

Pour expliquer un peu, la raison est que lorsque des changements dans l'entrée entraînent des changements dans le prix, et non l'inverse. Cela peut être très déroutant, car les statistiques du TS lui-même sont très mauvaises. Parce que le Zscore prend exactement la valeur que le prix lui indique, et non l'inverse. Le delta est la raison du changement de prix, par exemple. :-)

J'ai lu votre article, si vous voulez dire le lien sur la page précédente. Peut-être ai-je manqué quelque chose. Je vais le relire.

Bien sûr, les prédicteurs sont là pour prédire le mouvement des prix. Mais leur superposition + prix donne un signal d'entrée, c'est-à-dire qu'ils prédisent la réaction de la boîte noire initiale (d'entraînement). La question est semblable à celle de la poule ou de l'œuf d'abord ? Peut-être le désaccord est-il purement une question de terminologie.

Du point de vue idéologique, du moins dans les systèmes à logique rigide, il est plus correct de prévoir le prix, alors que la variable de sortie est déjà le résultat du traitement.

 
Yuriy Asaulenko:

Votre article, si vous voulez dire le lien sur la page précédente, a été lu. J'ai peut-être manqué quelque chose. Je vais le relire.

Oui, bien sûr, les prédicteurs sont là pour prédire le mouvement des prix. Mais leur superposition + prix donne un signal d'entrée, c'est-à-dire qu'ils prédisent la réaction de la boîte noire initiale (d'entraînement). La question est semblable à celle de la poule ou de l'œuf d'abord ? Peut-être le désaccord est-il purement une question de terminologie.

D'un point de vue idéologique, du moins dans les systèmes à logique rigide, il est plus correct de prévoir le prix, tandis que la variable de sortie est le résultat du traitement.


Tout à fait, mais vous devez prédire le prix en utilisant les données à partir desquelles il évolue. Il y a une observation très intéressante. Si l'entrée est la raison du prix, alors le résultat du traitement hors échantillon sera légèrement moins bon qu'en formation, c'est-à-dire que NS fonctionne en formation et fonctionne toujours en "Hors échantillon" mais moins bien, quand c'est significatif, quand ce n'est pas le cas. Tout dépend du modèle. Et lorsque vous donnez les données d'entrée qui ne dépendent pas du prix, alors le travail sur le "Hors échantillon" se transforme en CoinFlip, le tirage au sort. On ne sait jamais quand le NS va faire une erreur. Comme cela....
 
Mihail Marchukajtes:

D'accord, mais vous devez prédire le prix à l'aide des données dont il change. Il y a une observation très intéressante. Si l'entrée est la raison du prix, alors le résultat du travail hors échantillon sera légèrement moins bon qu'en formation, c'est-à-dire que NS fonctionne en formation et fonctionne toujours en "Hors échantillon", seulement moins bien, quand c'est significatif, quand ce n'est pas le cas. Tout dépend du modèle. Et lorsque vous alimentez les données d'entrée qui dépendent du prix, l'opération dans le secteur "Hors échantillon" se transforme en un CoinFlip, un tirage au sort. On ne sait jamais quand NS va faire une erreur. Comme cela....

En fait, nous ne disposons d'aucune donnée dont dépendent le prix et ses variations. Et il ne peut pas y en avoir, à moins que nous soyons des initiés. En général, nous recherchons des données indirectes (secondaires) sur l'avenir dans le comportement des prix lui-même. C'est-à-dire que nos données dépendent précisément du prix et de son comportement dans le passé et le présent.

Et cette affirmation :nous devrions prédire le prix avec des données à partir desquelles il change. Vous ne pouvez pas l'accepter. Mais plus la qualité des données d'entrée est élevée, meilleurs sont les résultats, c'est évident.

------------------------------

J'ai commencé à préparer des prédicteurs pour la migration vers MoD. Je voulais tout faire en R. Il s'est avéré que R, malgré toute sa puissance, n'est pas du tout adapté à la modélisation et au traitement du signal. Malheureusement. Tout est extrêmement gênant.

Je vais devoir transférer tout le travail préparatoire à SciLab, où tout est beaucoup plus facile et plus pratique. SciLab est un environnement dont l'interface et l'idéologie sont très proches de R, et qui est conçu pour le traitement des données et la modélisation mathématique. On y trouve tout, de l'ingénierie radio à l'aérodynamique, et beaucoup de mathématiques, ce qui est totalement absent de R. La spécificité, cependant. Les méthodes statistiques et l'exploration de données sont assez bien représentées dans SciLab, mais dans ce sens, SciLab est nettement inférieur à R dans le choix de ces méthodes. Vous ne pouvez pas faire une forêt SanSanitch sur SciLab). Pourtant, il y a beaucoup de paquets installés, mais rien ne semble être proche.

En général, je dois combiner différents IDE pour résoudre différentes tâches et transférer des données entre les environnements. C'est dommage. J'ai voulu tout faire de la meilleure façon (avec R) mais ça a donné la même chose que d'habitude.