J'ai besoin de votre aide.
Le code auquel je pensais pour un indicateur (deux points de part et d'autre de la dernière bougie, qui évoluent avec le cours, et qui représentent SL et TP), ne fonctionne pas.
Le problème à résoudre est de n'afficher l'indicateur que sur la dernière bougie et pas sur les autres (pour ne pas surcharger les graphiques de deux tracés de points inutiles).
Par contre j'ai trouvé une question similaire et une réponse qui semble pertinente. Sauf que je ne suis pas assez calé en programmation PRT et ne pige pas bien le code. Qui fonctionne presque bien mais pas tout à fait.
Voilà la page avec la question et la réponse (dernier post de julianjdj).
http://www.informedtrades.com/516429-need-help-prorealtime-indicator-coding.html
Je remets son code ici :
Code : #
// mystop
bc1 = CALL "bars-back"[10] // for last 10 bars
ignored = bc1
if bc1 then
mystop = Close - 3*(AverageTrueRange[14](close))
else
mystop = undefined
endif
RETURN mystop
Code : #
// bars-back
once state = 0
IF Periods < 3 THEN
Periods = 3
ENDIF
Detrend = DPO[Periods*2](Close)
IF Detrend = Detrend[1] AND Detrend[1] = Detrend[2] AND Detrend[2] <> Detrend[3] THEN
state = 1
ENDIF
IF state = 0 THEN
R = UNDEFINED
ELSE
r = 10
ENDIF
ignored = r
RETURN state
Le demandeur voulait afficher un stop sur les dernières bougies uniquement (voire la dernière), stop calculé à partir de l'AverageTrueRange.
La 1ère partie est l'indicateur proprement dit (Mystop), à mettre dans la zone de prix. Il y a un CALL vers un second indicateur appelé Bars-back (la seconde partie du code). Ce dernier utilise le Detrend Price Oscillator (DPO) pour renvoyer la valeur 1 sur les dernières bougies (les 3 dernières d'après mon test). Quand Bars-back renvoie 1, Mystop est donc affiché.
Voilà, c'est à peu près tout ce que je comprends, et ça fonctionne presque bien lors de mon test (problème en UT1 min cependant, justement celle que j'utilise). Mais ma compréhension n'est pas suffisante pour aménager le code afin de n'activer l'indicateur que sur la dernière bougie (et pas les 3 dernières).
Mes questions en vrac :
1) la variable Ignored sert à quoi ? Je la vois utilisée dans pas mal de codes PRT.
2) L'instruction CALL "bars-back"[10] est censé activer l'indicateur pour les 10 dernières bougies, dixit le commentaire ("for last 10 bars"). Mais le code copié tel quel dans PRT renvoie un message d'erreur : "La fonction Bars-back appelée depuis Mystop est accompagnée de 1 paramètre au lieu de 0 attendus".
En supprimant le "[10]", PRT exécute bien l'indicateur. Donc ce paramètre sur le nombre de bougies ne semble pas marcher.
3) Je ne comprends pas non plus l'utilité de la variable "R".
4) Je nage aussi complètement sur la partie sur le Detrend et le DPO, ainsi que sur la variable Periods. Comment ça marche ? :roll:
Voilà, j'aimerais bien comprendre, et je pense que ça intéressera du monde si on y arrive.. Alors si vous pigez plus que moi merci pour vos lumières.