দ্বৈত OTT ট্রেন্ড অনুসরণ কৌশল


সৃষ্টির তারিখ: 2023-10-08 15:10:31 অবশেষে সংশোধন করুন: 2023-10-08 15:10:31
অনুলিপি: 0 ক্লিকের সংখ্যা: 912
1
ফোকাস
1617
অনুসারী

ওভারভিউ

ডাবল ওটিটি ট্রেন্ড ট্র্যাকিং কৌশলটি একটি উন্নত ওটিটি কৌশল যা ডাবল ওটিটি লাইন এবং ফ্যাক্টরগুলিকে সংযুক্ত করে যাতে বাজার পুনরুদ্ধার করার সময় মিথ্যা সংকেতগুলিকে আরও ভালভাবে মোকাবেলা করা যায়। এই কৌশলটি তুর্কি ব্যবসায়ী Anıl Özekşi দ্বারা বিকাশ করা হয়েছিল, যিনি তার ভিডিও টিউটোরিয়ালে এই কৌশলটির নকশা সম্পর্কে বিস্তারিতভাবে ব্যাখ্যা করেছেন।

মূলনীতি

ডাবল ওটিটি কৌশলটির মূল বিষয় হল প্রবণতার দিক নির্ধারণের জন্য দুটি অপ্টিমাইজড ট্রেন্ড ট্র্যাকিং লাইন ওটিটি ব্যবহার করা। এটি প্রথমে চলমান গড় এমএভিজি গণনা করে এবং তারপরে এমএভিজি মানের শতাংশের ভিত্তিতে দীর্ঘ স্টপ লাইন লংস্টপ এবং শর্ট স্টপ লাইন শর্টস্টপ পায়। দাম যখন দীর্ঘ স্টপ লাইন অতিক্রম করে তখন এটি একটি বিউড সিগন্যাল এবং যখন এটি সংক্ষিপ্ত স্টপ লাইন অতিক্রম করে তখন এটি একটি বিউড সিগন্যাল।

এই কৌশলটি নিম্নলিখিত দুটি ক্ষেত্রে উন্নত করা হয়েছে যাতে মিথ্যে সংকেত মোকাবেলা করা যায়ঃ

  1. দুটি উল্লম্বভাবে স্থানান্তরিত ওটিটি লাইন যোগ করা হয়েছে, যথাক্রমে OTTup এবং OTTdn, যা ওটিটির সামান্য আপ এবং ডাউন স্থানান্তরিত। প্রকৃত ট্রেডিং সিগন্যালটি কেবল তখনই উত্পন্ন হয় যখন দাম এই দুটি স্থানান্তরিত লাইনটি ভেঙে দেয়।

  2. একটি ছোট coefficient প্রবর্তন করা হয়েছে, যা দুই-ডিজিট ওটিটি লাইনকে আরও সঠিকভাবে বাজারে অভিযোজিত করার জন্য ব্যবহার করা হয়।

এই দ্বৈত ওটিটি ডিজাইনের সাহায্যে, বেশিরভাগ বাজারগুলির গোলমালটি ফিল্টার করা যায়, ভুল সংকেত তৈরি করা এড়ানো যায়। এইভাবে, প্রবণতার বিপরীত বিন্দুগুলি আরও ভালভাবে ধরা যায় এবং সময়মতো অবস্থান পরিবর্তন করা যায়। এটি দ্বৈত ওটিটি কৌশলগুলির সর্বাধিক সুবিধা।

সুবিধা

  • ডাবল ওটিটি লাইন ডিজাইন ব্যবহার করে, জাল সংকেতগুলিকে কার্যকরভাবে ফিল্টার করা যায় এবং কৌশল স্থিতিশীলতা বাড়ায়
  • OTT লাইনকে বাজারের প্রতিক্রিয়া থেকে আরও কাছাকাছি করে তোলার জন্য কোয়েফ বাড়ানো হয়েছে
  • Anıl Özekşi ভিডিওতে এই কৌশল সম্পর্কে বিস্তারিতভাবে ব্যাখ্যা করেছেন, যা সহজেই বোঝা যায় এবং ব্যবহার করা যায়।
  • সমন্বিত ইএমএ, স্টপ লিন ইত্যাদির মতো বিভিন্ন প্রযুক্তিগত সূচক বাজার প্রবণতা নির্ধারণ করে
  • লেখক Anıl Özekşi একজন বিখ্যাত তুর্কি ব্যবসায়ী, যার পেশাগত খ্যাতি রয়েছে

ঝুঁকি

  • ওটিটি সূচকগুলি নিজেই টেস্টিংয়ের ঝুঁকি তৈরি করতে পারে, ডাবল ওটিটি ডিজাইন এই সমস্যাটি হ্রাস করতে পারে
  • স্টপ লাইনগুলি ঘন ঘন ট্রিগার হতে পারে এবং বড় ধরনের অস্থিরতার মধ্যে ওভারট্রেডিংয়ের ঝুঁকি রয়েছে
  • coefficient এর সর্বোত্তম মান পেতে সাবধানে পরীক্ষা করা প্রয়োজন, অন্যথায় প্রভাবটি হ্রাস পাবে
  • ভিডিওটি তুর্কি ভাষার একটি টিউটোরিয়াল, যেখানে ভাষার প্রতিবন্ধকতা অ্যালগরিদমের সঠিক বোঝার উপর প্রভাব ফেলতে পারে।
  • রিটার্নিং ডেটার অভাব, দীর্ঘমেয়াদী এবং আরও বেশি বাজারে কৌশলগুলির কার্যকারিতা যাচাই করার প্রয়োজন

প্রতিকারঃ

  • অতিরিক্ত সংবেদনশীলতা এড়াতে স্টপ লিন্ড এবং ডাবল ওটিটির মধ্যে একটি বাফার যুক্ত করুন
  • Coefficient এর সেটিং অপ্টিমাইজ করা হয়েছে যাতে এটি রিটার্নের সাথে আরও সামঞ্জস্যপূর্ণ হয়
  • অ্যালগরিদমের লজিক সঠিকভাবে বোঝার জন্য লেখক টিউটোরিয়াল অনুবাদ করুন
  • কৌশলগত প্যারামিটারগুলির নির্ভরযোগ্যতা যাচাই করার জন্য আরও ঐতিহাসিক প্রেক্ষাপটে ব্যাক-টেস্টিং

অপ্টিমাইজেশান দিক

  • একটি প্যারামিটার যেমন একটি চক্র দৈর্ঘ্য হিসাবে একটি সামঞ্জস্যযোগ্য ইনপুট মান সেট বিবেচনা করা যেতে পারে
  • অন্যান্য প্রকারের চলমান গড় চেষ্টা করুন এবং গড়ের অ্যালগরিদম খুঁজুন যা OTP নীতির সাথে আরও সামঞ্জস্যপূর্ণ
  • বিভিন্ন লেনদেনের জাতের উপর নির্ভর করে কোয়েফ ফ্যাক্টরের আকারের অনুকূলিতকরণ
  • অ-প্রধান লেনদেনের সময়কালের ভুল সংকেত এড়াতে ফিল্টারিং ব্যবস্থা যুক্ত করা হয়েছে
  • স্টপ লাইন পরিবর্তন করুন গতিশীল ট্র্যাকিং, রিয়েল-টাইমে ওঠানামা অনুযায়ী সামঞ্জস্য করুন
  • মেশিন লার্নিং অ্যালগরিদম যুক্ত করুন, এআই ব্যবহার করে প্যারামিটার সেটিং স্বয়ংক্রিয়ভাবে অপ্টিমাইজ করুন

সংক্ষেপে, ডাবল ওটিটি কৌশলটি আনিল ওজেক্সির ওটিটিপি অভিজ্ঞতাকে পুরোপুরি ব্যবহার করে এবং উদ্ভাবন করে। এটি একটি নির্ভরযোগ্য, কাস্টমাইজযোগ্য প্রবণতা ট্র্যাকিং কৌশল কাঠামো হওয়ার সম্ভাবনা রয়েছে। তবে বাজারের পরিবর্তনের সাথে খাপ খাইয়ে নেওয়ার জন্য ক্রমাগত অপ্টিমাইজেশন পরীক্ষা করা দরকার।

সারসংক্ষেপ

ডাবল ওটিটি কৌশলটি ডাবল অপ্টিমাইজড ট্রেন্ড ট্র্যাকিং লাইন এবং সূক্ষ্ম সমন্বয়কারী সহযোগিতার মাধ্যমে বাজারের মিথ্যা সংকেত সমস্যার কার্যকর প্রতিক্রিয়া জানায়। এটি চলমান গড়ের ধারণাকে যুক্তিসঙ্গতভাবে ব্যবহার করে, স্টপ লস লাইনের সাহায্যে গতিশীল ট্রেন্ড ট্র্যাকিংয়ের জন্য। এই কৌশলটি সহজ এবং ব্যবহারিক, সুপরিচিত ব্যবসায়ীদের কাছ থেকে প্রাপ্ত অভিজ্ঞতা, গভীরভাবে অধ্যয়নের জন্য উপযুক্ত। তবে আমাদের অবশ্যই তার সীমাবদ্ধতা সম্পর্কে সচেতন হওয়া উচিত, অহংকার থেকে বিরত থাকা উচিত এবং সতর্কতার সাথে যাচাই করা উচিত। কেবলমাত্র ক্রমাগত অপ্টিমাইজড পরীক্ষা এটিকে নির্ভরযোগ্য ট্রেন্ড ট্র্যাকিং কৌশল হিসাবে তৈরি করতে পারে।

কৌশল সোর্স কোড
/*backtest
start: 2023-09-07 00:00:00
end: 2023-10-07 00:00:00
period: 4h
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

strategy("Twin Optimized Trend Tracker","TOTT", overlay=true)
src = input(close, title="Source")
length=input(40, "OTT Period", minval=1)
percent=input(1, "Optimization Constant", type=input.float, step=0.1, minval=0)
coeff=input(0.001, "Twin OTT Coefficient", type=input.float, step=0.001, minval=0)
showsupport = input(title="Show Support Line?", type=input.bool, defval=true)
showsignalsk = input(title="Show Signals?", type=input.bool, defval=true)
mav = input(title="Moving Average Type", defval="VAR", options=["SMA", "EMA", "WMA", "TMA", "VAR", "WWMA", "ZLEMA", "TSF"])
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
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 
OTTup=OTT*(1+coeff)
OTTdn=OTT*(1-coeff)

PPLOT=plot(showsupport ? MAvg : na, color=#0585E1, linewidth=2, title="Support Line")

pALLup=plot(nz(OTTup[2]), color=color.green, linewidth=2, title="OTTup", transp=0)
pALLdn=plot(nz(OTTdn[2]), color=color.red, linewidth=2, title="OTTdown", transp=0)

buySignalk = crossover(MAvg, OTTup[2])
sellSignalk = crossunder(MAvg, OTTdn[2])
K1=barssince(buySignalk)
K2=barssince(sellSignalk)
O1=barssince(buySignalk[1])
O2=barssince(sellSignalk[1])

plotshape(buySignalk and showsignalsk and O1>K2 ? min(low-abs(roc(low,1)),OTTdn-abs(roc(low,1))) : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
plotshape(sellSignalk and showsignalsk and O2>K1 ? max(high+abs(roc(high,1)),OTTup+abs(roc(high,1))) : 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 ? (O2>K1 ? color.green : na) : na
shortFillColor = highlighting ? (O1>K2 ? color.red : na) : na
fill(mPlot, PPLOT, title="UpTrend Highligter", color=longFillColor,transp=90)
fill(mPlot, PPLOT, title="DownTrend Highligter", color=shortFillColor,transp=90)
fill(pALLup, pALLdn, title="Flat Zone Highligter", color=color.blue,transp=90)



dummy0 = input(true, title = "=Backtest Inputs=")
FromDay    = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth  = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear   = input(defval = 2005, title = "From Year", minval = 2005)
ToDay      = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth    = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear     = input(defval = 9999, title = "To Year", minval = 2006)
Start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)
Finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)
Timerange() =>
    time >= Start and time <= Finish ? true : false
if buySignalk
    strategy.entry("Long", strategy.long)
if sellSignalk
    strategy.entry("Short", strategy.short)