आरएसआई डायवर्जेंस ट्रेडिंग रणनीति


निर्माण तिथि: 2023-10-25 16:47:14 अंत में संशोधित करें: 2023-10-25 16:47:14
कॉपी: 0 क्लिक्स: 846
1
ध्यान केंद्रित करना
1617
समर्थक

आरएसआई डायवर्जेंस ट्रेडिंग रणनीति

अवलोकन

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

सिद्धांत

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

यदि आरएसआई लाइन कम से ऊपर की पहचान की और कीमत लाइन उच्च से नीचे की पहचान की गई है, तो एक खरीद संकेत दिया जाएगा। यदि आरएसआई लाइन उच्च से नीचे की पहचान की और कीमत लाइन कम से ऊपर की पहचान की गई है, तो एक बेचने का संकेत दिया जाएगा। एक बार एक व्यापारिक संकेत बन जाने के बाद, रणनीति आरएसआई मूल्य के आकार के अनुसार उचित व्यापार कर सकती है।

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

लाभ

इस प्रकार के आरएसआई-विमुख ट्रेडिंग रणनीतियों के निम्नलिखित फायदे हैंः

  1. आरएसआई सूचकांक के विचलन को पकड़ने से मूल्य परिवर्तन को जल्दी से पता लगाया जा सकता है।

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

  3. आरएसआई सूचकांक के पैरामीटर को लचीला बनाया जा सकता है, जो बाजार के अवलोकन चक्र के अनुसार समायोजित किया जा सकता है, जो विभिन्न स्थितियों के अनुकूल है।

  4. स्टॉप, स्टॉप और ट्रैक स्टॉप सेटिंग्स के संयोजन के साथ, प्रत्येक ट्रेड पर जोखिम को प्रभावी ढंग से नियंत्रित किया जा सकता है।

  5. रणनीतिक ट्रेडिंग सिग्नल की आवृत्ति को मध्यम रखें, अत्यधिक घनी ट्रेडिंग से बचें।

  6. रणनीति स्पष्ट और समझने में आसान है, और इसे कंप्यूटर प्रोग्राम द्वारा लागू किया जा सकता है।

जोखिम

इस रणनीति के कुछ जोखिम भी हैं:

  1. आरएसआई विचलन 100% विश्वसनीय नहीं है और झूठे संकेत हो सकते हैं। अन्य संकेतकों के साथ संयोजन में फ़िल्टर संकेतों की आवश्यकता होती है।

  2. रुझान के दौरान, आरएसआई संकेतों से विचलन विफल हो सकता है और इसका उपयोग करने से बचना चाहिए।

  3. RSI पैरामीटर की गलत सेटिंग भी रणनीति के प्रभाव को प्रभावित कर सकती है। बहुत कम अवधि की सेटिंग ट्रेडिंग आवृत्ति और जोखिम को बढ़ा सकती है।

  4. यदि स्टॉपलॉस बहुत छोटा है, तो यह समय से पहले बंद हो सकता है; यदि स्टॉपलॉस बहुत बड़ा है, तो जोखिम को प्रभावी ढंग से नियंत्रित नहीं किया जा सकता है।

  5. ट्रैक स्टॉप जब कीमतों में भारी उतार-चढ़ाव होता है, तो यह समय से पहले बंद हो सकता है। बाजार में उतार-चढ़ाव के साथ एक उचित ट्रैक स्टॉप दूरी निर्धारित करने की आवश्यकता होती है।

इस जोखिम को निम्न उपायों से कम किया जा सकता हैः

  1. अन्य संकेतकों को जोड़ें, जैसे कि MACD, ब्रिलिन लाइन और अन्य, सिग्नल फ़िल्टरिंग के लिए, झूठे संकेतों को कम करें।

  2. इस रणनीति का उपयोग केवल अस्थिरता वाले शहरों में किया जाता है ताकि स्पष्ट रुझानों से बचा जा सके।

  3. आरएसआई पैरामीटर सेटिंग को अनुकूलित करें, सबसे अच्छा चक्र लंबाई चुनें। साथ ही विभिन्न बाजारों की पैरामीटर वरीयताओं का परीक्षण करें।

  4. ऐतिहासिक रीट्रेसिंग डेटा के आधार पर उचित स्टॉप और स्टॉप पोजीशन सेट करें।

  5. बाजार में उतार-चढ़ाव और जोखिम वरीयताओं के आधार पर ट्रैक किए गए स्टॉप की मात्रा को समायोजित करें।

अनुकूलन दिशा

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

  1. ट्रेडिंग सिग्नल को फ़िल्टर करने और सिग्नल की विश्वसनीयता बढ़ाने के लिए अन्य सूचकांकों को जोड़ना।

  2. मशीन लर्निंग तकनीक का उपयोग करके स्वचालित रूप से आरएसआई पैरामीटर सेटिंग्स का अनुकूलन करें।

  3. विभिन्न बाजार स्थितियों के आधार पर, गतिशील स्टॉप-लॉस एल्गोरिदम को डिज़ाइन करें। जैसे कि स्टॉप-लॉस को उतार-चढ़ाव की स्थिति में विस्तारित करना और ट्रेंड की स्थिति में स्टॉप-लॉस को छोटा करना।

  4. एक गतिशील स्थिति प्रबंधन एल्गोरिथ्म डिजाइन करें जो बाजार में उतार-चढ़ाव जैसे कारकों के आधार पर प्रत्येक व्यापार के लिए स्थिति के आकार को समायोजित करता है।

  5. ट्रेकिंग स्टॉप में अस्थिरता दर की अवधारणा को पेश करना, मूल्य में उतार-चढ़ाव की ताकत के आधार पर ट्रेकिंग स्टॉप की दूरी निर्धारित करना।

  6. विदेशी मुद्रा और क्रिप्टोकरेंसी जैसे अन्य बाजारों में रणनीति को तैनात करने का प्रयास करें।

  7. रणनीतिक रूप से स्वचालित लेनदेन के लिए एक मात्रात्मक लेनदेन प्रणाली का निर्माण करना।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-09-24 00:00:00
end: 2023-10-24 00:00:00
period: 4h
basePeriod: 15m
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/
// © faytterro

//@version=5
// strategy("RSI Divergence Strategy", overlay=true, scale = scale.none)
rsilen=input.int(14, title="rsi length")
rsisrc=input(close, title="source")
x=ta.rsi(rsisrc,rsilen)
len=input.int(14, title="RSI Divergence length", maxval=500)
tpb = input.float(25, title="take profit", group = "buy", step = 0.5)
sb = input.float(5, title="stop", group = "buy", step = 0.5)
tsb = input.float(0.25, title="trailing stop", group = "buy", step = 0.5)
tps = input.float(25, title="take profit", group = "sell", step = 0.5)
ss =input.float(5, title="stop", group = "sell", step = 0.5)
tss = input.float(0.25, title="trailing stop", group = "sell", step = 0.5)
src=close
extrapolation=0
zoom=input.int(0, title="zoom", maxval=27, minval=-27)
hline(300-zoom*10, color=color.rgb(54, 58, 69, 100))
hline(10, color=color.rgb(54, 58, 69, 100))
// for ax+b
xo=0.0
yo=0.0
xyo=0.0
xxo=0.0
for i=0 to len-1
    xo:= xo + i/(len)
    yo:= yo + x[len-1-i]/(len)
    xyo:= xyo + i*x[len-1-i]/(len)
    xxo:= xxo + i*i/(len)
dnm=ta.lowest(low,200)
dizi=array.new_float(len*2+1+extrapolation)
// linedizi=array.new_line()
a=(xo*yo-xyo)/(xo*xo-xxo)
b=yo-a*xo
for i=0 to len-1+extrapolation
    array.set(dizi,i,a*i+b)
//// for src
// for ax+b
xo2=0.0
yo2=0.0
xyo2=0.0
xxo2=0.0
for i=0 to len-1
    xo2:= xo2 + i/(len)
    yo2:= yo2 + src[len-1-i]/(len)
    xyo2:= xyo2 + i*src[len-1-i]/(len)
    xxo2:= xxo2 + i*i/(len)

dizi2=array.new_float(len*2+1+extrapolation)
// linedizi2=array.new_line()
a2=(xo2*yo2-xyo2)/(xo2*xo2-xxo2)
b2=yo2-a*xo2
for i=0 to len-1+extrapolation
    array.set(dizi2,i,a2*i+b2)
ttk=((array.get(dizi,0)<array.get(dizi,1)) and (array.get(dizi2,0)>array.get(dizi2,1)))? 1 : 
 ((array.get(dizi,0)>array.get(dizi,1)) and (array.get(dizi2,0)<array.get(dizi2,1)))? -1 : 0
cg=((array.get(dizi,0)<array.get(dizi,1)) and (array.get(dizi2,0)>array.get(dizi2,1)))// and ta.highest(ttk[1],len/2)<1)
cr=((array.get(dizi,0)>array.get(dizi,1)) and (array.get(dizi2,0)<array.get(dizi2,1)))// and ta.lowest(ttk[1],len/2)>-1)
bgcolor(color=(cg and ta.highest(ttk[1],len/2)<1)? color.rgb(76, 175, 79, 50) : 
 (cr and ta.lowest(ttk[1],len/2)>-1)? color.rgb(255, 82, 82, 50) : na, offset=0, display=display.none)
plot(x)

// for ax+b
xo3=0.0
yo3=0.0
xyo3=0.0
xxo3=0.0
for i=0 to len-1
    xo3:= xo3 + i/(len)
    yo3:= yo3 + x[len-1-i+(ta.barssince(cg))]/(len)
    xyo3:= xyo3 + i*x[len-1-i+(ta.barssince(cg))]/(len)
    xxo3:= xxo3 + i*i/(len)

dizi3=array.new_float(len*2+1+extrapolation)
// linedizi3=array.new_line()
a3=(xo3*yo3-xyo3)/(xo3*xo3-xxo3)
b3=yo3-a3*xo3
for i=0 to len-1+extrapolation
    array.set(dizi3,i,a3*i+b3)

// for ax+b
xo4=0.0
yo4=0.0
xyo4=0.0
xxo4=0.0
for i=0 to len-1
    xo4:= xo4 + i/(len)
    yo4:= yo4 + x[len-1-i+(ta.barssince(cr))]/(len)
    xyo4:= xyo4 + i*x[len-1-i+(ta.barssince(cr))]/(len)
    xxo4:= xxo4 + i*i/(len)

dizi4=array.new_float(len*2+1+extrapolation)
// linedizi4=array.new_line()
a4=(xo4*yo4-xyo4)/(xo4*xo4-xxo4)
b4=yo4-a4*xo4
for i=0 to len-1+extrapolation
    array.set(dizi4,i,a4*i+b4)

// line=line.new((last_bar_index-ta.barssince(cg)-len),
//  array.get(dizi3,0), 
//  last_bar_index-ta.barssince(cg),
//  array.get(dizi3,len-1), color=color.rgb(0,255,0), width=2)
// line2=line.new((last_bar_index-ta.barssince(cr)-len),
//  array.get(dizi4,0), 
//  last_bar_index-ta.barssince(cr),
//  array.get(dizi4,len-1), color=color.rgb(255, 0, 0, 0), width=2)
// line.delete(line[1])
// line.delete(line2[1])

alert=((array.get(dizi,0)<array.get(dizi,1)) and (array.get(dizi2,0)>array.get(dizi2,1)) and ta.highest(ttk[1],len/2)<1)
 or ((array.get(dizi,0)>array.get(dizi,1)) and (array.get(dizi2,0)<array.get(dizi2,1)) and ta.lowest(ttk[1],len/2)>-1)
alertcondition(alert)
hline(50)
rs=hline(30)
rss=hline(70)
fill(rs, rss, color=color.rgb(126, 87, 194, 90), title="RSI Background Fill")

longCondition = cg and ta.highest(ttk[1],len/2)<1 
if (longCondition)
    strategy.entry("Long", strategy.long)
    strategy.exit("exit long", "Long", limit = close*(100+tpb)/100 , stop =close*(100-sb)/100 , trail_price = close , trail_offset = close*tsb)

shortCondition = cr and ta.lowest(ttk[1],len/2)>-1 
if (shortCondition)
    strategy.entry("Short", strategy.short)
    strategy.exit("exit short", "Short", limit = close*(100-tps)/100, stop = close*(100+ss)/100, trail_price = close , trail_offset = close*tss)