Cross over ou under highest/lowest support et résistance indacteur
Forums › ProRealTime forum Français › Support ProBuilder › Cross over ou under highest/lowest support et résistance indacteur
- This topic has 3 replies, 2 voices, and was last updated 3 months ago by
Iván.
-
-
05/24/2024 at 9:39 AM #232986
Bonjour,
J’aimerais avoir une indication sur mon graphique lorsque le prix d’une bougie va traverser un support défini à l’avance dans un tableau.
Voici le code que j’ai écris avec comme exemple: si le plus haut d’une bougie vient a croisé un support ou une résistance nous avons une indication sur le graphique.
Indicateur support and resistance crossed12345678910111213141516171819202122232425262728293031/////////////////Resistance ///////////////////////////if close>=highest[length1](close) thent1 = 0top1 = closeelsetop1 = top1t1 = t1+1if t1>lenght2 and t1<lenght2+2 then$TOPy[lastset($TOPy)+1] = top1endifENDIF/////////////////Support ///////////////////////////if close<=lowest[length1](close) thenb1 = 0bot1 = closeelsebot1 = bot1b1 = b1+1if b1>lenght2 and b1<lenght2+2 then$boty[lastset($boty)+1] = bot1endifendif///////////////////////////////////Conditions baissière///////////////////////////////////for s=0 to 15 doif highest[1](high) CROSSES OVER $BOTy[s] or highest[1](high)CROSSES UNDER $BOTy[s] or highest[1](high) CROSSES OVER $TOPy[s]or highest[1](high)CROSSES UNDER $TOPy[s] thenif ViewArrow thenDRAWARROWDOWN(barindex[p],(high[p]+(Margin*MultiplicateurFleche))) COLOURED(ColorR,ColorV,ColorB)endifENDIFNEXTreturnJ’ai mis ci joint un screen d’un exemple de situation dans laquelle j’aimerais avoir une indication (La ligne rouge est la matérialisation du premier indicateur de support et résistance).
J’ai beau essayer tous les type de cross over ou under (sur le close, sur le high, sur le highest[1] (high)) rien n’y fait, je n’ai jamais de flèche qui apparait. Je suis dans une impasse.
Merci de votre aide
05/24/2024 at 1:41 PM #233016Hola, il a légèrement adapté votre code :
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152defparam drawonlastbaronly = truelength1=20lenght2=40/////////////////Resistance ///////////////////////////if close>=highest[length1](close) thent1 = 0top1 = closeelsetop1 = top1t1 = t1+1if t1>lenght2 and t1<lenght2+2 then$TOPy[t+1] = top1$TOPx[t+1] = barindext=t+1endifENDIF/////////////////Support ///////////////////////////if close<=lowest[length1](close) thenb1 = 0bot1 = closeelsebot1 = bot1b1 = b1+1if b1>lenght2 and b1<lenght2+2 then$boty[r+1] = bot1$botx[r+1] = barindexr=r+1endifendif////////////Conditions baissière///////////////////////////////////if islastbarupdate thenfor j=1 to barindex dofor i=r downto max(0,r-15) doif barindex[j]>$botx[i] and low[j] < $BOTy[i] and low[j-1] > $BOTy[i] thenDRAWARROWDOWN(barindex[j],$BOTy[i]) COLOURED("red")breakENDIFNEXTfor s=t downto max(0,t-15) doif barindex[j]>$TOPx[s] and high[j] > $TOPy[s] and high[j-1] < $TOPy[s]thenDRAWARROWup(barindex[j],$TOPy[s]) COLOURED("green")breakendifnextnextendifreturn $boty[r] coloured("red"),$TOPy[t] coloured("blue")1 user thanked author for this post.
05/25/2024 at 5:16 PM #233054Merci beaucoup Ivan, j’ai travaillé toute la journée pour implémenter cette condition dans mon algorithme.
J’ai une dernière question. Est-il possible de supprimer une donnée d’un tableau après x période pour qu’elle ne soit prisent en compte dans les conditions.
Voici comment j’ai modifier pour qu’il fonctionne dans mon algorithme.
Alerte on supports and resistances1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859//defparam drawonlastbaronly = trueDEFPARAM CALCULATEONLASTBARS=1000//////////////////////////////Average candle size//////////////////////////////x = 96XGreen = 0GreenSUM = 0For i = 0 To x-1 DoGreenSUM = GreenSUM + Range[i]XGreen = XGreen + 1A = GreenSUM / XGreennext///////////////////////////////////////////////length1=70lenght2=50/////////////////Resistance ///////////////////////////if close>=highest[length1](close) thent1 = 0top1 = closeelsetop1 = top1t1 = t1+1if t1>lenght2 and t1<lenght2+2 then$TOPy[t+1] = top1$TOPx[t+1] = barindex$TopA[t+1]= At=t+1endifENDIF/////////////////Support ///////////////////////////if close<=lowest[length1](close) thenb1 = 0bot1 = closeelsebot1 = bot1b1 = b1+1if b1>lenght2 and b1<lenght2+2 then$boty[r+1] = bot1$botx[r+1] = barindex$BotA[r+1]= Ar=r+1endifendifp=1//////////////////Condition with supports///////////////////////////////////for i=r downto max(0,r-30) doif (low[p] < $BOTy[i] and high[p] > $BOTy[i]) or (low[p] < ($boty[i]+($BotA[i]*0.1)) and high[p] > ($BOTy[i]-($BotA[i]*0.2))) thenDRAWARROWDOWN(barindex[1],$BOTy[i]) COLOURED("red")breakendifNEXT//////////////////Condition with resistances///////////////////////////////////for s=t downto max(0,t-15) doif (high[1] > $TOPy[s] and low[1] < $TOPy[s]) or (high[1] > ($TOPy[s]-($TopA[s]*0.05)) and low[1] < ($TOPy[s]+$TOPA[s]*0.2)) thenDRAWARROWup(barindex[1],$TOPy[s]) COLOURED("green")breakendifnextreturnMerci
05/28/2024 at 7:42 AM #233120 -
AuthorPosts
Find exclusive trading pro-tools on