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

 
Dr. Trader:

J'ai encore besoin de beaucoup de formation pour pouvoir tenir une conversation avec vous sur ce sujet... Et vous n'êtes pas obligé d'utiliser la neuronique, vous pouvez aussi utiliser Forrest, c'est plus facile d'attacher la cible.

 
Dr. Trader:
...

En général, tout, mais il y a une nuance - les optimiseurs que j'ai essayés ne peuvent pas gérer les poids, ils se contentent de trouver un minimum local où tous les résultats seront égaux à 0,5 pour minimiser l'erreur moyenne, et à ce point ils sont bloqués. Vous devez appliquer une certaine astuce ici, je n'ai pas été plus loin que ça.
Plus la structure des neurones est complexe - plus il y aura de poids, et plus il sera difficile pour l'algorithme d'optimisation de les trouver, pour les grands neurones ils deviennent tout simplement stupides et n'améliorent presque pas le résultat initial.

N'avez-vous pas récemment fait la démonstration de votre super-algorithme sur R dans un fil où l'optimiseur MT était discuté ? Ça ne marche pas ?
 
Dr. Trader:

La réponse n'est pas si simple. Voici une façon de procéder, par exemple, avec un neurone, mais il faut comprendre comment le neurone fonctionne, quelles formules il possède, etc.

Supposons que vous ayez un simple neurone...

код

Le code ci-dessus peut être poussé dans l'optimiseur...

Quelle histoire tu racontes ! ))))

Pourquoi n'avez-vous pas aimé le backprop, si ce n'est pas un secret ? Plus précisément, dans le cas d'une couche et d'une cible, tout est grandement simplifié, il faut itérativement soustraire l'erreur multipliée par l'entrée jusqu'à convergence, on appelle la règle delta, ou la règle Heb, je ne me souviens plus exactement. Wt = Wt-1 - lernrate*error*Entrée, en général, la descente de gradient habituelle

 
Andrey Dik:
N'est-ce pas vous qui, il n'y a pas si longtemps, dans une branche où l'on discutait de l'optimiseur MT, avez fait la démonstration de votre super-algorithme sur R ? Ça ne marche pas ?

Moi, oui, non.

Jene sais pas :

Quel est le problème avec le backprop, si ce n'est pas un secret ?

Je sais comment faire de la descente par gradient, mais cela nécessite une cible pour chaque exemple d'entraînement spécifique - considérer le résultat pour l'exemple d'entraînement, et tirer les poids dans la direction de la dérivée pour rendre le résultat plus proche de la réalité. Et ainsi de suite sur tous les exemples de formation.

Et ce code était la réponse à la question de savoir ce qu'il fallait faire si l'on ne fixait pas d'objectif et que l'on voulait simplement apprendre au neurone à trader du côté des bénéfices. Laissez-le juger par lui-même où il est préférable d'acheter ou de vendre, tant que le bénéfice est rentable.
Nous lui donnons donc des incréments d'ohlc par barres, nous obtenons des prédictions sur ce qu'il faut faire sur la prochaine barre, nous simulons le trading sur la base des prédictions et nous trouvons le ratio de trading scarpe. Ce brassage de rapport est la seule estimation qui est donnée au neurone sur l'ensemble des données d'entrée.
L'optimiseur va optimiser les poids du neurone de façon à ce que le ratio sharpe augmente.
Si vous trouvez des gradients de poids par rapport au ratio de sharpe - vous pouvez faire une descente de gradient, ce sera beaucoup mieux que de changer les poids aveuglément.

 
Dr. Trader:

Moi, oui, non.


Parmi les centaines de milliers de paquets dans R, n'y en a-t-il pas un qui puisse faire le travail avec des résultats satisfaisants ?
 
Andrey Dik:

Parmi les centaines de milliers de paquets dans R, n'y en a-t-il pas un qui puisse résoudre le problème avec des résultats satisfaisants ?

Il existe des paquets qui sont garantis pour résoudre ce problème, mais je n'ai pas le temps d'attendre des mois pour un résultat, j'ai idéalement besoin de le faire en un week-end.
Cette technologie n'est pas destinée à l'ordinateur familial.

 
Dr. Trader:

Il existe des paquets qui sont garantis pour résoudre ce problème, mais je n'ai pas le temps d'attendre des mois pour un résultat, j'ai idéalement besoin de le faire en un week-end.
Cette technologie n'est pas destinée à l'ordinateur familial.

Cela me rappelle une vieille blague d'automobilistes :

- Quoi, la voiture ne démarre pas bien ?

- Non, ça commence bien, mais ça prend beaucoup de temps.

Si la technologie ne permet pas de résoudre le problème dans un délai acceptable, cela signifie que la technologie n'existe pas.



Combien de paramètres à optimiser, dans quelle fourchette et par quels incréments ?
 

a téléchargé les données historiques de la balance acheteurs/vendeurs de l'onada icihttps://www.oanda.com/forex-trading/analysis/historical-positions

tracé et calculé la corrélation entre le solde et le prix

oanda <- read.csv("C:/User................OANDA_historical_position_ratios_data_EUR_USD.csv")

layout(1:2)
plot(oanda$price ,t="l" , main = "EUR")
plot(oanda$pct_long ,t="l" , main = "balanse",col=2)
abline(h = 50)

cor(oanda$pct_long  , oanda$price)

fy

coefficient de corrélation -0,76

Il est intéressant de noter que le prix évolue dans la direction opposée, non pas même par rapport à l'équilibre en valeurs absolues, mais par rapport à la dynamique du changement d'équilibre...

C'est exactement la même mécanique qui est utilisée sur d'autres marchés très liquides, cet équilibre peut être constaté d'autres manières, par exemple dans le verre du marché. Je suis sûr que beaucoup de gens le savent, j'admets que je le sais moi-même depuis probablement 6 ans, mais je l'ai écrit pour ceux qui ne le savaient pas, il sera utile et intéressant.

Si l'équilibre fait tourner le marché, il vaut peut-être mieux prévoir l'équilibre plutôt que le prix. Quoi qu'il en soit, la prévision des prix dans les stratégies de trading n'est rien d'autre que la prévision des actions des traders dans le futur, aussi banal et trivial que cela puisse paraître, mais lorsque vous commencez à penser comment vous pouvez prédire la foule, cela devient plus intéressant..... Je pense que pour comprendre la foule, il faut d'abord se comprendre soi-même, car nous sommes la foule ... Comment prédire une foule ? Quelles sont vos réflexions ?

Historical Forex Position Ratios | Currency Trend Analysis | OANDA
Historical Forex Position Ratios | Currency Trend Analysis | OANDA
  • www.oanda.com
The following graph shows the historical trend of long-short positions on fxTrade platform alongside the market price for the selected currency pair and time period. Note the Net Position graph is calculated by subtracting the percentage of short positions from long positions. For example, a net position of +20% for EUR/USD means percentages of...
 
SanSanych Fomenko:

Pour une raison quelconque, la conversation dérive constamment vers une discussion sur les mérites et les démérites de certains modèles.

Même si mon expérience me dit que la contribution à la réussite des transactions est très faible.

C'est la définition de la cible et de ses prédicteurs qui la définit.

Sur l'exemple de ZZ, j'ai essayé à plusieurs reprises de montrer que même une variable cible aussi évidente, illustrative et belle que ZZ n'est pas la même et présente des obstacles insurmontables à l'examen.

Si nous parlons de prédicteurs, il est tout à fait évident pour moi, en tant que personne qui a été engagée dans l'économie toute sa vie que :

  • le prédicteur doit être pertinent pour la variable cible - capacité de prédiction pour la variable cible
  • le prédicteur doit être en avance sur la variable cible

Si l'on se concentre uniquement sur la résolution de ces deux fondamentaux pour la prédiction économique et forex, alors le succès ne viendra que de ces deux paramètres. Et la sélection du modèle le mieux ajusté à la cible et à ses prédicteurs ne peut améliorer que marginalement les performances, peut donner lieu à des considérations valables sur la durée de vie du modèle sans ré-entraînement.


Une fois encore, je demande que l'on se concentre sur la variable cible et que l'on justifie les prédicteurs pour cette variable cible particulière.

D'accord.

 
Dr. Trader:


Et ce code était la réponse à la question de savoir ce qu'il fallait faire si l'on ne définissait pas l'objectif et que l'on voulait simplement apprendre au neurone à négocier du côté positif. Laissez-le décider lui-même où il est préférable d'acheter et où il est préférable de vendre - tant que le bénéfice est rentable.
Nous lui donnons donc des incréments d'ohlc par barres, nous obtenons des prédictions sur ce qu'il faut faire sur la prochaine barre, nous simulons le trading sur la base des prédictions et nous trouvons le ratio de trading scarpe. Ce brassage de rapport est la seule estimation qui est donnée au neurone sur l'ensemble des données d'entrée.
L'optimiseur va optimiser les poids du neurone de façon à ce que le ratio sharpe augmente.
Si vous trouvez des gradients de poids par rapport au ratio de sharpe, vous pouvez créer un échappement à gradient, ce sera bien mieux que de changer aveuglément les poids.

Pour être honnête, je ne l'ai pas essayé, pour une raison quelconque, cela m'a immédiatement semblé être de l'alchimie, ce n'est pas une très bonne idée, pour un perseptron à une couche avec un petit nombre d'instances, peut-être que quelque chose sera terriblement lent, un multicouche ne fonctionnera pas, IMHO il est de peu d'utilité. En outre, la rentabilité du TS dépend directement de la prévision du rendement total par N barres à l'avance, il est impossible de corriger une mauvaise prévision, optimiser une stratégie entière est beaucoup plus risqué de se tromper soi-même.