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