द्विदिशात्मक सुपरट्रेंड रणनीति


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

अवलोकन

यह रणनीति एटीआर संकेतक द्वारा गणना की गई ऊपरी और निचली रेखाओं के आधार पर वर्तमान रुझान की दिशा का न्याय करती है और खरीदारी और बिक्री के संकेत देती है। जब कीमत ऊपरी पट्टी को तोड़ती है, तो यह बढ़ जाती है, और जब कीमत नीचे की पट्टी को तोड़ती है, तो यह गिर जाती है।

रणनीति सिद्धांत

  1. एटीआर सूचकांक की गणना करें, जो कीमतों के औसत उतार-चढ़ाव को दर्शाता है
  2. एटीआर मूल्य के आधार पर एक गुणांक द्वारा गणना की गई अपरलाइन और डाउनलाइन
  3. कीमतों के ऊपर-नीचे के संबंध का आकलन करें और प्रवृत्ति की दिशा निर्धारित करें
    • जब कीमतें ऊपर की ओर होती हैं, तो bullish प्रवृत्ति
    • जब कीमतों के नीचे ट्रैक, के लिए गिरावट की प्रवृत्ति
  4. प्रवृत्ति में बदलाव के दौरान खरीद और बिक्री के संकेत देना
    • जब एक बियर ट्रेंड एक बियर ट्रेंड में बदल जाता है, तो ऊपरी पटरी के पास एक खरीद संकेत दिया जाता है
    • जब एक bullish प्रवृत्ति से एक bearish प्रवृत्ति में बदल जाता है, तो नीचे की पटरी के पास एक बेचने का संकेत दिया जाता है
  5. दृश्य रूप से ऊपर और नीचे, प्रवृत्ति दिशा और खरीद और बिक्री संकेतों को प्रदर्शित करें

श्रेष्ठता विश्लेषण

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

जोखिम विश्लेषण

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

अनुकूलन दिशा

  • एटीआर चक्र के पैरामीटर को गतिशील रूप से अनुकूलित करने पर विचार किया जा सकता है ताकि बाजार में उतार-चढ़ाव के लिए अधिक उपयुक्त हो
  • विभिन्न किस्मों के लिए विभिन्न चक्रों के लिए पैरामीटर समायोजन रणनीतियों का अध्ययन किया जा सकता है
  • प्रवृत्ति को अन्य संकेतकों के साथ जोड़ा जा सकता है, जैसे कि मूल्य निर्धारण में वृद्धि
  • पैरामीटर सेटिंग्स को अनुकूलित करने के लिए मशीन लर्निंग तकनीक का उपयोग करें

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2022-10-01 00:00:00
end: 2023-10-07 00:00:00
period: 3d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

TradeId = "RVG"

InitCapital = 1000
InitPosition = 1000
InitCommission = 0.075
InitPyramidMax = 1
CalcOnorderFills = true
CalcOnTick = true

//@version=4
// strategy("Supertrend RG", overlay = true,process_orders_on_close=true,commission_type=strategy.commission.percent,commission_value=InitCommission,
//  currency=currency.USD,initial_capital=InitCapital,default_qty_type=strategy.cash, default_qty_value=InitPosition, calc_on_order_fills=CalcOnorderFills, calc_on_every_tick=CalcOnTick,pyramiding=InitPyramidMax)

//
////////////////////////////////////////////////////////////////////////////////
// BACKTESTING RANGE

// From Date 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=2018, title="From Year", minval=1970)

// To Date Inputs
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=2100, title="To Year", minval=1970)

// Calculate start/end date and time condition
startDate = timestamp(fromYear, fromMonth, fromDay, 00, 00)
finishDate = timestamp(toYear, toMonth, toDay, 00, 00)
time_cond = true



Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=true)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : 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)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
alertcondition(buySignal, title="SuperTrend Buy", message="SuperTrend Buy!")
alertcondition(sellSignal, title="SuperTrend Sell", message="SuperTrend Sell!")
changeCond = trend != trend[1]
alertcondition(changeCond, title="SuperTrend Direction Change", message="SuperTrend has changed direction!")


strategy.entry(TradeId + " Long", true, when=buySignal[1] and time_cond)
strategy.entry(TradeId + " Short", false, when=sellSignal[1] and time_cond)