संसाधन लोड हो रहा है... लोड करना...

सुपरट्रेंड एटीआर रणनीति

लेखक:चाओझांग, दिनांकः 2024-03-29 11:29:15
टैगः

img

अवलोकन

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

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

इस रणनीति के सिद्धांत इस प्रकार हैं:

  1. सुपरट्रेंड सूचक के मूल्य की गणना करें, और जब सुपरट्रेंड सूचक बदलता है तो खरीद या बिक्री संकेत उत्पन्न करें।
  2. स्टॉप लॉस और ले लाभ की कीमतों की गणना करने के लिए एटीआर संकेतक का प्रयोग करें। स्टॉप लॉस की कीमत वर्तमान मूल्य प्लस या माइनस एटीआर मूल्य गुणा एक गुणक है, और ले लाभ मूल्य एक जोखिम-लाभ अनुपात से गुणा स्टॉप लॉस की कीमत है।
  3. प्रत्येक व्यापार के जोखिम को नियंत्रित करने के लिए खाता शेष का एक निश्चित प्रतिशत और स्टॉप लॉस मूल्य के आधार पर स्थिति आकार की गणना करें।
  4. जब कोई खरीद संकेत उत्पन्न होता है, तो एक लंबी स्थिति खोलें, जिसमें स्टॉप लॉस की कीमत उस कीमत पर होती है जिस पर संकेत उत्पन्न होता है, जिसमें ATR मूल्य को गुणा करके घटाया जाता है, और लाभ लेने की कीमत उस मूल्य पर होती है जिस पर संकेत उत्पन्न होता है, जिसमें ATR मूल्य को गुणा करके गुणा किया जाता है और फिर जोखिम-लाभ अनुपात से गुणा किया जाता है।
  5. जब एक बिक्री संकेत उत्पन्न होता है, तो एक छोटी स्थिति खोलें, जिसमें स्टॉप लॉस मूल्य वह मूल्य होता है जिस पर संकेत उत्पन्न होता है, साथ ही एटीआर मूल्य गुणनफल से गुणा किया जाता है, और लाभ लेने की कीमत वह मूल्य होती है जिस पर संकेत उत्पन्न होता है, जिसमें एटीआर मूल्य गुणनफल से घटाया जाता है और फिर जोखिम-लाभ अनुपात से गुणा किया जाता है।

रणनीतिक लाभ

इस रणनीति के लाभ इस प्रकार हैंः

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

रणनीतिक जोखिम

इस रणनीति के जोखिम इस प्रकार हैंः

  1. अस्थिर बाजार में, बार-बार खरीदने और बेचने के संकेत उच्च लेनदेन लागत और फिसलने का कारण बन सकते हैं।
  2. फिक्स्ड स्टॉप लॉस और टेक प्रॉफिट अनुपात बाजार में बदलाव के अनुकूल नहीं हो सकते हैं, जिसके परिणामस्वरूप समय से पहले स्टॉप लॉस या छोटे लाभ हो सकते हैं।
  3. स्थिति के आकार की गणना ऐतिहासिक अस्थिरता पर निर्भर करती है, जिससे अस्थिरता में अचानक वृद्धि होने पर बड़े पैमाने पर ड्रॉडाउन हो सकते हैं।

उपरोक्त जोखिमों से निपटने के लिए निम्नलिखित उपाय किए जा सकते हैंः

  1. ट्रेडिंग आवृत्ति को कम करने के लिए अधिक सिग्नल फ़िल्टरिंग शर्तें जोड़ें।
  2. स्टॉप लॉस और टेक प्रॉफिट की गणना विधि को अनुकूलित करें, जैसे कि ट्रेलिंग स्टॉप लॉस या डायनेमिक टेक प्रॉफिट का उपयोग करना।
  3. स्थिति की गणना में जोखिम नियंत्रण कारकों को शामिल करें, जैसे कि अस्थिरता होने पर पदों को कम करना।

रणनीति अनुकूलन दिशा

इस रणनीति को निम्नलिखित क्षेत्रों में अनुकूलित किया जा सकता हैः

  1. अधिक तकनीकी संकेतकों जैसे कि एमएसीडी, आरएसआई आदि को ट्रेंड जजमेंट और सिग्नल की सटीकता में सुधार के लिए सिग्नल फिल्टरिंग के लिए सहायक शर्तों के रूप में पेश करना।
  2. सर्वोत्तम पैरामीटर संयोजन खोजने के लिए विभिन्न बाजारों और उत्पादों के लिए सुपरट्रेंड सूचक और एटीआर सूचक के मापदंडों का अनुकूलन करें।
  3. रणनीति की मजबूती में सुधार के लिए स्थिति की गणना में अधिक जोखिम नियंत्रण कारकों को शामिल करना, जैसे अधिकतम खाता निकासी, प्रति व्यापार अधिकतम जोखिम आदि।
  4. मुनाफा लेने की रणनीतियाँ जोड़ें, जैसे कि आंशिक लाभ लेने, लाभ लेने आदि, ताकि मुनाफा बढ़ता रहे।

उपरोक्त अनुकूलन रणनीति की लाभप्रदता और स्थिरता में सुधार कर सकते हैं, जबकि इसके जोखिम को कम कर सकते हैं, जिससे यह विभिन्न बाजार वातावरणों के अनुकूल हो सकता है।

सारांश

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


/*backtest
start: 2024-02-01 00:00:00
end: 2024-02-29 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradez99

//@version=5
strategy('Supertrend', overlay=true, format=format.price, precision=2)

Periods = input(title='ATR Period', defval=10)
src = input(hl2, title='Source')
Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3.0)
changeATR = input(title='Change ATR Calculation Method ?', defval=true)
showsignals = input(title='Show Buy/Sell Signals ?', defval=true)
highlighting = input(title='Highlighter On/Off ?', defval=true)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.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.new(color.green, 0))
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.new(color.green, 0))
plotshape(buySignal and showsignals ? up : na, title='Buy', text='Buy', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
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.new(color.red, 0))
plotshape(sellSignal and showsignals ? dn : na, title='Sell', text='Sell', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 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)

multiplier = input.float(title="ATR multiplier", defval = 1.5)
rr           = input.float(title="Risk:Reward", defval=1.0)
riskPerTrade = input.float(title="Risk Per Trade %", defval=1.0)
atr3 = ta.atr(14)

//calculate stops and targets 
longstop = close - (atr3 * multiplier)
shortstop = close + (atr3 * multiplier)
longStopDistance  = close - longstop
shortStopDistance = shortstop - close
longTarget  = close + (longStopDistance * rr)
shortTarget = close - (shortStopDistance * rr)

// Save stops & targets
var t_stop = 0.0
var t_target = 0.0

longCondition = buySignal 
if (longCondition)
    t_stop := longstop
    t_target := longTarget
    positionSize = math.floor((strategy.equity * (riskPerTrade/100)) / (close - t_stop))
    strategy.entry("Long", strategy.long, qty = positionSize)

shortCondition = sellSignal 
if (shortCondition)
    t_stop := shortstop
    t_target := shortTarget
    positionSize = math.floor((strategy.equity * (riskPerTrade/100)) / (t_stop - close))  
    strategy.entry("Short", strategy.short, qty = positionSize)

strategy.exit(id="Long Exit", from_entry="Long", limit=t_target, stop=t_stop)
strategy.exit(id="Short Exit", from_entry="Short", limit=t_target, stop=t_stop)


अधिक