Passage d'un indicateur en stratégie
Forums › ProRealTime forum Français › Support ProOrder › Passage d'un indicateur en stratégie
- This topic has 5 replies, 3 voices, and was last updated 4 years ago by finplus.
Viewing 6 posts - 1 through 6 (of 6 total)
-
-
10/23/2019 at 1:38 PM #110932
Bonjour Nicolas,
j’utilise un de tes indicateurs issu de tradingview et que tu avais super bien reproduit !
https://www.prorealcode.com/topic/ppk-tradingview/
Serait-il possible de le transformer en stratégie algo ? Par exemple, mettons tp10 et sl10, on affinera par la suite car cela dépend de l’UT.
Je suis certaine que tu vas encore nous démontrer tous tes talents !
Ci-dessous la version du code que j’utilise
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173// PEKIPEK NICO ON CHART by Matriciel 25.10.2018// <pre class="lang:probuilder decode:true ">longtermdiv = 1 //input(true, title="Use long term Divergences?")divlookbackperiod = 55//input(55, minval=1, title="Lookback Period")fastLength = 12//input(12, minval=1),slowLength= 26 //input(26,minval=1)//signalLength= 9 //input(9,minval=1)smoother = 2 //input(2,minval=1)source = customcloseP = (AverageTrueRange[2](close))fastMA = average[fastLength,1](source)slowMA = average[slowLength,1](source)mmacd = fastMA - slowMAmacd2=(mmacd/slowMA)*100d = average[smoother](macd2) // smoothing PPObullishPrice = lowpriceMins = (bullishPrice > bullishPrice[1] and bullishPrice[1] < bullishPrice[2]) or (low[1] = low[2] and low[1] < low and low[1] < low[3]) or (low[1] = low[2] and low[1] = low[3] and low[1] < low and low[1] < low[4]) or (low[1] = low[2] and low[1] = low[3] and low[1] and low[1] = low[4] and low[1] < low and low[1] < low[5]) // this line identifies bottoms and plateaus in the priceoscMins= d > d[1] and d[1] < d[2] // this line identifies bottoms in the PPOBottomPointsInPPO = oscMinsbearishPrice = highpriceMax = (bearishPrice < bearishPrice[1] and bearishPrice[1] > bearishPrice[2]) or (high[1] = high[2] and high[1] > high and high[1] > high[3]) or( high[1] = high[2] and high[1] = high[3] and high[1] > high and high[1] > high[4]) or (high[1] = high[2] and high[1] = high[3] and high[1] and high[1] = high[4] and high[1] > high and high[1] > high[5]) // this line identifies tops in the priceoscMax = d < d[1] and d[1] > d[2] // this line identifies tops in the PPOTopPointsInPPO = oscMax//avoid loops!if oscMins thencurrenttrough4=d[1] //valuewhen (oscMins, d[1], 0) // identifies the value of PPO at the most recent BOTTOM in the PPOoscMinsBar = barindexendifif oscMax thencurrenttrough5=d[1] //valuewhen (oscMax, d[1], 0) // identifies the value of PPO at the most recent TOP in the PPOoscMaxBar = barindexendifif priceMins thencurrenttrough6= low[1]//valuewhen (priceMins, low[1], 0) // this line identifies the low (price) at the most recent bottom in the PricepriceMinsBar = barindexif barindex-oscMinsBar<3 then //=line 47delayedlow=low[1]elsedelayedlow=0endifif priceMins<>priceMins[1] then //=line62longtermbullfilt=lowest[divlookbackperiod](source)[0]endifendifif priceMax thenpriceMaxBar = barindexcurrenttrough7= high[1]//valuewhen (priceMax, high[1], 0) // this line identifies the high (price) at the most recent top in the Priceif barindex-oscMaxBar<3 then //=line48delayedhigh=high[1]elsedelayedhigh=0endifif priceMax<>priceMax[1] then //=line63longtermbearfilt=highest[divlookbackperiod](source)[0]endifendif// only take tops/bottoms in price when tops/bottoms are less than 5 bars away//filter = barssince(priceMins) < 5 ? lowest(currenttrough6, 4) : naif barindex-priceMinsBar<5 thenfilter = lowest[4](currenttrough6)elsefilter=0endif//filter2 = barssince(priceMax) < 5 ? highest(currenttrough7, 4) : naif barindex-priceMaxBar<5 thenfilter2=highest[4](currenttrough7)elsefilter2=0endif//delayedbottom/top when oscillator bottom/top is earlier than price bottom/top//y11 = valuewhen(oscMins, delayedlow, 0)if oscMins then//y11=delayedlowy7=currenttrough4 //=line71y9 = currenttrough6 //=line74if oscMins<>oscMins[1] and filter2>0 theny2=filter2 //=line59y8=currenttrough4[1] //=line72endifendif//y12 = valuewhen(oscMax, delayedhigh, 0)if oscMax then//y12 = delayedhighy3=currenttrough5 //=line 65y10=currenttrough7 //=line75if oscMax<>oscMax[1] and filter>0 theny6=filter //=line60y4=currenttrough5[1] //=line66endifendif// only take tops/bottoms in price when tops/bottoms are less than 5 bars away, since 2nd most recent top/bottom in osc//y2=0//y6=0//for xyz=0 to barindex do////y2=valuewhen(oscMax, filter2, 1) // identifies the highest high in the tops of price with 5 bar lookback period SINCE the SECOND most recent top in PPO////y6=valuewhen(oscMins, filter, 1) // identifies the lowest low in the bottoms of price with 5 bar lookback period SINCE the SECOND most recent bottom in PPO//if filter2[xyz]<>filter2 and filter2>0 then//y2=filter2[xyz]//endif//if filter[xyz]<>filter and filter>0 then//y6=filter[xyz]//endif//if y2>0 and y6>0 then//break//endif//next//bulldiv= BottomPointsInPPO ? d[1] : na // plots dots at bottoms in the PPOif BottomPointsInPPo thendrawtext("●",barindex[1],low-P[1],dialog,bold,14) coloured(0,255,255)endif//beardiv= TopPointsInPPO ? d[1]: na // plots dots at tops in the PPOif TopPointsInPPO thendrawtext("●",barindex[1],high+P[1],dialog,bold,14) coloured(255,0,0)endifi = currenttrough5 < highest[divlookbackperiod](d) // long term bearish oscilator divergencei2 = y10 > longtermbearfilt // long term bearish top divergencei3 = delayedhigh > longtermbearfilt and delayedhigh>0 // long term bearish delayedhigh divergencei4 = currenttrough4 > lowest[divlookbackperiod](d) // long term bullish osc divergencei5 = y9 < longtermbullfilt // long term bullish bottom divi6 = delayedlow < longtermbullfilt and delayedlow>0// long term bullish delayedbottom div//plot(y10>y2 and oscMax and y3 < y4 ? d :na, title = "Bearish Divergence2", color=orange, style= circles, linewidth=4)if y10>y2 and oscMax and y3 < y4 then//drawtext("●",barindex,low-P,dialog,bold,14) coloured(255,165,0)endif//plot(y9<y6 and oscMins and y7 > y8 ? d :na, title = "Bullish Divergence2", color=purple, style=circles, linewidth=4)if y9<y6 and oscMins and y7 > y8 then//drawtext("●",barindex,high+P,dialog,bold,14) coloured(128,0,128)endif//plot(delayedlow<y6 and y7 > y8 ? d :na, title = "Bullish Divergence2", color=purple, style=circles, linewidth=4)if delayedlow<y6 and y7 > y8 and delayedlow>0 then//drawtext("●",barindex,low-P,dialog,bold,14) coloured(128,0,128)endif//plot(delayedhigh>y2 and y3 < y4 ? d :na, title = "Bearish Divergence2", color=orange, style= circles, linewidth=4)if delayedhigh>y2 and y3 < y4 and delayedhigh>0 then//drawtext("●",barindex,high+P,dialog,bold,14) coloured(255,165,0)endif//plot(long_term_div and oscMax and i and i2 ? d :na, title = "Bearish Divergence2", color=orange, style= circles, linewidth=4)if longtermdiv and oscMax and i and i2 then//drawtext("●",barindex,low-P,dialog,bold,14) coloured(255,165,0)endif//plot(long_term_div and oscMins and i4 and i5 ? d : na, title = "Bullish Divergence2", color=purple, style=circles, linewidth=4)if longtermdiv and oscMins and i4 and i5 then//drawtext("●",barindex,high+P,dialog,bold,14) coloured(128,0,128)endif//plot(long_term_div and i and i3 ? d :na, title = "Bearish Divergence2", color=orange, style= circles, linewidth=4)if longtermdiv and i and i3 then//drawtext("●",barindex,low-P,dialog,bold,14) coloured(255,165,0)endif//plot(long_term_div and i4 and i6 ? d : na, title = "Bullish Divergence2", color=purple, style=circles, linewidth=4)if longtermdiv and i4 and i6 then//drawtext("●",barindex,high+P,dialog,bold,14) coloured(128,0,128)endifreturn customclose as " customclose "Merci par avance
10/23/2019 at 1:48 PM #11093310/23/2019 at 2:05 PM #11093410/23/2019 at 2:33 PM #110936Ci-joint la stratégie inhérente aux boules bleus et rouges, finalement il ne persiste presque plus rien du code de l’indicateur original ! 🙂
12345678910111213141516171819202122232425262728293031// PEKIPEK NICO ON CHART by Matriciel 25.10.2018fastLength = 12//input(12, minval=1),slowLength= 26 //input(26,minval=1)smoother = 2 //input(2,minval=1)source = customclosefastMA = average[fastLength,1](source)slowMA = average[slowLength,1](source)mmacd = fastMA - slowMAmacd2=(mmacd/slowMA)*100d = average[smoother](macd2) // smoothing PPOoscMins= d > d[1] and d[1] < d[2] // this line identifies bottoms in the PPOBottomPointsInPPO = oscMinsoscMax = d < d[1] and d[1] > d[2] // this line identifies tops in the PPOTopPointsInPPO = oscMax//bulldiv= BottomPointsInPPO ? d[1] : na // plots dots at bottoms in the PPOif BottomPointsInPPo and not longonmarket thenbuy 1 contract at marketendif//beardiv= TopPointsInPPO ? d[1]: na // plots dots at tops in the PPOif TopPointsInPPO and not shortonmarket thensellshort 1 contract at marketendif10/23/2019 at 2:44 PM #11093705/18/2020 at 5:50 PM #132190 -
AuthorPosts
Viewing 6 posts - 1 through 6 (of 6 total)
Find exclusive trading pro-tools on
Similar topics: