Colorisation d'un indcateur
Forums › ProRealTime forum Français › Support ProBuilder › Colorisation d'un indcateur
- This topic has 7 replies, 1 voice, and was last updated 3 years ago by Nicolas.
-
-
04/23/2020 at 4:49 PM #127651
Bonjour,
j’ai programmé un petit indicateur :
Distance cours / Kama501234567891011121314151617181920212223242526272829303132333435// Distance moyenne cours / KAMA50Period = 50FastPeriod = 2SlowPeriod = 30Fastest = 2 / (FastPeriod + 1)Slowest = 2 / (SlowPeriod + 1)if barindex < Period+1 thenKama=closeelseNum = abs(close-close[Period])Den = summation[Period](abs(close-close[1]))ER = Num / DenAlpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])endifavg = kamaif close > avg thendistanceup = abs(close - avg)endifif close < avg thendistancedown = abs(close - avg)endifa = average[50](distanceup)b = average[50](distancedown)return avg+A as "borne haute", avg-b as "borne basse"La couleur de remplissage de l’indicateur (qui est une forme de bandeau) se fait par la fonction “remplissage” de PRT. Mais j’aimerai en fait que la couleur de chaque UT soit liée à un autre indicateur (par ex un STO ou autre). Est-ce possible avec la fonction “Drawcandle” (J’aimerai que le bandeau revêt cette forme identique à la pièce jointe) ? Merci.
04/23/2020 at 4:54 PM #127655Précision : le graphique en pièce jointe est issu du programme suivant (trouvé sur ce site). Merci à l’auteur.
//PRC_OnChart Oscillator | indicator123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172//PRC_OnChart Oscillator | indicator//23.05.2018//Nicolas @ www.prorealcode.com//Sharing ProRealTime knowledge///////////////////////INDICATOR_UNIVERSALmaPrice = customclosebandedge= UniversalPeriodwhitenoise= (maPrice - maPrice[min(UniversalPeriod,UniversalFilter)])/2if barindex>bandedge then// super smoother filtera1= Exp(-1.414 * 3.14159 / bandedge)b1= 2*a1 * Cos(1.414*180 /bandedge)c2= b1c3= -a1 * a1c1= 1 - c2 - c3filt= c1 * (whitenoise + whitenoise[1])/2 + c2*filt[1] + c3*filt[1]filt1 = filtif ABS(filt1)>pk[1] thenpk = ABS(filt1)elsepk = 0.991 * pk[1]endifif pk=0 thendenom = -1elsedenom = pkendifif denom = -1 thenresult = result[1]elseresult = filt1/pkendifendif///////////////////////////////////////////////////dTR = 0for i = 0to ATRperiod-1dTR=dTR+max(abs(Dhigh(i)-Dlow(i)),max(abs(Dhigh(i)-Dclose(i+1)),abs(Dlow(i)-Dclose(i+1))))nextdtr=dtr/MAX(1,TightenChannel)avgRange = dTRmaValue = average[max(1,AveragePeriod),AverageMethod](maPrice)ResultValue = RESULTBuffer1=maValueBuffer2=maValue+(avgRange*((overBought)))Buffer3=maValue-(avgRange*((overSold)))Buffer4=maValue+(ResultValue)/1*avgRangeBuffer5=maValue+(avgRange*((10/10)))Buffer6=maValue+(avgRange*((-10/10)))if UniAvg thenUniAvgline=Average[UniAvgPeriod](buffer4)ELSEUniAvgline=UNDEFINEDendifMyUNI = resultR = 50+(200-MyUNI*400)G =50+(200+MyUNI*500)DRAWCANDLE(Buffer2, Buffer3, Buffer2, Buffer3)coloured(R,G,0,40)return Buffer1 coloured(0,0,0) style(dottedline,1) as "0 level", Buffer2 coloured(0,0,0) style(dottedline,1) as "overbought level", Buffer3 coloured(0,0,0) style(dottedline,1) as "oversold level", Buffer4 coloured(0,130,250) style(LINE,2) as "UNIVERSAL VALUE",Buffer5 AS"1 level",Buffer6 AS"-1 level",UniAvgline coloured(250,150,0) style(dottedline,2) AS" UniversalAverage"04/24/2020 at 10:18 AM #127743Oui c’est possible bien sûr. Si tu ajoutes un DRAWCANDLE qui utilise les valeurs de tes variables “borne haute” et “borne basse”, tu auras le même effet. Après pour le choix des couleurs, c’est toi qui voit, ou alors faudrait me l’expliquer un peu mieux car j’ai rien compris pour le moment 😆
04/24/2020 at 11:33 AM #12777204/24/2020 at 12:12 PM #127778Voilà ce que ça pourrait donner avec ta condition sur le MACD, donc tu peux modifier cela à ta convenance maintenant.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647// Distance moyenne cours / KAMA50Period = 50FastPeriod = 2SlowPeriod = 30Fastest = 2 / (FastPeriod + 1)Slowest = 2 / (SlowPeriod + 1)if barindex < Period+1 thenKama=closeelseNum = abs(close-close[Period])Den = summation[Period](abs(close-close[1]))ER = Num / DenAlpha = SQUARE(ER *(Fastest - Slowest )+ Slowest)KAMA = (Alpha * Close) + ((1 -Alpha)* Kama[1])endifavg = kamaif close > avg thendistanceup = abs(close - avg)endifif close < avg thendistancedown = abs(close - avg)endifa = average[50](distanceup)b = average[50](distancedown)imacd = MACD[12,26,9](close)if imacd>0 thencr=0cg=0cb=255elsecr=255cg=0cb=0endifdrawcandle(avg+A,avg+A,avg-b,avg-b) coloured(cr,cg,cb,50)return avg+A as "borne haute", avg-b as "borne basse"04/24/2020 at 12:16 PM #12778404/24/2020 at 1:10 PM #12779909/20/2021 at 7:28 AM #177925 -
AuthorPosts
Find exclusive trading pro-tools on