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

 
Aleksey Vyazmikin:

J'ai une question sur la variable cible.

Si notre variable cible est le résultat financier d'une transaction, il est alors raisonnable de normaliser ce résultat, comme je le pensais. Mais ici, je cherche des informations sur le site web, et partout il est dit que la variable cible doit avoir deux valeurs - achat ou vente. Et si je subis une perte dans tous les cas, que ce soit à l'achat ou à la vente (et cela arrive !), pourquoi devrais-je supprimer toutes les variables négatives ? Et si c'est la présence de variants négatifs qui affecte les statistiques ?

En général, j'aimerais savoir quels réseaux fonctionnent (et où les trouver ?) dans le cas extrême avec un déclencheur achat/vente/rien, et dans le meilleur des cas avec une fonction (précédemment j'ai demandé une fonction ici car je cherchais une solution théorique, mais maintenant j'ai fait un script qui rassemble des prédicteurs) qui fait le classement.

> Si notre variable cible est le résultat financier d'une transaction, il est raisonnable de normaliser ce résultat, comme je le pensais.

Je ne normalise pas les objectifs, je les utilise tels qu'ils sont (augmentation des prix). Si vous utilisez la neuronique, il est préférable de normaliser les prédicteurs (autre nom pour les entrées, les puces). Pour la forêt, d'une manière ou d'une autre, je n'ai pas vraiment besoin de m'embêter avec la normalisation, cela fonctionne bien dans tous les cas.

Notez qu'un neuroneka a très souvent une sortie qui passe également par une fonction d'activation, et ne peut être que dans (0;1) pour une sigmoïde. Ensuite, la cible doit également être normalisée si elle ne se situe pas dans cet intervalle. Ou nous pourrions supprimer l'activation de la sortie pour qu'elle puisse prendre n'importe quelle valeur.


> Mais ici je cherche des informations sur le site, et partout ailleurs on parle de la façon dont la variable cible doit avoir deux valeurs - achat ou vente.

C'est ce qu'on appelle la classification. Quand au lieu du prix - juste un ensemble (0 et 1 ; -1 et 1 ; "acheter" et "vendre").
Si vous prédisez le prix lui-même ou son augmentation, il ne s'agit pas de classification, mais de régression.


> Si je subirai une perte dans tous les cas - que ce soit à l'achat ou à la vente (cela arrive !), alors pourquoi devrais-je supprimer tous les choix négatifs ? Et si c'était la présence d'options négatives qui affectait les statistiques ?

Tout dépend de vos prédicteurs, vous ne pouvez trouver la réponse que de manière expérimentale, en essayant les deux variantes. Par exemple, j'ai essayé de créer ma propre fonction de fitness pour forest - j'ai fait un diagramme d'échange (en tenant compte du spread) en utilisant les prévisions de forest et j'ai utilisé le diagramme pour définir le sharpe ratio, c'était la valeur que j'ai essayé d'augmenter comme résultat.


> En général, j'aimerais savoir quels réseaux fonctionnent.

Je suis en train de prendre des prix ouverts et de les utiliser avec des indicateurs (faits maison) pour créer de nouvelles fonctionnalités. J'entraîne les neurones qui prédisent l'augmentation du prix par barre. J'ai besoin de beaucoup de temps pour créer de nouveaux indicateurs, sinon le modèle ne pourra pas battre le spread.

En regardant dans vos fichiers, je vois que vous avez déjà beaucoup de prédicteurs. Si votre cible est juste un ensemble de -1,0,1 - utilisez la forêt. Si vous voulez prédire le prix - mieux vaut utiliser un neurone.

 
Maxim Dmitrievsky:

Faux... oui, les points où le profit maximal est possible, bien sûr, par exemple.

pour la classification, un perseptron multicouche avec une couche de sortie softmax (sorties des probabilités d'appartenance à une classe)

Avez-vous lu ceci ? https://www.mql5.com/ru/articles/497 sur l'exemple du 1er neurone. Et puis imaginez qu'il y en a beaucoup, c'est tout le réseau neuronal.

C'est exactement les fonctions de seuil que vous demandiez.

Eh bien, ça ressemble à un bon résultat, oui.

Cet article m'avait échappé - merci de l'avoir signalé, certaines choses sont devenues plus claires ! Mais pas tout à la fois - il faut lire de telles choses encore et encore... J'ai compris l'étalement des coefficients et l'écoute de leur somme avec une fonction.


elibrarius:

J'ai essayé le 1er fichier, en le divisant en 3 parties :


Formation
Prédiction :
Réel 0 1
0 28107 1244
1 3045 4119

Test 1

Prédiction :
Réel 0 1
0 5950 356
1 742 776

Actuel 2

Prédiction :
Réel 0 1
0 5945 333
1 779 769

Calculé sur nnet avec 10 neurones dans une couche cachée (NS du package Rattle de R)

Pire que votre forêt, mais pas mauvais. Le deuxième dossier peut donner des résultats similaires.

Merci ! Je pense que ces résultats peuvent être utilisés comme un filtre, c'est-à-dire pour interdire les échanges - car deviner des zéros est plus stable.

 
Aleksey Vyazmikin:

Cet article m'a échappé - merci de l'avoir signalé, cela a permis d'éclaircir certaines choses ! Mais pas tout d'un coup - il faut lire de telles choses plusieurs fois... Je comprends les coefficients de diffusion et l'écoute de leur somme par une fonction.


Merci ! Je pense que ces résultats peuvent être utilisés comme un filtre, c'est-à-dire pour interdire les échanges - car deviner les zéros est plus stable.

En réalité, ils sont plus nombreux - c'est pourquoi il est facile de les deviner).

 
Dr. Trader:

> Si notre variable cible est le résultat financier de la transaction, il est raisonnable de normaliser ce résultat, comme je le pensais

Je ne normalise pas les objectifs, je les utilise tels quels (gains de prix). Si vous utilisez la neuronique, alors il est préférable de normaliser les prédicteurs (un autre nom est inputs, chips). Pour la forêt en quelque sorte pas vraiment besoin de se soucier de la normalisation, il fonctionne bien dans tous les cas.

Hm, et au contraire, je pensais, que pour la forêt le plus important était de faire des prédicteurs logiques, comme oui / non, c'est ce que j'ai fait et c'est pourquoi il y en a beaucoup, et donc il y en aurait beaucoup moins. Je vais essayer de le faire différemment - je vais donner 8 valeurs à un prédicteur et voir si le résultat change.

Dr. Trader:

Notez que très souvent la sortie d'un neuronekey passe aussi la fonction d'activation, et ne peut être que dans (0;1) pour une sigmoïde. Ensuite, la cible doit également être normalisée si elle ne se situe pas dans cet intervalle. Ou nous pouvons supprimer l'activation de la sortie pour qu'elle puisse prendre n'importe quelle valeur.

Que voulez-vous dire par supprimer l'activation pour l'entrée ? Je ne sais pas ce que c'est - l'activation...

Dr. Trader:

> Mais voici que je cherche des informations sur le site, et partout il est dit que la variable cible doit avoir deux valeurs - acheter ou vendre.

Cela s'appelle la classification. Quand au lieu du prix - juste un ensemble (0 et 1 ; -1 et 1 ; "acheter" et "vendre")
Si vous prédisez le prix lui-même ou son incrément, cela s'appelle une régression, et non une classification.

Oui, mais si je n'ai pas besoin d'acheter ou de vendre, mais simplement de sauter un signal, alors que faire ? J'ai donc décidé de faire deux NS distinctes afin de tenir compte du moment - et non de faire du commerce.

Dr. Trader:

> Si, dans tous les cas, je subis une perte à l'achat ou à la vente (cela peut arriver !), dois-je simplement supprimer les variantes négatives ? Et si c'est la présence d'options négatives qui affecte les statistiques ?

Tout dépend de vos prédicteurs, vous ne pouvez trouver la réponse que de manière expérimentale, en essayant les deux variantes. Par exemple, j'ai essayé de construire ma fonction de fitness pour forest - j'ai fait un diagramme de transaction (en tenant compte du spread) en utilisant les prévisions de forest et j'ai utilisé le diagramme pour définir le ratio de sharpe qui était la valeur que j'ai essayé d'augmenter en conséquence.

C'est à dire que pour certains prédicteurs l'historique n'est pas très important, alors que pour d'autres il est critique, et comme il peut y avoir les deux, il s'avère que couper n'est pas souhaitable....

Dr. Trader:


Maintenant, je prends les prix ouverts et les utilise avec des indicateurs (faits maison) pour créer de nouvelles fonctionnalités. Je forme des neurones qui prédisent l'augmentation du prix par barre en utilisant ces puces. Il faut beaucoup de temps pour créer de nouveaux indicateurs, sinon le modèle ne pourra pas battre le spread.

En partie, la plupart de mes fonctionnalités fonctionnent avec la prédiction, mais pas du prix mais de son niveau - j'utilise mon ATR, mais un standard devrait fonctionner de la même manière.

 
elibrarius:

En réalité, ils sont plus nombreux, c'est pourquoi il est facile de les deviner).

Peu importe donc - l'essentiel est de savoir dans quelles zones le risque d'échange est accru, ce qu'ils ont en quelque sorte démontré.

L'autre chose est que je n'ai aucune idée de la façon de transformer tout cela en un même indicateur - est-il vraiment nécessaire de réécrire toutes les règles qui ont été formées ou quoi ?

 
Aleksey Vyazmikin:

Hmm, je pensais qu'il était plus important pour la forêt de rendre les prédicteurs logiques, comme oui/non, ce que j'ai fait et c'est pourquoi il y en a tant, mais ce serait beaucoup moins. Je vais essayer de procéder différemment - je vais donner à un prédicteur 8 valeurs et voir si le résultat change.

La forêt est pire avec des caractéristiques éparses, il y aura peu de splits.

Et s'il y a beaucoup de caractéristiques éparses et que l'une d'entre elles n'est pas éparse, alors la forêt s'adaptera trop à elle et les importations à partir de celle-ci seront les plus importantes, et les autres auront très peu d'effet sur le résultat.

 
Maxim Dmitrievsky:

Une forêt fonctionne moins bien avec des caractéristiques éparses, il y aura peu de scissions.

De plus, s'il y a beaucoup de caractéristiques éparses et que l'une d'entre elles n'est pas éparse, alors la forêt s'adaptera trop à cette caractéristique et elle aura les plus grandes importations, et les autres auront très peu d'effet sur le résultat.

Forêt normale ou forêt aléatoire, ou les deux ?

J'ai mis le Rattle et R (bien, et glitches la chose entière ...), et maintenant je ne peux pas comprendre comment faire un réglage comparable, comme dans la capture d'écran ci-dessous ? Parce que les paramètres standard de Rattle donnaient des résultats moins bons que le programme que j'utilisais auparavant.


 
Maxim Dmitrievsky:

Une forêt fonctionne moins bien avec des caractéristiques éparses, il y aura peu de scissions.

et s'il y a beaucoup de signes épars et un signe non épars parmi eux, la forêt s'adaptera trop à ce signe et il aura les plus grandes importations, et les autres auront très peu d'effet sur le résultat.

Les mêmes indications, les mêmes paramètres, mais les indications sont réduites, et non élargies comme auparavant.

Ancienne variante

Nouvelle variante

J'ai trouvé un peu plus de zéros, mais beaucoup moins de uns - presque deux fois plus ! Je ne pensais pas que les variables réduites et étendues pouvaient avoir un tel effet...

 
Aleksey Vyazmikin:

Des bois normaux ou des bois aléatoires, ou les deux ?

J'ai mis Rattle et R (quel pépin tout ça...), et maintenant je n'arrive pas à trouver comment faire des réglages comparables, comme dans la capture d'écran ci-dessous ? Parce que les paramètres par défaut de Rattle donnaient de moins bons résultats que le programme que j'utilisais auparavant.


La forêt normale, la forêt aléatoire et la forêt d'arbres sont les mêmes :) La forêt est un ensemble d'arbres

sont-ils moins nombreux ou quoi ? sont-ils moins nombreux ? sont-ils rares et/ou catégoriques comme des uns et des zéros (c'est un haut niveau de compréhension)

Je n'utilise pas R parce que les gourous locaux de leurs lunettes dorées me l'ont déconseillé.

de toute façon, tant que vous vous donnez la peine, étudiez la théorie de ce que sont les arbres et de ce qu'est une forêt d'arbres.

https://habr.com/post/171759/

https://habr.com/post/116385/

Si vous voulez changer les paramètres de Rattle, vous devriez le prendre à Sanych, mais je ne sais pas pourquoi, vous voulez juste vous faire plaisir, ou vous embêter avec l'intégration de l'EA sur mt5 et R

https://www.mql5.com/ru/articles/1165

Энтропия и деревья принятия решений
Энтропия и деревья принятия решений
  • 2011.03.13
  • habr.com
Деревья принятия решений являются удобным инструментом в тех случаях, когда требуется не просто классифицировать данные, но ещё и объяснить почему тот или иной объект отнесён к какому-либо классу. Давайте сначала, для полноты картины, рассмотрим природу энтропии и некоторые её свойства. Затем, на простом примере, увидим каким образом...
 
Vizard_:

Sur vos données, le fichier Pred_004_Buy divisé en deux, vous pouvez obtenir 0,85 de front.
Les données sont des déchets et il vaut mieux les jeter. Le reste, nous le rattrapons par nous-mêmes. En silence...

Pourquoi les données sont-elles nulles ? C'est un très bon résultat.