Bonjour,
Grand débutant sur ProBuilder, j’essaie simplement grâce à un screener de repérer les actions qui contiennent 4 (ou plus) bougies rouges de suite.
Je ne comprends pas pourquoi le code ci-dessous ne fonctionne pas…
Merci par avance pour votre aide.
Anthony
NbreJours = 100
FOR i=NbreJours TO 0 DO
BougieClose1 = close[i+3] // N°1 en partant de la gauche
BougieClose2 = close[i+2] // N°2 en partant de la gauche
BougieClose3 = close[i+1] // N°3 en partant de la gauche
BougieCloseNow = close[i] // N°4 en partant de la gauche
IF (BougieClose1 > BougieClose2) AND (BougieClose2 > BougieClose3) AND (BougieClose3 > BougieCloseNow) THEN
VarResult = 1
ENDIF
NEXT
Screener[VarResult](VarResult AS "VarResult")
Le problème se situe dans la boucle, dans ce code tu essaies de décrémenter NbreJours jusqu’à 0, dans ce cas il faut utiliser DOWNTO et non TO:
NbreJours = 100
FOR i=NbreJours DOWNTO 0 DO
BougieClose1 = close[i+3] // N°1 en partant de la gauche
BougieClose2 = close[i+2] // N°2 en partant de la gauche
BougieClose3 = close[i+1] // N°3 en partant de la gauche
BougieCloseNow = close[i] // N°4 en partant de la gauche
IF (BougieClose1 > BougieClose2) AND (BougieClose2 > BougieClose3) AND (BougieClose3 > BougieCloseNow) THEN
VarResult = 1
ENDIF
NEXT
Screener[VarResult](VarResult AS "VarResult")
Je n’ai pas testé le screener, mais il faut considérer que puisque on part de 100 jours dans le passé jusqu’à la barre actuelle, il est possible que le résultat renvoyé soit très ancien, puisque VarResult n’est jamais remis à zéro, ne sachant pas si cela est volontaire ou non, je te laisse le soin d’ajouter ce RAZ ou non.
Merci Nicolas !
Je vais tenter d’être plus attentif la prochaine fois.
Questions d’ordre générale :
J’ai vu dans ta formation que pour afficher le contenu d’une variable, il fallait l’afficher sous la forme d’un graph en dessous du graphique de l’action.
Y a t’il d’autres moyens de DEBUG ? du genre faire afficher le contenu d’une variable OU console.log() comme en javascript, etc.
Puis-je dessiner une flèche ou une ellipse là où les bougies ont été détectées ? J’ai regardé, il faut spécifier un barIndex que je ne connais pas…
Peut-être fallait-il que je programme d’une autre manière ?
Merci et bonne journée
Anthony
La fonction GRAPH n’est utile qu’avec ProBacktest. Il n’y a malheureusement pas de console de debug dans ProRealTime. On ne peut rien afficher avec un screener, hormis modifier le critère de tri qui peut nous renseigner en y incluant une variable.
Pour débugger, j’ai coutume d’utiliser un indicateur qui reprendra toutes les conditions et qui les affichera sur le graphique, comme tu souhaiterais le faire avec des éléments graphiques (ellipse, flèches, etc.). Le barindex sera différent entre ProScreener et ProBuilder toutefois car celui-ci s’incrémente à partir du premier chandelier de l’historique et ProScreener n’en inclut que 254.
Merci Nicolas.
J’ai modifié mon screener en indicateur.
Je souhaite y ajouter l’affichage de flèches. Elles s’affichent bien mais sont trop nombreuses. Je souhaite juste une flèche pour chaque PIC.
Peux-tu m’aider STP ?
NbrePeriodes = 20
FOR i=NbrePeriodes DOWNTO 0 DO
BougieClose1 = close[i+3] // N°1 en partant de la gauche
BougieClose2 = close[i+2] // N°2 en partant de la gauche
BougieClose3 = close[i+1] // N°3 en partant de la gauche
BougieCloseNow = close[i] // N°4 en partant de la gauche
IF (BougieClose1 > BougieClose2) AND (BougieClose2 > BougieClose3) AND (BougieClose3 > BougieCloseNow) THEN
VarResult = 1
DRAWARROWUP(barindex,low) COLOURED(0,155,10)
ELSE
VarResult = 0
ENDIF
NEXT
RETURN VarResult
Je n’ai pas testé, mais puisque tu es dans ta boucle, il faut afficher la flèche au moment précis dans le passé où tu détectes ton signal:
DRAWARROWUP(barindex[i],low[i]) COLOURED(0,155,10)
Tant que VarResult=1 alors tu afficheras une flèche, il faut réfléchir à comment limiter l’information..