récupérer le dernier “signal” d’une seul bougie sur un croisement
Forums › ProRealTime forum Français › Support ProBuilder › récupérer le dernier “signal” d’une seul bougie sur un croisement
- This topic has 14 replies, 3 voices, and was last updated 4 years ago by Xavier01.
-
-
12/31/2020 at 2:33 PM #155793
Bonjour a tous,
Y a t’il une fonction et ou une phrase magique pour programmer dans notre code uniquement le dernier “signal” d’une seul bougie sur un croisement et non tous les anciens croisements ou autre historique?
J’arrive bien a marquer les bougies que je souhaite prendre en considération mais je voudrais uniquement la dernière ou dernier “signal”.
J’épluche la documentation dans la documentation du forum mais je trouve po.
12/31/2020 at 6:41 PM #15581712/31/2020 at 6:44 PM #15581801/04/2021 at 12:18 PM #156203Bonjour,
il te faut la ligne 7 pour constamment ne redessiner que l’occurence la plus récente, et à l’intérieur du bloc if de la ligne 14 tu définis ton cross et les valeurs de la barre et caractéristiques de la bougie dont tu as besoin pour marquer ton signal, et enfin la ligne 20 du drawrectangle peut être remplacée par l’objet graphique que tu veux pour marquer ton signal (un drawarrowup ou down, un drawtextt, etc…)
01/06/2021 at 1:01 PM #15657601/06/2021 at 1:50 PM #156589En faite ca donne ca, j’ajoute ce code au prix.Je marque et colorie en vert la bougie qui casse par le haut les 50 d’un rsi 21 jours et en jaune la bougie qui casse par le bas, mais je n’arrive pas a avoir juste le dernier signal sur le graph ou éventuellement les deux dernières.
123456789101112131415161718192021222324252627282930313233//Parametre de l'indicationmyRSI=RSI[21](close)Echelle=100/0//EquilibreZE=50//Plus haut et plus bas de la bougieH1=highest[1](high)/ZAH2=lowest[1](low)/ZAB1=highest[1](high)/ZAB2=lowest[1](low)/ZAZA=myRSI[0]crosses over ZE[0]if ZA and H1 thendrawcandle(open,high,low,close[0])coloured(0,128,0)if ZA and H1 thendrawtext("B",barindex[0],low[0])if ZA and H2 thendrawtext("H",barindex[0],high[0])endifendifendifZV=myRSI[0]crosses under ZE[0]if ZV and B1 thendrawcandle(open,high,low,close[0])coloured(218,165,32)if ZV and B1 thendrawtext("B",barindex[0],low[0])if ZV and B1 thendrawtext("H",barindex[0],high[0])endifendifendifreturn01/06/2021 at 3:18 PM #156608Pour ne dessiner que les 2 derniers, il faudrait qu’il soit déjà connu et donc pouvoir les afficher dans le passé à partir de la bougie présente. Hors on ne peut pas dessiner de chandeliers dans le passé avec DRAWCANDLE. Il faudrait les distinguer autrement (avec une autre instruction graphique ? un rectangle, etc..).
01/06/2021 at 6:34 PM #156654Bonjour Nicolas, d’accord, je début. J’ai suivis vos deux formations(MERCI BEAUCOUP) qui m’ont vraiment bien éclairés et fait comprendre beaucoup de possibilités mais c’est encore très tout neuf pour moi et je ne maitrise pas encore toutes les instructions possible.
01/07/2021 at 11:06 AM #15673001/07/2021 at 2:09 PM #156750Le code ci-dessous enregistre dans des tableaux les occurrences de tes détections de chandeliers. Puis à partir de la bougie courante, on fait une recherche dans les occurrences du tableau et on les affiche en les comptant, puis si on en a affiché suffisamment, on sort de la boucle.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152defparam drawonlastbaronly=truequantite = 2 //combien de signaux à afficher ?// -------------------------//Parametre de l'indicationmyRSI=RSI[21](close)Echelle=100/0//EquilibreZE=50//Plus haut et plus bas de la bougieH1=highest[1](high)/ZAH2=lowest[1](low)/ZAB1=highest[1](high)/ZAB2=lowest[1](low)/ZAZA=myRSI[0]crosses over ZE[0]if ZA and H1 then$za[lastset($za)+1]=barindexendifZV=myRSI[0]crosses under ZE[0]if ZV and B1 then$zv[lastset($zv)+1]=barindexendifcount=0if isset($za[1]) thenfor i = lastset($za) downto 1 dooffset=barindex-$za[i]count=count+1drawtext("B",barindex[offset],low[offset]) coloured(0,128,0)drawtext("H",barindex[offset],high[offset]) coloured(0,128,0)drawvline(barindex[offset]) coloured(0,128,0)if count>=quantite thenbreakendifnextendifif isset($zv[1]) thenfor i = lastset($zv) downto 1 dooffset=barindex-$zv[i]count=count+1drawtext("B",barindex[offset],low[offset]) coloured(218,165,32)drawtext("H",barindex[offset],high[offset]) coloured(218,165,32)drawvline(barindex[offset]) coloured(218,165,32)if count>=quantite thenbreakendifnextendifreturnJ’ai remplacé la coloration des bougies par des lignes verticales, à toi de voir ce que tu voudrais à la place.
01/07/2021 at 8:49 PM #156803WHAAA Tu est une machine Nicolas.Je n’est pas essayé avec ces deux instructions pensant qu’elles n’avaient rien a voir avec ce que je voulais faire. Un très grand merci Nicolas
C’est le genre d’instruction que je vais essayer d’utiliser pour un open breakout
Est ce qu’il est possible d’ajouter une extension de Fibo a un programme? Il faut coder tous les paramètres?01/08/2021 at 9:23 AM #15686001/08/2021 at 10:31 AM #15687301/18/2021 at 4:05 PM #158312Bonjour, plusieurs remarques à propos de ton code en post #156589:
- Echelle=100/0 ne sert à rien (sans même débattre de la division par 0)
- les h1,h2,b1,b2 pourquoi les diviser par za (qui vaut 1 ou 0, division par zéro?)
- les h1,h2,b1,b2 n’interviennent que dans des if comme des conditions au lieu de valeurs, ils seront toujours vrais et donc ne servent pas, soit on les élimine entièrement, soit il faut revoir leur véritable usage pour réécrire les conditions des if différemment si leurs valeurs doivent jouer quelque part
- les [0] même si corrects en syntaxe sont inutiles car par défaut sans valeurs entre crochets c’est la même chose que [0]
Le code simplifié pour le même résultat devient:
12345678910111213myRSI=RSI[21](close)if myRSI crosses over 50 thendrawcandle(open,high,low,close[0])coloured(0,128,0)drawtext("B",barindex[0],low[0])drawtext("H",barindex[0],high[0])endifif myRSI crosses under 50 thendrawcandle(open,high,low,close[0])coloured(218,165,32)drawtext("B",barindex[0],low[0])drawtext("H",barindex[0],high[0])endifreturnce qui est très similaire au post library, et une version sans boucle pour avoir les 2 dernières occurences peut s’écrire, sans drawcandle comme le faisait justement remarquer Nicolas, mais avec des drawrectangle/segment qui redessinent des candles grassouillettes:
12345678910111213141516171819202122232425262728293031defparam drawonlastbaronly=truemyRSI=RSI[21](close)if myRSI crosses over 50 thenbarre1=barindexopen1=openhaut1=highbas1=lowclose1=closeendifif myRSI crosses under 50 thenbarre2=barindexopen2=openhaut2=highbas2=lowclose2=closeendifdrawrectangle(barre1-1,open1,barre1+1,close1) coloured(0,128,0) bordercolor(0,128,0)DRAWSEGMENT(barre1, bas1, barre1, min(open1,close1)) coloured(0,128,0) style(line,3)DRAWSEGMENT(barre1, haut1, barre1, max(open1,close1)) coloured(0,128,0) style(line,3)drawtext("B",barre1,bas1)drawtext("H",barre1,haut1)drawrectangle(barre2-1,open2,barre2+1,close2) coloured(218,165,32) bordercolor(218,165,32)DRAWSEGMENT(barre2, bas2, barre2, min(open2,close2)) coloured(218,165,32) style(line,3)DRAWSEGMENT(barre2, haut2, barre2, max(open2,close2)) coloured(218,165,32) style(line,3)drawtext("B",barre2,bas2)drawtext("H",barre2,haut2)return01/18/2021 at 4:26 PM #158314 -
AuthorPosts
Find exclusive trading pro-tools on