Conversion TV : Optimized Trend Tracker
Forums › ProRealTime English forum › ProBuilder support › Conversion TV : Optimized Trend Tracker
- This topic has 7 replies, 3 voices, and was last updated 8 months ago by supertiti.
-
-
02/23/2021 at 1:31 PM #162433
Hello,
Would it be possible to convert this indicator to PRT ? It’s a dynamic S/R line. (ScreenShot attached)
This is the complete code from tradingView.
Many unecassy lines because of the moving average type options and alerts system I guess.
The 2 usefull variables are “OTT Period” and “OTT Percent”
Thanks a lot
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122//@version=4// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/// © KivancOzbilgic//created by: @Anil_Ozeksi//developer: ANIL ÖZEKŞİ//author: @kivancozbilgicstudy("Optimized Trend Tracker","OTT", overlay=true)src = input(close, title="Source")length=input(2, "OTT Period", minval=1)percent=input(1.4, "OTT Percent", type=input.float, step=0.1, minval=0)showsupport = input(title="Show Support Line?", type=input.bool, defval=true)showsignalsk = input(title="Show Support Line Crossing Signals?", type=input.bool, defval=true)showsignalsc = input(title="Show Price/OTT Crossing Signals?", type=input.bool, defval=false)highlight = input(title="Show OTT Color Changes?", type=input.bool, defval=false)showsignalsr = input(title="Show OTT Color Change Signals?", type=input.bool, defval=false)highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)mav = input(title="Moving Average Type", defval="VAR", options=["SMA", "EMA", "WMA", "TMA", "VAR", "WWMA", "ZLEMA", "TSF"])Var_Func(src,length)=>valpha=2/(length+1)vud1=src>src[1] ? src-src[1] : 0vdd1=src<src[1] ? src[1]-src : 0vUD=sum(vud1,9)vDD=sum(vdd1,9)vCMO=nz((vUD-vDD)/(vUD+vDD))VAR=0.0VAR:=nz(valpha*abs(vCMO)*src)+(1-valpha*abs(vCMO))*nz(VAR[1])VAR=Var_Func(src,length)Wwma_Func(src,length)=>wwalpha = 1/ lengthWWMA = 0.0WWMA := wwalpha*src + (1-wwalpha)*nz(WWMA[1])WWMA=Wwma_Func(src,length)Zlema_Func(src,length)=>zxLag = length/2==round(length/2) ? length/2 : (length - 1) / 2zxEMAData = (src + (src - src[zxLag]))ZLEMA = ema(zxEMAData, length)ZLEMA=Zlema_Func(src,length)Tsf_Func(src,length)=>lrc = linreg(src, length, 0)lrc1 = linreg(src,length,1)lrs = (lrc-lrc1)TSF = linreg(src, length, 0)+lrsTSF=Tsf_Func(src,length)getMA(src, length) =>ma = 0.0if mav == "SMA"ma := sma(src, length)maif mav == "EMA"ma := ema(src, length)maif mav == "WMA"ma := wma(src, length)maif mav == "TMA"ma := sma(sma(src, ceil(length / 2)), floor(length / 2) + 1)maif mav == "VAR"ma := VARmaif mav == "WWMA"ma := WWMAmaif mav == "ZLEMA"ma := ZLEMAmaif mav == "TSF"ma := TSFmamaMAvg=getMA(src, length)fark=MAvg*percent*0.01longStop = MAvg - farklongStopPrev = nz(longStop[1], longStop)longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStopshortStop = MAvg + farkshortStopPrev = nz(shortStop[1], shortStop)shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStopdir = 1dir := nz(dir[1], dir)dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dirMT = dir==1 ? longStop: shortStopOTT=MAvg>MT ? MT*(200+percent)/200 : MT*(200-percent)/200plot(showsupport ? MAvg : na, color=#0585E1, linewidth=2, title="Support Line")OTTC = highlight ? OTT[2] > OTT[3] ? color.green : color.red : #B800D9pALL=plot(nz(OTT[2]), color=OTTC, linewidth=2, title="OTT", transp=0)alertcondition(cross(OTT[2], OTT[3]), title="Color ALARM", message="OTT Has Changed Color!")alertcondition(crossover(OTT[2], OTT[3]), title="GREEN ALERT", message="OTT GREEN BUY SIGNAL!")alertcondition(crossunder(OTT[2], OTT[3]), title="RED ALERT", message="OTT RED SELL SIGNAL!")alertcondition(cross(MAvg, OTT[2]), title="Cross Alert", message="OTT - Support Line Crossing!")alertcondition(crossover(MAvg, OTT[2]), title="Crossover Alarm", message="Support Line BUY SIGNAL!")alertcondition(crossunder(MAvg, OTT[2]), title="Crossunder Alarm", message="Support Line SELL SIGNAL!")alertcondition(cross(src, OTT[2]), title="Price Cross Alert", message="OTT - Price Crossing!")alertcondition(crossover(src, OTT[2]), title="Price Crossover Alarm", message="PRICE OVER OTT - BUY SIGNAL!")alertcondition(crossunder(src, OTT[2]), title="Price Crossunder Alarm", message="PRICE UNDER OTT - SELL SIGNAL!")buySignalk = crossover(MAvg, OTT[2])plotshape(buySignalk and showsignalsk ? OTT*0.995 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)sellSignallk = crossunder(MAvg, OTT[2])plotshape(sellSignallk and showsignalsk ? OTT*1.005 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)buySignalc = crossover(src, OTT[2])plotshape(buySignalc and showsignalsc ? OTT*0.995 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)sellSignallc = crossunder(src, OTT[2])plotshape(sellSignallc and showsignalsc ? OTT*1.005 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0,display=display.none)longFillColor = highlighting ? (MAvg>OTT ? color.green : na) : nashortFillColor = highlighting ? (MAvg<OTT ? color.red : na) : nafill(mPlot, pALL, title="UpTrend Highligter", color=longFillColor)fill(mPlot, pALL, title="DownTrend Highligter", color=shortFillColor)buySignalr = crossover(OTT[2], OTT[3])plotshape(buySignalr and showsignalsr ? OTT*0.995 : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)sellSignallr = crossunder(OTT[2], OTT[3])plotshape(sellSignallr and showsignalsr ? OTT*1.005 : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)02/23/2021 at 3:47 PM #16245203/17/2021 at 8:34 PM #16452203/18/2021 at 8:43 AM #164557I started looking at it at the beginning of the week, I'll get down to it. That said, it looks like yet another trailingstop type indicator (like the supertrend) based on a percentage deviation from the type of moving average you choose.
03/24/2021 at 2:37 PM #165179Conversion is done, you can download this indicator in the library:
1 user thanked author for this post.
03/24/2021 at 4:00 PM #16518903/06/2024 at 5:00 PM #229350Bonsoir à tous,
Encore un indicateur qui devrait retenir toute notre attention ! Je lui ai adjoint une moyenne pour adoucir les courbes.
OTTMA = average [p,m](pALL)
p = 2
m = 1 exponentielle
J’aimerai faire 2 screeners UP and DOWN quand les “closes” croisent la moyenne (OTTMA)
je n’arrive pas à créer le screener car le code me renvoie un problème avec ” averagetypevar”
Alors si quelqu’un peut aider il est le bienvenu.
Bons trades à tous.
ci-joint un graphe AIR LIQUIDE
03/09/2024 at 1:19 PM #229519Bonjour à tous,
Alors personne pour résoudre le problème à priori simple mais qui fonctionne pas ?
C1 = customclose crosses over OTTMA
pourquoi “averagetypevar” vient nos embêter ?!
Si quelqu’un a une idée il est le bienvenu
bon week-end
joint graphe de Nvidia avec la OTTMA
-
AuthorPosts
Find exclusive trading pro-tools on