bonjour,
j utilise cet indicateur en 15 seconde,
j ai un probleme avec cet indicateur il ne me renvoie pas toujours les bonnes indications.
je dois toujours recharger l indicateur pour avoir les bonnes valeurs.
TIMEFRAME(15 MINUTE)
PERIODF=9
IF BarIndex < periodF THEN
MA9 = Close
ELSE
NF = Summation[periodF](Volume)
MA9 = ((NF - Volume)*MA9 + Volume*Close)/NF
ENDIF
PERIODXF=21
IF BarIndex < periodXF THEN
MA21 = Close
ELSE
NXF = Summation[periodXF](Volume)
MA21 = ((NXF - Volume)*MA21 + Volume*Close)/NXF
ENDIF
UP1=MA9>=MA9[1] AND MA21>=MA21[1]
DW1=MA9<=MA9[1] AND MA21<=MA21[1]
TIMEFRAME(DEFAULT)
If DW1 Then
drawtext("■",barindex,0,dialog,BOLD,15) coloured(250,150,0)
ELSIf UP1 Then
drawtext("■",barindex,0,dialog,BOLD,15) coloured(0,150,250)
ELSE
drawtext("■",barindex,0,dialog,BOLD,15) coloured(100,100,100)
ENDIF
return
Je pense que cet indicateur fait correctement ce qu’on lui demande:
Toutes les 15 secondes, on vérifie ce qu’il se passe dans le chandelier 15-minutes dans la bougie NON CLOTURE, donc il est fortement possible que les conditions DW1 et UP1 ont été validés dans l’une des 60 bougies de 15-sec que comporte une bougie 15-minutes.
J ai pris 2 captures d’ ecran avant et apres actualisation pour vous montrer.
Oui c’est bien ce que j’ai expliqué. Il faut réfléchir en plusieurs dimensions temporelles.
Je reprends…
Pour ton signal UP1, toutes les 15 secondes tu testes ces infos du 15-minutes: UP1=MA9>=MA9[1] AND MA21>=MA21[1]
en temps réel on sait que la MA9>= à sa valeur précédente dans le TF 15 minutes (comme si tu l’observais avec tes yeux sur l’écran) hors quand tu relis l’historique on ne peut pas savoir si dans la bougie de 15 minutes à un moment donnée cette condition a été vérifiée, car on ne l’a pas visualisé.
Je pense que ton code est mal construit, justement vis à vis de ce comportement. Tu devrais délocaliser tes conditions de signaux UP1 et DW1 dans le timeframe(default).
Merci nicolas, en effet j ai passes up1 et dw1 en timeframe default, ca regle le probleme!
Au final ca fonctionne pas en mettant up1 et dw1 dans timeframe default. j ai bien compris les diferentes dimensions temporelle mais il y a effectivement un probleme.
ci joint 2 capture d ‘ecran de mon code d origine avant et apres actualisation ,avec le meme indicateur en 15 seconde et en 15 minutes, on voit les evwma EN 15 minute qui sont bleu et dans le graph en 15 seconde l indicateur indique orange… apres actualisation l indicateur affiche la bonne couleur!
Au final ca fonctionne pas en mettant up1 et dw1 dans timeframe default. j ai bien compris les diferentes dimensions temporelle mais il y a effectivement un probleme.
ci joint 2 capture d ‘ecran de mon code d origine avant et apres actualisation ,avec le meme indicateur en 15 seconde et en 15 minutes, on voit les evwma EN 15 minute qui sont bleu et dans le graph en 15 seconde l indicateur indique orange… apres actualisation l indicateur affiche la bonne couleur!
ce que je veux dire c est que quand je regarde en LIVE, ca passe en orange en 15 seconde alors que up1 est bien bleu en 15MN
Ok, j’ai testé le dernier code et il y a un truc qui me chiffonne également, je recoupe les infos avec le support technique et je reviendrai faire un retour.
Bonjour à tous, Nicolas et Armand.
Pareil chez moi, le Multi timeframe ne fonctionne pas.
@kryptokat
Aurais-tu un exemple de code stp ?
Bonjour à tous, bonjour Nicolas.
Depuis, je suis reparti à zéro et le multi timeframe fonctionne à nouveau correctement. J’ai juste connu une journée difficile d’un point de vu informatique semble-t-il. 🙂
Ok s’agit-il d’un autre problème ? Si oui je vais créer un autre sujet avec ton post.
Bonjour Nicolas?
Toujours pas de reponse du support technique a mon probleme?
merci
C’est en cours de résolution, mais à priori le problème se situe lorsque dans une ligne de code on réemploi la valeur de la variable qu’on détermine, comme ici avec la variable MA9:
MA9 = ((NF - Volume)*MA9 + Volume*Close)/NF
En attendant une correction officielle, il faudrait peut être tester comme ceci :
MA9temp = MA9
MA9 = ((NF - Volume)*MA9temp + Volume*Close)/NF
Ou alors avec cette version:
TIMEFRAME(15 MINUTE)
PERIODF=9
IF BarIndex < periodF THEN
MA9 = Close
ELSE
NF = Summation[periodF](Volume)
MA9 = ((NF - Volume)*MA9[1] + Volume*Close)/NF
ENDIF
PERIODXF=21
IF BarIndex < periodXF THEN
MA21 = Close
ELSE
NXF = Summation[periodXF](Volume)
MA21 = ((NXF - Volume)*MA21[1] + Volume*Close)/NXF
ENDIF
UP1=MA9>=MA9[1] AND MA21>=MA21[1]
DW1=MA9<=MA9[1] AND MA21<=MA21[1]
TIMEFRAME(DEFAULT)
If DW1 Then
drawtext("■",barindex,0,dialog,BOLD,15) coloured(250,150,0)
ELSIf UP1 Then
drawtext("■",barindex,0,dialog,BOLD,15) coloured(0,150,250)
ELSE
drawtext("■",barindex,0,dialog,BOLD,15) coloured(100,100,100)
ENDIF
return