Một chỉ số hoàn toàn mới từ nhà phát triển của chỉ số MOST (Moving Stop Loss) Anıl Özekşi.
Optimized Trend Tracker OTT là một chỉ số cung cấp cho các nhà giao dịch để tìm thấy một xu hướng hiện tại hoặc nói cách khác để xem chúng ta đang ở phía nào của xu hướng hiện tại.
Chúng ta đang chịu ảnh hưởng của xu hướng tăng trong những trường hợp mà giá trên OTT, dưới ảnh hưởng của xu hướng giảm, khi giá thấp hơn OTT có thể nói là chúng ta đang ở đó.
Parameter đầu tiên trong chỉ số OTT được thiết lập bởi hai tham số là thời gian/chiều dài.
OTT sẽ nhạy cảm với xu hướng nếu nó nhỏ hơn. Và ngược lại, sẽ ít nhạy cảm hơn khi nó dài hơn.
Khi thời gian kéo dài nó sẽ trở nên ít nhạy cảm hơn với xu hướng nhỏ và hành động giá.
Bằng cách này, sự lựa chọn của bạn về thời gian, sẽ liên quan chặt chẽ đến loại xu hướng nào bạn quan tâm.
Các thông số phần trăm OTT trong OTT là một hệ số tối ưu hóa. Các giá trị nhỏ tốt hơn trong việc nắm bắt biến động ngắn hạn, trong khi các giá trị lớn sẽ phù hợp hơn với xu hướng dài hạn.
Ngoài ra, khi OTT được sử dụng với đường hỗ trợ trong đó, mua và bán tín hiệu nó sẽ trở thành một chỉ số sản xuất.
Bạn có thể sử dụng báo động mặc định OTT và tín hiệu Mua bán như:
1- Mua khi giá cao hơn OTT Bán khi giá thấp hơn OTT
2- Mua khi đường hỗ trợ OTT vượt qua đường OTT. Bán khi OTT hỗ trợ đường băng qua dưới đường OTT.
3- Mua khi đường OTT là màu xanh lá cây và làm cho cao hơn. Bán khi dòng OTT là màu đỏ và làm cho thấp hơn.
Lưu ý: Một bài viết nhỏ với phụ đề tiếng Anh sẽ sớm có trên kênh Youtube của tôi.Kiểm tra lại
/*backtest start: 2022-04-06 00:00:00 end: 2022-05-05 23:59:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@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: @kivancozbilgic study("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] : 0 vdd1=src<src[1] ? src[1]-src : 0 vUD=sum(vud1,9) vDD=sum(vdd1,9) vCMO=nz((vUD-vDD)/(vUD+vDD)) VAR=0.0 VAR:=nz(valpha*abs(vCMO)*src)+(1-valpha*abs(vCMO))*nz(VAR[1]) VAR=Var_Func(src,length) Wwma_Func(src,length)=> wwalpha = 1/ length WWMA = 0.0 WWMA := 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) / 2 zxEMAData = (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)+lrs TSF=Tsf_Func(src,length) getMA(src, length) => ma = 0.0 if mav == "SMA" ma := sma(src, length) ma if mav == "EMA" ma := ema(src, length) ma if mav == "WMA" ma := wma(src, length) ma if mav == "TMA" ma := sma(sma(src, ceil(length / 2)), floor(length / 2) + 1) ma if mav == "VAR" ma := VAR ma if mav == "WWMA" ma := WWMA ma if mav == "ZLEMA" ma := ZLEMA ma if mav == "TSF" ma := TSF ma ma MAvg=getMA(src, length) fark=MAvg*percent*0.01 longStop = MAvg - fark longStopPrev = nz(longStop[1], longStop) longStop := MAvg > longStopPrev ? max(longStop, longStopPrev) : longStop shortStop = MAvg + fark shortStopPrev = nz(shortStop[1], shortStop) shortStop := MAvg < shortStopPrev ? min(shortStop, shortStopPrev) : shortStop dir = 1 dir := nz(dir[1], dir) dir := dir == -1 and MAvg > shortStopPrev ? 1 : dir == 1 and MAvg < longStopPrev ? -1 : dir MT = dir==1 ? longStop: shortStop OTT=MAvg>MT ? MT*(200+percent)/200 : MT*(200-percent)/200 plot(showsupport ? MAvg : na, color=#0585E1, linewidth=2, title="Support Line") OTTC = highlight ? OTT[2] > OTT[3] ? color.green : color.red : #B800D9 pALL=plot(nz(OTT[2]), color=OTTC, linewidth=2, title="OTT", transp=0) 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) if buySignalk strategy.entry("entry long", strategy.long) else if sellSignallk strategy.entry("entry short", strategy.short)