Bonjour,
J’essaie de coder une stratégie toute simple en MTF basée sur un indicateur qui compte le nombre de bougies HA consécutives. Cependant quand je teste la valeur remontée par l’indicateur sur l’UT supérieure (M5), je ne trouve pas la bonne valeur.
defparam cumulateorders = false
// M5 Timeframe
timeframe(5 minutes, updateonclose)
HAM5 = CALL "#HA-Strenght"
// M1 Timeframe
timeframe(1 minute, default)
HAM1 = CALL "#HA-Strenght"
if HAM5 >= 2 and HAM1 >= 2 THEN
buy 1 shares at market
endif
set target pprofit 50
set stop ploss 50
graph HAM5
A noter que si je CALL n’importe quel autre indicateur alors j’ai les bonnes valeurs (en clôture sur les UT supérieures évidemment).
Le code appelé est très simple (il vient de ce site d’ailleurs) :
ONCE Bull = 0
ONCE Bear = 0
ONCE xOpen = 0
xClose = (Open+High+Low+Close)/4
if(barindex>2) then
xOpen = (xOpen[1] + xClose[1])/2
endif
c1 = xClose>xOpen
c2 = xClose<xOpen
IF c1 THEN
Bear = 0
Bull = Bull + 1
ELSIF c2 THEN
Bull = 0
Bear = Bear - 1
ELSE // IF xClose and xOpen are exactly the same value
Bull = 0
Bear = 0
ENDIF
Grade = Bull + Bear
return Grade
Ci-joint une capture d’écran qui montre dans le cercle rouge la valeur erronée (qui doit normalement être la valeur dans le cercle vert ou celle de la bougie précédente ; du moins si j’ai compris le principe du MTF).
Merci d’avance pour votre aide.
Rectification : finalement j’ai le même problème avec d’autre indicateurs quand je les appelles dans mes UT supérieures : je ne retrouve pas les mêmes valeurs.
J’ai du louper quelque chose…
bonjour,
xclose n’est pas dans la condition ?
if(barindex>1) then
xClose = (Open+High+Low+Close)/4
xOpen = (xOpen[1] + xClose[1])/2
endif
pour éviter les erreurs dans proorder
Bonjour fifi.
J’ai fait la correction. Mais toujours le même souci…
Avec :
timeframe(5 minutes, updateonclose)
On va chercher la valeur toutes les 5 minutes uniquement, donc entre 21h00 et 21h04, on aura la même valeur.
Sur ta copie d’écran en M1, avec ton graph, on voit bien les 3 marches successives en vert, la dernière étant celle qui dure de 21h00 à 21h04 et 59s. Donc sauf erreur de ma part, tout semble normal pour moi.
En M5 j’ai 3 HA vertes consécutives. C’est ce chiffre que je voudrais récupérer. Alors pourquoi je récupère 11 au lieu de 3 (ou au lieu de 2 puisque la clôture n’est pas finie) ?
Je graphe ma variable HAM5 qui devrait correspondre à ce que j’ai dans le cercle vert. Or même si on voit bien des marches identiques, la valeur ne correspond pas.
Désolé, je n’avais pas bien compris lors de la première lecture. Je reproduis aussi ce phénomène, je n’ai pas d’explications pour le moment, j’ai envoyé un rapport technique à ce sujet, je reviendrai dés que j’aurai de plus amples informations.
Bonjour,
Le même problème ici dans la v10.3. Et sans aucun timeframe. Voir image en PJ. Je suis sensé récupérer la variable de mon indicateur affiché en bas de l’écran (10 et non pas 1).
Il y a un souci avec le barindex sans doute…
1/ essayer avec un defparam preloadbars=0 en tête de code
ou
2/ Il faudrait essayer d’inclure le code de l’indicateur dans la stratégie au lieu d’utiliser le CALL.
Aucune des deux solutions ne fonctionne.