Bonjour la communauté et Nicolas,
Bonne année et meilleurs vœux
J’ai une stratégie qui fonctionne plutôt bien, mais quand il y a un fort mouvement le premier signal d’entré est toujours à prendre à l’inverse…. La Stratégie redevient valide après un retracement de plus au moins 50% fibo.
Je cherche donc à codé une détection des forts mouvements et savoir quand on à suffisamment retracé.
Une idée ?
Une idée toute simple serait de déterminer le retracement en % depuis le croisement de 2 moyennes mobiles ou depuis le dernier plus bas des X dernières périodes.
Pour calculer un retracement on utilise un plus haut et un plus bas, pour cela toutes les méthodes sont possibles, à toi de voir ce qui correspondrait le mieux selon ta stratégie. Ensuite je pourrai t’aider pour faire les calculs et l’intégrer à un indicateur ou à une stratégie de trading automatique.
Merci Pour ta réponse Nicolas,
Partons sur un indicateur, Le but étant de trouvez une solution à un problème que l’on rencontre pratiquement tous dans nos stratégies.
Si on part sur le croisement de deux moyennes mobiles, on devra prendre des moyennes courtes pour être suffisamment réactif. Le problème c’est qu’on aura des rebonds, qui seront considérés comme des croisements et donc faux signale. Avec 1 courte et 1 longue, suivant les phases de marché ça fonctionnera mais ça resteras imprécis. Dans tous les cas, l’indicateur ne sera pas universel et faudra passer par l’optimisation pour déterminer les MM.
A défaut d’avoir trouvé le Saint Graal, j’ai donc codé ce début d’indicateur à appliqué sur Dax en M1, J’ai utilisé des valeurs de la suite de Fibo pour les 2 Moyennes mobiles (MM5 et MM89) en exponentiels histoire d’avoir une logique mais je pense qu’il faudra optimiser. La première partie de l’indicateur fonctionne bien mais pour le retracement ce n’est vraiment pas ça pas ça….
// Dax M1
//once CrossH=0
//once crossB=0
//once retraB=0
//once retraH=0
MM1= ExponentialAverage[5](close)// Nombre de la suite fibo
MM2= ExponentialAverage[89](close)// Nombre de la suite fibo
If MM1 crosses over MM2 then
CrossH=1
CrossB=0
a=abs (MM1)
elsif MM1 crosses under MM2 then
CrossB=-1
CrossH=0
B=abs (MM1)
endif
//retracement
c=a-b
d=b-c
If close crosses under c then
retraH=2
retraB=0
elsif close crosses over d then
retraB=-2
retrah=0
endif
Return CrossH As "CrossH" ,CrossB As "CrossB", retraH as "retraH", retraB as "retraB"
J’attends ton retour et si tu pense qu’il vaut mieux repartir de zéro plutôt que travailler sur cette base n’hésite pas je ne me sentirais pas offusqué 😉
Dans le premier indic, je viens de voir qu’il y a une erreur dans le calcule des 50% de retracement “c= ((a-b)/2)+a” au lieu “c=a–b” et certainement la gestion du sens à revoir….
Sinon j’ai créer une autre base d’indicateur qui me semble plus prometteur, mais j’aimerais avoir ton avis sur les deux méthodes .
//Dax M1
P1=(highest[5](close)- lowest[5](close))/5
P2=(highest[10](close)- lowest[10](close))/10
P3=(highest[20](close)- lowest[20](close))/20
P4=(highest[30](close)- lowest[30](close))/30
P5=(highest[35](close)- lowest[35](close))/35
P6=(highest[40](close)- lowest[40](close))/40
P7=(p1+p2+p3+p4+p5+p6)/6
If P1 > (P7+(P7*90/100))Then
InversStrat=10
elsif P1 crosses under P7 then
InversStrat=0
endif
return p1 COLOURED(255,0,0) as "p1" , p7 COLOURED(230,230,0) as "p7", InversStrat as "InversStrat"//p2 as "P2", p3 as "p3", p4 as "p4", p5 as "5", p6 as "p6",