Il y a presque 4 ans, Nicolas nous avait proposé ce code très sympa, “cet indicateur dessine simplement un «pas d’escalier» à l’intérieur de la valeur de seuil point / sommet définie (Step).:”
Stair step moving average
//parameters :
// Step = 0.0010 forex 10 pips, adapt to item you are trading
// MAperiod = 20
once ssMA = close
MA = average[MAperiod](close)
if(MA > ssMA + Step) THEN
ssMA = MA
ELSIF (MA < ssMA – Step) THEN
ssMA = MA
ELSE
ssMA = ssMA
ENDIF
RETURN ssMA
Ma question : Est-il possible de rajouter une fonction (round ?) à cet indicateur afin de permettre que la valeur de la stair step moving average choisisse un niveau de prix “rond” ?
Exemple, la valeur de l’indicateur est de 10024.2, et il bascule sur 10025 (10030, 10035, etc…) Avec la fonction “round” peut-être ? Il y a un code Renko de DocTrading qui fait des boîtes avec des prix ronds, avec cette fonction, mais je ne sais pas si on peut incluer cela avec ce Stair Step Moving Average.
boxSize = 40once renkoMax = ROUND(close / boxSize) * boxSize
once renkoMin = renkoMax – boxSizeIF high > renkoMax + boxSize THEN
WHILE high > renkoMax + boxSize
renkoMax = renkoMax + boxSize
renkoMin = renkoMin + boxSize
WENDELSIF low < renkoMin – boxSize THEN
WHILE low < renkoMin – boxSize
renkoMax = renkoMax – boxSize
renkoMin = renkoMin – boxSize
WEND
ENDIF
Merci pour votre aide,
Martin
Donc on ne parle même plus de moyenne mobile ici ? Il faut simplement que le prix grimpe et baisse de 5 points pour faire bouger la ligne ? En somme c’est une représentation renko mais qui commence à partir d’un prix fixe et rond.
En fait j’aimerais un fonctionnement Renko avec des prix ronds englobant la moyenne mobile, mais ça me semble complexe à mettre en oeuvre. On reste dans la tendance de la moyenne mobile mais avec des prix entiers déterminés “0, 5,10,15, etc…”, pas par tranche de 5 comme “2, 7, 12, 17, etc…”
Le renko étant un niveau haut et un niveau bas, si la moyenne mobile est davantage proche du niveau haut c’est celui-ci qui est affiché, elle évoluerait donc par palier de x pips. Désolé si je ne suis clair, j’ai du mal à bien l’expliquer.
Plus clairement, à chaque franchissement à la hausse ou à la baisse d’un niveau prédéterminé de 0 à 100(0,5,10,15,20,25,30,35,40,45,50,55,60,65,70,75,80,85,90,95,100) elle valide le niveau et devient ce niveau, etc… Toujours avec ces prix ronds.
Au final, c’est exactement un Renko mais avec comme valeur déclenchant le changement de niveau, la valeur de la moyenne mobile et pas le prix, et qu’un seul des 2 niveaux “haut” et “bas” est représenté suivant l’orientation de la MA.
S’il est possible d’avoir le même rendu que la stair step moving average mais avec ces niveaux prédéterminés, c’est parfait, je pensais qu’on pouvait le coder sans utiliser le renko.
WMA = WILDERAVERAGE[100]
ONCE RENKOHIGH = ROUND (CLOSE/BOXSIZE) * BOXSIZE
ONCE RENKOLOW = RENKOHIGH - BOXSIZE
IF WMA CROSSES OVER RENKOHIGH + BOXSIZE THEN
WHILE WMA > RENKOHIGH + BOXSIZE
RENKOHIGH = RENKOHIGH + BOXSIZE
RENKOLOW = RENKOLOW + BOXSIZE
WEND
ELSIF WMA CROSSES UNDER RENKOLOW - BOXSIZE THEN
WHILE WMA < RENKOLOW - BOXSIZE
RENKOHIGH = RENKOHIGH - BOXSIZE
RENKOLOW = RENKOLOW - BOXSIZE
WEND
ENDIF
Au final, il suffisait de remplacer close, le prix, par la valeur souhaitée, pour moi une wma par exemple. Maintenant, pour n’afficher que le niveau dépassé je ne sais pas, mais je crois que ce n’est pas compliqué, su tu passes par là Nicolas je veux bien de l’aide, je vais peut-être trouver tout seul.