Tracer un rectangle
Bonjour,
Pouvez-vous m’aider?
Je souhaiterai un indicateur qui me trace un rectangle, a partir d’une heure précise (ex: 9h15) pour finir a X bougies (ex: 30 bougies) dont le haut est le bas du rectangle soit tracé sur le plus haut et le plus bas (incluant les mèches) des bougies qui sont dans cet espace des 30 bougies. Et pouvoir colorier l’intérieur de ce rectangle.
Merci d’avance
Bjr,
Plusieurs façons de faire selon le niveau de robustesse et de personnalisation voulu, mais sans lister toutes les variantes disons que pour un coup de main suffisamment rapide et simple, cette façon-ci devrait faire l’affaire:
defparam DRAWONLASTBARONLY=true
depart=091500
nombrebougies=30
if opentime=depart then
mabarre=barindex
ll=low
hh=high
endif
if time>depart and barindex<mabarre+nombrebougies then
ll=min(ll,low)
hh=max(hh,high)
endif
DRAWRECTANGLE(mabarre, ll, mabarre+nombrebougies, hh) coloured (0,0,255,150) bordercolor(0,0,255)
return
Voilà ce que je peux proposer rapidement, pas des rectangles, mais un fond coloré progressif entre le plus haut et le plus bas depuis l’heure de démarrage et cela pendant 30 bougies.
start = 091500
if time=start then
hh=high
ll=low
startbar=barindex
endif
if barindex-startbar<=30 and barindex>startbar then
hh=max(hh,high)
ll=min(ll,low)
alpha=100
ELSE
alpha=0
endif
colorbetween(hh,ll,"crimson",alpha)
return
Merci beaucoup, par contre , le rectangle n’apparait que sur la dernière session, y a t il un moyen de le voir rétrospectivement, pour pouvoir faire des backtests?
Merci d’avance
le voir rétrospectivement, pour pouvoir faire des backtests
C’est ce que tu obtiens avec ma version du code.
Tu peux renvoyer les valeurs des plus hauts/bas en temps réel en modifiant la dernière ligne avec :
return hh,ll
Bonjour voila quelques semaines, un membre de cette communauté, m’avez proposé un indicateur me permettant de délimiter a l’aide d’un rectangle , la session d’Asie, que j’ai amélioré pour mes besoins. . D’ailleurs je le remercie encore. Sauf que cela ne m’affiche que la dernière session. Pour pouvoir faire du back test, il faudrait que ces rectangles s’affichent dans le temps passé. Si quelqu’un pouvez m’aider. je joins ci-apres le programme qui me permet d’avoir le dernier rectangle. Ce serait super d’avoir ceux d’avant
Merci pour votre aide
defparam DRAWONLASTBARONLY=true
If M15 then
depart=010000
nombrebougies=20
if opentime=depart then
mabarre=barindex
ll=low
hh=high
endif
if time>depart and barindex<mabarre+nombrebougies then
ll=min(ll,low)
hh=max(hh,high)
endif
DRAWRECTANGLE(mabarre, ll, mabarre+nombrebougies, hh) coloured (0,255,255) bordercolor(0,0,255)
Endif
If M5 then
depart=010000
nombrebougies=60
if opentime=depart then
mabarre=barindex
ll=low
hh=high
endif
if time>depart and barindex<mabarre+nombrebougies then
ll=min(ll,low)
hh=max(hh,high)
endif
DRAWRECTANGLE(mabarre, ll, mabarre+nombrebougies, hh) coloured (0,255,255) bordercolor(0,0,255)
Endif
If M1 then
depart=010000
nombrebougies=300
if opentime=depart then
mabarre=barindex
ll=low
hh=high
endif
if time>depart and barindex<mabarre+nombrebougies then
ll=min(ll,low)
hh=max(hh,high)
endif
DRAWRECTANGLE(mabarre, ll, mabarre+nombrebougies, hh) coloured (0,255,255) bordercolor(0,0,255)
Endif
return
Bjr,
Dès que je peux je reviens sur le post #210232 ci-dessus pour le fusionner avec la requête initiale, où il me semble qu’il y a avait eu 2 suggestions, une avec dernier rectangle, une autre avec tous les rectangles, pour voir pourquoi tu n’as pas pris l’autre qui semble correspondre à vouloir tous les rectangles.
De façon plus générale pour l’usage du forum, merci de ne pas étaler une même discussion dans des sujets séparés pour garder une vue d’ensemble sans redite (et pour ne pas me faire dire ce que je n’ai pas dit, inversement pour des questions non liées, on peut et doit faire des sujets séparés même si discutés le même jour en parallèle).
Merci et désolé, d’avoir ouvert une autre discussion. Je ne savais pas. Je ferai attention a l’avenir. Pourquoi, j’ai choisi la suggestion du dernier rectangle, précisément parce que ce programme formait un rectangle alors que l’autre faisait un coloriage, de la session sans déterminer un rectangle, ce qui ne me va pas pour ma stratégie. Merci pour ta réponse est désolé encore de ma petite bétise de répétition
Ok, les 2 sujets sont réassemblés en un seul. Pour avoir les rectangles tous les jours, il suffisait de ne pas mettre defparam DRAWONLASTBARONLY=true, comme dans l’autre solution, tout en gardant la façon de faire “rectangle”.
D’autre part, j’ai gardé le nombre de bougies comme spécifié dans la requête initiale plutôt qu’un horaire de fin, mais comme je vois que tu veux gérer trois cas M15,M5,M1, j’ai rajouté en plus simple tes M15,M5,M1 dans un petit bloc if…elsif… au lieu de tout dupliquer à chaque fois.
//defparam DRAWONLASTBARONLY=true
M5=1
m1=0
m15=0
depart=091500
if M15 then
nombrebougies=20
elsif M5 then
nombrebougies=60
elsif M1 then
nombrebougies=300
endif
if opentime=depart then
mabarre=barindex
ll=low
hh=high
endif
if time>depart and barindex<mabarre+nombrebougies then
ll=min(ll,low)
hh=max(hh,high)
endif
DRAWRECTANGLE(mabarre, ll, mabarre+nombrebougies, hh) coloured (0,0,255,100) bordercolor(0,0,255)
return
Et bé, je suis bluffé, en effet c, est exactement ce que je voulais mais en nettement mieux, alors un grand merci. Même 1000 fois Merci
Me revoila, car, j’ai quand même un petit PB. En effet, que je mette en M15, M5 ou M1, ca m’affiche 60 bougie. Maintenat si le fait de mettre une heure de depart et une heure de fin facilite la chose. Ca ne me gène pas
Désolé
JPV
Ah oui pardon, c’est de ma faute, comme je n’avais pas voulu créer de paramètres externes pour aller plus vite, j’avais mis en début de code un choix forcé de M5=1 (d’où les 60 bougies dans tous les cas) et les 2 autres à 0 en lignes 2,3,4. Il faut enlever ces 3 lignes pour que mes M1,M5,M15 ajoutés pour tester le code ne se superposent pas aux tiens. Voici:
if M15 then
nombrebougies=20
elsif M5 then
nombrebougies=60
elsif M1 then
nombrebougies=300
endif
if opentime=depart then
mabarre=barindex
ll=low
hh=high
endif
if time>depart and barindex<mabarre+nombrebougies then
ll=min(ll,low)
hh=max(hh,high)
endif
DRAWRECTANGLE(mabarre, ll, mabarre+nombrebougies, hh) coloured (0,0,255,100) bordercolor(0,0,255)
return
Merci
Petite question :
Avec: //defparam DRAWONLASTBARONLY=true
J’ai un rectangle propre mais je n’ai pas de rectangle dans le passé
Comme dit dans un précèdent message en l’enlevant ont a les rectangles dans le passé, par contre, il ne sont pas propres avce plein de lignes a l’intérieur
Est ce normal? peut on y faire quelque chose?
Merci
Voila l’effet que cela fait