ट्रिपल सुपरट्रेंड और स्टॉक आरएसआई रणनीति

लेखक:चाओझांग, दिनांकः 2023-12-06 14:29:00
टैगः

img

अवलोकन

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

रणनीति तर्क

ट्रिपल सुपरट्रेंड और स्टॉक आरएसआई रणनीति का मूल तर्क संकेत की गुणवत्ता में सुधार और झूठे संकेतों को कम करने के लिए विभिन्न मापदंडों के साथ सुपरट्रेंड संकेतकों और ट्रेड सिग्नल फ़िल्टरिंग के लिए स्टॉक आरएसआई संकेतक को जोड़ना है।

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

दूसरा, स्टॉक आरएसआई संकेतक को यह निर्धारित करने के लिए पेश किया जाता है कि जब संकेत होता है तो बाजार अत्यधिक ओवरबॉट या ओवरसोल्ड है या नहीं। स्टॉक आरएसआई संकेतक आरएसआई और स्टोकैस्टिक संकेतकों की ताकत को जोड़ती है, जिससे ओवरबॉट / ओवरसोल्ड बाजार की स्थिति पर प्रभावी निर्णय संभव हो जाते हैं। जब सबसे तेज़ और दूसरा सबसे तेज़ सुपरट्रेंड संकेत स्टॉक आरएसआई संकेतों के साथ संरेखित होते हैं, तो अंतिम खरीद / बिक्री संकेत ट्रिगर किए जा सकते हैं।

कई संकेतकों और समय सीमाओं के संयोजन के माध्यम से, ट्रिपल सुपरट्रेंड और स्टॉक आरएसआई रणनीति प्रभावी रूप से बाजार शोर को फ़िल्टर कर सकती है, सिग्नल विश्वसनीयता में सुधार कर सकती है, और गलत ट्रेडों को कम कर सकती है।

रणनीति के फायदे

ट्रिपल सुपरट्रेंड और स्टॉक आरएसआई रणनीति का सबसे बड़ा लाभ कई संकेतकों और समय सीमाओं के प्रभावी संयोजन में निहित है, जो निम्नलिखित लाभ लाता हैः

  1. गलत व्यापार संकेतों को कम करता है। ट्रिपल सुपरट्रेंड और स्टॉक आरएसआई संकेतकों का संयोजन व्यक्तिगत संकेतकों के साथ आने वाले शोर और झूठे संकेतों को काफी कम कर सकता है।

  2. लाभदायक संकेत अनुपात में सुधार होता है। संकेत आवृत्ति में कमी के बावजूद लाभदायक संकेतों का अनुपात काफी सुधार देखता है।

  3. ट्रेंडिंग बाजारों के लिए उपयुक्त। मल्टी-टाइमफ्रेम फ़िल्टरिंग मध्यम से दीर्घकालिक रुझानों को कैप्चर करने में सुविधा प्रदान करती है, ट्रेंडिंग बाजार वातावरणों को अच्छी तरह से फिट करती है।

  4. बेहतर प्रदर्शन के लिए आसान अनुकूलन। ट्रिपल संकेतक पैरामीटर अनुकूलन के लिए व्यापक संभावनाओं की अनुमति देते हैं।

  5. व्यक्तिगत ट्रेडिंग शैली को पूरा करने वाले अनुकूलन योग्य पैरामीटर। पैरामीटर को स्वतंत्र रूप से समायोजित किया जा सकता है ताकि किसी की अपनी ट्रेडिंग शैली को बेहतर ढंग से अनुकूलित किया जा सके।

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

ट्रिपल सुपरट्रेंड और स्टॉक आरएसआई रणनीति से जुड़े कुछ जोखिम भी हैंः

  1. सिग्नल की आवृत्ति में कमी। बहुस्तरीय फ़िल्टर तंत्र रणनीति की ट्रेडिंग आवृत्ति को काफी कम करता है।

  2. कुछ संभावित संकेतों को याद करने की प्रवृत्ति। रूढ़िवादी प्रकृति रणनीति को कुछ लाभदायक अवसरों को याद करने की संभावना बनाती है।

  3. अधिक मापदंड निर्भरता का अर्थ है अनुकूलन में अधिक कठिनाई।

  4. सीमित ट्रेंड फॉलो करने की क्षमता। बहु-टाइमफ्रेम संयोजन भी रणनीति के ट्रेंड फॉलो करने की लचीलापन को सीमित करता है।

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

अनुकूलन दिशाएँ

ट्रिपल सुपरट्रेंड और स्टॉक आरएसआई रणनीति के आगे अनुकूलन के लिए अभी भी जगह हैः

  1. सर्वोत्तम संयोजन के लिए संकेतक मापदंडों को समायोजित करें। इष्टतम खोजने के लिए मापदंडों के अधिक सेट का परीक्षण किया जा सकता है।

  2. जोखिम नियंत्रण में सुधार के लिए स्टॉप लॉस/टेक प्रॉफिट लागू करें। इससे रणनीति की स्थिरता में काफी सुधार हो सकता है।

  3. सिग्नल सत्यापन के लिए अधिक संकेतक शामिल करें, उदाहरण के लिए वॉल्यूम संकेतक।

  4. परिवर्तित बाजार गतिशीलता के अनुसार स्वचालित रूप से मापदंडों का अनुकूलन करने के लिए अनुकूलन क्षमताओं में निर्मित।

  5. प्रदर्शन की भविष्यवाणी के लिए मशीन लर्निंग एल्गोरिदम को मिलाएं, संकेत की सटीकता का आकलन करें।

निरंतर अनुकूलन के साथ, ट्रिपल सुपरट्रेंड और स्टॉक आरएसआई रणनीति एक स्थिर, कुशल ट्रेडिंग प्रणाली में विकसित हो सकती है, जो काफी अल्फा प्रदान करती है।

निष्कर्ष

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


/*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))




अधिक