दोहरी ओटीटी प्रवृत्ति अनुसरण रणनीति


निर्माण तिथि: 2023-10-08 15:10:31 अंत में संशोधित करें: 2023-10-08 15:10:31
कॉपी: 0 क्लिक्स: 912
1
ध्यान केंद्रित करना
1617
समर्थक

अवलोकन

डबल ओटीटी ट्रेंड ट्रैकिंग रणनीति एक सुधारित ओटीटी रणनीति है, जो डबल ओटीटी लाइनों और गुणांकों को जोड़ती है ताकि बाजार में सुधार के समय के लिए झूठे संकेतों का बेहतर जवाब दिया जा सके। यह रणनीति तुर्की के व्यापारी Anıl Özekşi द्वारा विकसित की गई है, जिन्होंने अपने वीडियो ट्यूटोरियल में इस रणनीति के डिजाइन विचार को विस्तार से समझाया है।

सिद्धांत

दोहरी ओटीटी रणनीति का मूल यह है कि दो अनुकूलित प्रवृत्ति ट्रैकिंग लाइनों का उपयोग करके प्रवृत्ति की दिशा का न्याय करें। यह पहले चलती औसत एमएवीजी की गणना करता है, और फिर एमएवीजी मूल्य के प्रतिशत के आधार पर लंबी स्टॉप लाइन और शॉर्ट स्टॉप लाइन को प्राप्त करता है। जब कीमत लंबी स्टॉप लाइन को पार करती है तो यह एक bullish संकेत है, और जब यह छोटी स्टॉप लाइन को पार करती है तो यह एक bullish संकेत है।

इस रणनीति में दो सुधार किए गए हैं, ताकि बाजार को ठीक करने के लिए झूठे संकेतों से निपटा जा सकेः

  1. दो ऊर्ध्वाधर स्थानांतरित ओटीटी लाइनें जोड़ी गई हैं, ओटीटीअप और ओटीटीडीएन, जो ओटीटी के मामूली ऊपर और नीचे हैं। केवल जब कीमत इन दो स्थानांतरण लाइनों को तोड़ती है, तो वास्तविक व्यापार संकेत उत्पन्न होता है।

  2. दो-बिज ओटीटी लाइनों को ठीक से समायोजित करने के लिए एक छोटा सा कोफ फैक्टर पेश किया गया है, जिससे यह बाजार के लिए अधिक सटीक रूप से अनुकूल हो सके।

इस प्रकार के दोहरे ओटीटी डिजाइन के माध्यम से, अधिकांश स्टॉक बाजार के शोर को फ़िल्टर किया जा सकता है, जिससे गलत सिग्नल उत्पन्न होने से बचा जा सकता है। इस प्रकार, रुझान मोड़ बिंदुओं को बेहतर ढंग से पकड़ने और समय पर स्थिति को बदलने में मदद मिल सकती है। यह दोहरी ओटीटी रणनीति का सबसे बड़ा लाभ है।

लाभ

  • दोहरी ओटीटी लाइन डिजाइन का उपयोग करके, फ़र्ज़ी संकेतों को प्रभावी ढंग से फ़िल्टर किया जा सकता है, जिससे रणनीति की स्थिरता बढ़ जाती है
  • बढ़ाया गया सूक्ष्म समायोजन गुणांक coef OTT लाइनों को बाजार प्रतिक्रिया के करीब लाता है
  • लेखक Anıl Özekşi ने वीडियो में इस रणनीति के बारे में विस्तार से बताया है और इसे आसानी से समझना और अपनाना आसान है।
  • एकीकृत ईएमए, स्टॉप-लॉस लाइन और कई अन्य तकनीकी संकेतक बाजार की प्रवृत्ति को निर्धारित करते हैं
  • लेखक Anıl Özekşi एक प्रसिद्ध तुर्की व्यापारी हैं, जिनके पास एक निश्चित पेशेवर प्रतिष्ठा है।

जोखिम

  • ओटीटी सूचकांक अपने आप में परीक्षण को पीछे खींचने का जोखिम पैदा करते हैं, दोहरे ओटीटी डिजाइन इस समस्या को कम कर सकते हैं
  • बड़े पैमाने पर उतार-चढ़ाव की स्थिति में, स्टॉप-लॉस लाइन को अक्सर ट्रिगर किया जा सकता है, जिससे ओवर-ट्रेडिंग का खतरा होता है।
  • coefficient को सावधानीपूर्वक परीक्षण करने की आवश्यकता है ताकि इसे इष्टतम बनाया जा सके, अन्यथा प्रभाव में कमी आएगी
  • तुर्की भाषा में ट्यूटोरियल, भाषा बाधाएं एल्गोरिदम की सही समझ को प्रभावित कर सकती हैं
  • अपर्याप्त रिट्रेस डेटा, लंबी अवधि और अधिक बाजारों में रणनीति की प्रभावशीलता को सत्यापित करने की आवश्यकता

क्या करें?

  • स्टॉप-लॉस लाइन और दोहरे ओटीटी के बीच बफर बैंड जोड़ें, अतिसंवेदनशीलता से बचें
  • Coef के लिए अनुकूलित सेटिंग्स, ताकि यह फ़ीडबैक परिणामों के अनुरूप हो
  • अनुवाद लेखक के ट्यूटोरियल, सुनिश्चित करें कि एल्गोरिथ्म के तर्क को सही ढंग से समझा जाए
  • रणनीतिक मापदंडों की विश्वसनीयता को सत्यापित करने के लिए अधिक ऐतिहासिक परिदृश्यों के साथ परीक्षण करना

अनुकूलन दिशा

  • एक समायोज्य इनपुट मान के रूप में सेट करने के लिए विचार किया जा सकता है जैसे कि चक्र लंबाई
  • अन्य प्रकार के चलती औसत को आज़माएं और औसत एल्गोरिदम ढूंढें जो ओटीटीपी सिद्धांत के अनुरूप हों
  • विभिन्न व्यापारिक किस्मों के अनुसार अनुकूलित coefficient का आकार
  • गैर-प्रमुख ट्रेडिंग समय के दौरान गलत संकेतों से बचने के लिए फ़िल्टरिंग तंत्र जोड़ा गया
  • स्टॉप लाइन को गतिशील ट्रैकिंग में बदलना, जो वास्तविक समय में उतार-चढ़ाव के अनुसार समायोजित होता है
  • एआई का उपयोग करते हुए स्वचालित रूप से पैरामीटर सेटिंग्स को अनुकूलित करने के लिए मशीन लर्निंग एल्गोरिदम जोड़ना

कुल मिलाकर, डबल ओटीटी रणनीति ने अनिल Özekşi के ओटीपी अनुभव का पूरा लाभ उठाया और नवाचार किया। यह एक विश्वसनीय, अनुकूलन योग्य प्रवृत्ति ट्रैकिंग रणनीति ढांचे के रूप में काम करने की उम्मीद है। लेकिन बाजार में बदलाव के लिए अनुकूलन परीक्षण की आवश्यकता है।

संक्षेप

दोहरी ओटीटी रणनीति दोहरी अनुकूलन प्रवृत्ति ट्रैक लाइन और सूक्ष्म समायोजन गुणांक के माध्यम से, बाजार के झूठे सिग्नल की समस्या का प्रभावी ढंग से जवाब देती है। यह गतिशील ट्रैक प्रवृत्ति के लिए स्टॉप लाइन के साथ चलती औसत विचार का तर्कसंगत उपयोग करता है। यह रणनीति सरल व्यावहारिक है, प्रसिद्ध व्यापारियों के प्रत्यक्ष अनुभव से, गहराई से अध्ययन के लायक है। लेकिन हमें इसकी सीमाओं को समझना चाहिए, घमंड से बचना चाहिए, सावधानीपूर्वक सत्यापन करना चाहिए। केवल निरंतर अनुकूलन परीक्षण इसे एक विश्वसनीय प्रवृत्ति ट्रैक रणनीति बना सकता है।

रणनीति स्रोत कोड
/*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)