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