
ट्रिपल सुपरट्रेंड और स्टोच आरएसआई रणनीति एक मात्रात्मक ट्रेडिंग रणनीति है जिसमें कई समय के फ्रेम के साथ ट्रेंड फॉलो और ओवरबॉय ओवरसोल संकेतक शामिल हैं। यह रणनीति तीन अलग-अलग पैरामीटर सेट के साथ सुपरट्रेंड संकेतक का उपयोग करके बाजार की प्रवृत्ति का आकलन करती है, और स्टोच आरएसआई संकेतक के ओवरबॉय ओवरसोल सिग्नल के साथ मिलकर एक ट्रेडिंग सिग्नल भेजती है। विशिष्ट ऑपरेशन में, यह रणनीति दो तेज सुपरट्रेंड संकेतक द्वारा एक साथ खरीद / बेचने का संकेत देती है, यदि स्टोच आरएसआई संकेतक भी इस संकेत की पुष्टि करता है, तो यह एक उचित प्लस / शून्य ऑपरेशन करता है।
ट्रिपल सुपरट्रेंड और स्टोच आरएसआई रणनीतियों का मुख्य तर्क यह है कि सुपरट्रेंड सूचक और स्टोच आरएसआई सूचक के विभिन्न पैरामीटर सेट के साथ मिलकर ट्रेडिंग सिग्नल को फ़िल्टर करते हैं ताकि सिग्नल की गुणवत्ता में सुधार हो और गलत सिग्नल दर को कम किया जा सके।
सबसे पहले, यह रणनीति बाजार के मुख्य रुझानों का आकलन करने के लिए सुपरट्रेंड संकेतक के तीन सेटों का उपयोग करती है। सुपरट्रेंड संकेतक के तीनों सेटों के पैरामीटर सेट अलग-अलग होते हैं, और विभिन्न स्तरों के रुझान परिवर्तनों को पकड़ने के लिए समय-सीमा तेज से धीमी होती है। जब सबसे तेज और सबसे तेज सुपरट्रेंड संकेतक एक साथ खरीद / बेचने के संकेत देते हैं, तो हम प्रारंभिक रूप से मानते हैं कि संकेत कुछ विश्वसनीयता है।
दूसरा, रणनीति में स्टोच आरएसआई को शामिल किया जाता है ताकि यह पता लगाया जा सके कि क्या यह संकेत अत्यधिक ओवरबॉट या ओवरसोल्ड है। स्टोच आरएसआई, रैंडम सूचकांक आरएसआई और रैंडम सूचकांक स्टोचैस्टिक के लाभों को जोड़कर, यह निर्धारित करने के लिए प्रभावी है कि बाजार ओवरबॉट या ओवरसोल्ड है या नहीं। यदि सबसे तेज और सबसे तेज सुपरट्रेंड सिग्नल स्टोच आरएसआई के संकेतों के अनुरूप हैं, तो हम अंतिम खरीद/बिक्री संकेत भेज सकते हैं।
ट्रिपल सुपरट्रेंड और स्टोच आरएसआई रणनीतियों को कई संकेतकों और कई समय-सीमाओं के संयोजन के माध्यम से बाजार के शोर को प्रभावी ढंग से फ़िल्टर करने, संकेतों की विश्वसनीयता बढ़ाने और गलत ट्रेडों की घटना को कम करने के लिए उपयोग किया जाता है।
ट्रिपल सुपरट्रेंड और स्टोच आरएसआई रणनीतियों का सबसे बड़ा लाभ बहु-सूचक और बहु-समय सीमाओं के प्रभावी संयोजन में है, जो हमें निम्नलिखित लाभ प्रदान करता हैः
गलत ट्रेडिंग सिग्नल को कम करना. ट्रिपल सुपरट्रेंड इंडिकेटर और स्टोच आरएसआई इंडिकेटर के संयोजन से एकल सूचक में मौजूद शोर और गलत संकेतों को काफी कम किया जा सकता है।
लाभ संकेत अनुपात में वृद्धि। हालांकि संकेत आवृत्ति कम है, लाभ संकेत अनुपात में उल्लेखनीय वृद्धि होगी।
प्रवृत्ति बाजारों के लिए उपयुक्त. बहु-समय फ़्रेम फ़िल्टर प्रवृत्ति को पकड़ने के लिए उपयुक्त है, और प्रवृत्ति अधिक स्पष्ट बाजार की स्थिति के लिए उपयुक्त है।
पैरामीटर अनुकूलन के माध्यम से बेहतर परिणाम प्राप्त करना आसान है। ट्रिपल इंडिकेटर पैरामीटर अनुकूलन के लिए अधिक संभावनाएं प्रदान करता है।
अपनी व्यक्तिगत शैली के अनुसार पैरामीटर को समायोजित कर सकते हैं. आप अपनी रणनीति को अपनी ट्रेडिंग शैली के अनुरूप बनाने के लिए पैरामीटर को स्वतंत्र रूप से समायोजित कर सकते हैं.
ट्रिपल सुपरट्रेंड और स्टोच आरएसआई रणनीतियों में कुछ जोखिम भी होते हैं, जो मुख्य रूप से निम्नलिखित पहलुओं पर केंद्रित होते हैंः
सिग्नल आवृत्ति में कमी। बहु-स्तरित फ़िल्टरिंग तंत्र के कारण रणनीतियों में ट्रेडिंग आवृत्ति में स्पष्ट कमी आती है।
कुछ संकेतों को याद करना आसान है। रणनीति की रूढ़िवादीता कुछ संभावित अवसरों को याद करने के लिए आसान बनाती है।
अधिक संकेतक और पैरामीटर के साथ, रणनीति को अनुकूलित करना अधिक कठिन है।
यह भी एक सीमित समय सीमा के साथ एक रणनीति के लिए लचीलापन को सीमित करता है।
उपरोक्त जोखिमों के लिए, हम सूचकांक मापदंडों को समायोजित करके और अधिक सहायक निर्णय सूचकांकों को पेश करके अनुकूलन कर सकते हैं, ताकि रणनीति जोखिम को नियंत्रित करने के साथ-साथ उच्च लाभप्रदता प्राप्त कर सके।
ट्रिपल सुपरट्रेंड और स्टोच आरएसआई रणनीतियों में अभी भी अधिक अनुकूलन के लिए जगह है, मुख्य रूप से निम्नलिखित पहलुओं से शुरू किया जा सकता हैः
इष्टतम पैरामीटर मिलान खोजने के लिए सूचक पैरामीटर के सेट को समायोजित करें। इष्टतम पैरामीटर खोजने के लिए अधिक सूचक पैरामीटर परीक्षण के सेट को पेश किया जा सकता है।
स्टॉप-लॉस और स्टॉप-आउट रणनीतियों को जोड़ना, एकल-व्यापार जोखिम को नियंत्रित करना। यह रणनीति की स्थिरता को काफी बढ़ा सकता है।
संकेत सत्यापन के लिए अधिक निर्णय सूचकांक की शुरूआत करना। उदाहरण के लिए, लेन-देन की मात्रा सूचकांक की शुरूआत करना।
अनुकूलन क्षमता जोड़े गए। यह रणनीति को स्वचालित रूप से अनुकूलित करने और बाजार में बदलाव के लिए पैरामीटर को समायोजित करने की अनुमति देता है।
AI एल्गोरिदम का उपयोग करके संकेतक संकेतों की सटीकता की भविष्यवाणी करना।
निरंतर अनुकूलन के साथ, ट्रिपल सुपरट्रेंड और स्टोच आरएसआई रणनीति एक स्थिर, कुशल मात्रात्मक ट्रेडिंग रणनीति में विकसित हो सकती है, जिससे हमें काफी अल्फा मिल सकता है।
ट्रिपल सुपरट्रेंड और स्टोच आरएसआई रणनीति ने एक अद्वितीय ट्रेंड-फॉलोइंग ट्रेडिंग रणनीति बनाने के लिए बहु-समय फ्रेम विश्लेषण को ओवरबॉट और ओवरसोल्ड निर्णयों के साथ सफलतापूर्वक जोड़ा। यह ट्रेंड-फॉलोइंग और इंडिकेटर-फ़िल्टरिंग के दोहरे लाभ को बरकरार रखता है, और शोर को कम करते हुए लाभदायक संकेतों की मात्रा को बढ़ाता है। हालांकि रणनीति के लिए जोखिम और अनुकूलन के लिए जगह बनी हुई है, इसकी लाभप्रदता और स्थिरता को पैरामीटर समायोजन और रणनीति के अनुकूलन के माध्यम से और बढ़ाया जा सकता है। कुल मिलाकर, ट्रिपल सुपरट्रेंड और स्टोच आरएसआई रणनीति क्वांटिफाइड ट्रेडिंग अभ्यास के लिए एक उच्च गुणवत्ता वाली रणनीति विकल्प प्रदान करती है।
/*backtest
start: 2022-11-29 00:00:00
end: 2023-04-17 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © M3RZI
//@version=4
strategy("3x Supertrend and Stoch RSI", overlay = true, max_bars_back = 1000)
//INPUTS
STATRLENGTH1 = input(10, title = "Fast Supertrend ATR Length", type = input.integer, group = "SUPERTREND SETTINGS")
STATRMULT1 = input(1, title = "Fast Supertrend ATR Multiplier", type = input.float, group = "SUPERTREND SETTINGS")
STATRLENGTH2 = input(11, title = "Medium Supertrend ATR Length", type = input.integer, group = "SUPERTREND SETTINGS")
STATRMULT2 = input(2, title = "Medium Supertrend ATR Multiplier", type = input.float, group = "SUPERTREND SETTINGS")
STATRLENGTH3 = input(12, title = "Slow Supertrend ATR Length", type = input.integer, group = "SUPERTREND SETTINGS")
STATRMULT3 = input(3, title = "Slow Supertrend ATR Multiplier", type = input.float, group = "SUPERTREND SETTINGS")
stochK = input(3, title = "K (Stochastic Fast)", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
stochD = input(3, title = "D (Signal Line)", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
rsiLength = input(14, title = "RSI Length", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
stochLength = input(14, title = "Stochastic Length", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
rsiSource = input(close, title = "RSI Source", type = input.source, group = "STOCHASTIC RSI SETTINGS")
stochRestrictions = input(false, title = "Restrict crosses to overbought/oversold territory", type = input.bool, group = "STOCHASTIC RSI SETTINGS")
overboughtLine = input(80, title = "Stochastic RSI Upper Band", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
oversoldLine = input(20, title = "Stochastic RSI Lower Band", type = input.integer, group = "STOCHASTIC RSI SETTINGS")
EMALength = input(200, title = "EMA Length", type = input.integer, group = "EMA SETTINGS")
SLStrategy = input("ATR Based", title = "Stop Loss Strategy", options = ["ATR Based"],type = input.string, group = "POSITION EXIT SETTINGS")
SLATRLength = input(14, title = "Stop Loss ATR Length", type = input.integer, group = "POSITION EXIT SETTINGS")
SLATRMult = input(2.7, title = "Stop Loss ATR Multiplier", type = input.float, group = "POSITION EXIT SETTINGS")
TPStrategy = input("ATR Based", title = "Take Profit Strategy", options = ["ATR Based"],type = input.string, group = "POSITION EXIT SETTINGS")
TPATRLength = input(14, title = "Take Profit ATR Length", type = input.integer, group = "POSITION EXIT SETTINGS")
TPATRMult = input(1.6, title = "Take Profit ATR Multiplier", type = input.float, group = "POSITION EXIT SETTINGS")
//SUPERTRENDS
[superTrend1,dir1] = supertrend(STATRMULT1,STATRLENGTH1)
[superTrend2,dir2] = supertrend(STATRMULT2,STATRLENGTH2)
[superTrend3,dir3] = supertrend(STATRMULT3,STATRLENGTH3)
directionST1 = dir1 == 1 and dir1[1] == 1 ? false : dir1 == -1 and dir1[1] == -1 ? true : na
directionST2 = dir2 == 1 and dir2[1] == 1 ? false : dir2 == -1 and dir2[1] == -1 ? true : na
directionST3 = dir3 == 1 and dir3[1] == 1 ? false : dir3 == -1 and dir3[1] == -1 ? true : na
//STOCH RSI
rsi = rsi(rsiSource, rsiLength)
k = sma(stoch(rsi, rsi, rsi, stochLength), stochK)
d = sma(k, stochD)
//EMA
ema = ema(close,EMALength)
//CONDITIONS LONG AND SHORT
var long = false
var longCondition = false
var short = false
var shortCondition = false
var drawing = false
var TP = 0.0
var SL = 0.0
var middle = 0.0
var initial = 0
stopSize = atr(SLATRLength) * SLATRMult
profitSize = atr(TPATRLength) * TPATRMult
longStop = close - stopSize
longProfit = close + profitSize
current = close
shortStop = close + stopSize
shortProfit = close - profitSize
barInitial = bar_index
if stochRestrictions
longCondition := close > ema and ((directionST1 == true and directionST2 == true) or (directionST2 == true and directionST3 == true)) and crossover(k,d) and k < oversoldLine and not long and not drawing
shortCondition := close < ema and ((directionST1 == false and directionST2 == false) or (directionST2 == false and directionST3 == false)) and crossunder(k,d) and k > overboughtLine and not short and not drawing
else
longCondition := close > ema and ((directionST1 == true and directionST2 == true) or (directionST2 == true and directionST3 == true)) and crossover(k,d) and not long and not drawing
shortCondition := close < ema and ((directionST1 == false and directionST2 == false) or (directionST2 == false and directionST3 == false)) and crossunder(k,d) and not short and not drawing
if longCondition
long := true
short := false
drawing := true
TP := longProfit
middle := current
SL := longStop
initial := barInitial
strategy.entry("Long", strategy.long, 10)
strategy.exit("Long exit","Long", limit = TP, stop = SL)
alert("Long signal Supertrend \n Profit:"+tostring(TP)+"\Curret price:"+tostring(close)+"\Stop:"+tostring(SL),alert.freq_once_per_bar_close)
//label.new(bar_index,low,text = "Long\nTP:"+tostring(TP)+"\nSL:"+tostring(SL)+"\nAbierto:"+tostring(current), yloc = yloc.belowbar, textcolor = color.white, color = color.green, size = size.small, style = label.style_label_up)
if shortCondition
short := true
long := false
drawing := true
TP := shortProfit
middle := current
SL := shortStop
initial := barInitial
strategy.entry("Short", strategy.short, 10)
strategy.exit("Short exit","Short",limit = TP , stop = SL)
alert("Short signal Supertrend \n Profit:"+tostring(TP)+"\Curret price:"+tostring(close)+"\Stop:"+tostring(SL),alert.freq_once_per_bar_close)
//label.new(bar_index,high,text = "Short\nTP:"+tostring(TP)+"\nSL:"+tostring(SL)+"\nAbierto:"+tostring(current), yloc = yloc.abovebar, textcolor = color.white, color = color.red, size = size.small, style = label.style_label_down)
if long and (high[1] >= TP or low[1] <= SL)
drawing := false
long := false
if high[1] >= TP
label.new(bar_index[int((bar_index - initial)/2)],TP, text = "Win (Long)", textcolor = color.white, color = color.green, size = size.small, style = label.style_label_down)
else
label.new(bar_index[int((bar_index - initial)/2)],SL, text = "Lose (Long)", textcolor = color.white, color = color.red, size = size.small, style = label.style_label_up)
if short and (low[1] <= TP or high[1] >= SL)
drawing := false
short := false
if low[1] <= TP
label.new(bar_index[int((bar_index - initial)/2)],TP, text = "Win (short)", textcolor = color.white, color = color.green, size = size.small, style = label.style_label_up)
else
label.new(bar_index[int((bar_index - initial)/2)],SL, text = "Lose (short)", textcolor = color.white, color = color.red, size = size.small, style = label.style_label_down)
//STRATEGY
//strategy.entry("buy", strategy.long, 10, when = longCondition)
//strategy.exit("bracket", "buy", 10, limit = TP, stop = SL)
//strategy.entry("short", strategy.long, 10, when = shortCondition)
//strategy.exit("bracket", "short", 10, limit = TP, stop = SL)
//DRAWING
plotshape(longCondition, title = "Long Signal", location=location.belowbar, style=shape.labelup, color=color.green, textcolor=color.white, size=size.small, text="Long")
plotshape(shortCondition, title = "Short Signal", location=location.abovebar, style=shape.labeldown, color=color.red, textcolor=color.white, size=size.small, text="Short")
profitLine = plot(drawing and drawing[1] ? TP : na, title = "Take profit", color = color.green, style = plot.style_linebr)
currentLine =plot(drawing and drawing[1] ? middle : na, title = "Middle Line", color = color.white, style = plot.style_linebr)
lossLine = plot(drawing and drawing[1] ? SL : na, title = "Stop Loss", color = color.red, style = plot.style_linebr)
fill(currentLine,profitLine, title = "Profit Background" ,color = color.new(color.green,75))
fill(currentLine,lossLine, title = "Loss Background" ,color = color.new(color.red,75))
plot(superTrend1, title = "Fast Supertrend", color = dir1 == 1 and dir1[1] == 1 ? color.red : dir1 == -1 and dir1[1] == -1 ? color.green : na)
plot(superTrend2, title = "Medium Supertrend", color = dir2 == 1 and dir2[1] == 1 ? color.red : dir2 == -1 and dir2[1] == -1 ? color.green : na)
plot(superTrend3, title = "Slow Supertrend", color = dir3 == 1 and dir3[1] == 1 ? color.red : dir3 == -1 and dir3[1] == -1 ? color.green : na)
plot(ema, title = "EMA",color = color.yellow)
//plot(k, color = color.blue)
//plot(d, color = color.orange)
//h1 = hline(80)
//h2 = hline(20)
//fill(h1,h2, color = color.new(color.purple,60))