Bonjour,
J’ai du mal à comprendre le comportement de ma condition de sortie en heikinashi. Je voudrais sortir de mon achat quand la fermeture heikinashi est plus basse que le plus bas de ma dernière bougie verte
OU plus basse que l’ouverture heikinashi de la dernière bougie verte si l’ouverture heikinashi est plus basse que le plus bas.
Voici les conditions commentées ainsi qu’une capture d’écran:
//On déclare Heikin Ashi (HA)
xClose = (Open+High+Low+Close)/4
if(barindex>2) then
xOpen = (xOpen[1] + xClose[1])/2
endif
//On définit ce qu'est une bougie rouge et une bougie verte HA
HARouge = xClose<xOpen
HAVert = xClose>xOpen
//On définit le changement de couleur
HApasseVert = HAVert AND HARouge[1]
HApasseRouge = HARouge AND HAVert[1]
//Setup sortie achat
once PlusBasDerniereBougieVerte = 0
//Si la fermeture heikinashi est plus basse que le plus bas ou l'ouverture de la dernière bougie verte heikinashi, on sort
SortieAchat = xClose < PlusBasDerniereBougieVerte and HARouge
//Quand on fait une bougie rouge, on change la valeur de PlusBasDerniereBougieVerte
if HApasseRouge then
if xOpen[1] > low[1] then
PlusBasDerniereBougieVerte = xOpen[1]
else
PlusBasDerniereBougieVerte = low[1]
endif
endif
//On sort
if LONGONMARKET and SortieAchat then
SELL AT MARKET
endif
Je dois louper qqch évident mais je ne trouve pas :-/
Merci d’avance pour votre aide.
Ton code ne comporte pas la définition du plus bas (Low) de la bougie Heikin Ashi, tu utilises le Low d’une bougie classique, hors ce n’est pas le même prix, puisque la bougie Heikin Ashi est une vision lissée du prix.
Le code du Low d’une bougie Heikin Ashi :
xLow = Min(Min(low, xOpen), xClose)
(à placer après la ligne 15)
Donc tu utiliseras xLow[1] à la ligne 26 plutôt que Low[1] bien entendu.
Merci pour ta réponse. En effet, ça fonctionne.
Je suis surpris car je ne prenais en compte le low[1] SEULEMENT s’il était plus bas que xOpen[1] pour palier à ça.
Il y a encore un truc que je ne comprends pas dans ma sortie. (voir capture d’écran).
SortieAchat se déclenche et me sort de la position sur ma capture alors que ça n’est pas une bougie rouge et que la fermeture HA n’est pas plus basse que le plus bas de la dernière bougie verte.
once PlusBasDerniereBougieVerte = 0
SortieAchat = (xClose < PlusBasDerniereBougieVerte) and HARouge
if HApasseRouge then
PlusBasDerniereBougieVerte = xLow[1]
endif
if LONGONMARKET and SortieAchat then
SELL AT MARKET
endif
C’est bien une bougie baissière, la clôture est plus basse que son ouverture.
Pourtant la cloture HA (xClose) n’est pas inférieure à PlusBasDeLaDerniereBougieVerte.
J’ai l’impression que je suis à pas grand chose de comprendre et pourtant…