आरएसआई संकेतक पर आधारित लंबी प्रवृत्ति का अनुसरण करने की रणनीति


निर्माण तिथि: 2023-12-25 14:32:19 अंत में संशोधित करें: 2023-12-25 14:32:19
कॉपी: 1 क्लिक्स: 633
1
ध्यान केंद्रित करना
1623
समर्थक

आरएसआई संकेतक पर आधारित लंबी प्रवृत्ति का अनुसरण करने की रणनीति

अवलोकन

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

रणनीति सिद्धांत

यह रणनीति आरएसआई का उपयोग करती है ताकि यह पता लगाया जा सके कि क्या शेयर की कीमत अधिक है या कम है। आरएसआई, ओवरबॉय और ओवरसोल लाइनों के संयोजन के साथ, एक खरीद और बेचने का संकेत देता है। विशेष रूप से, यदि आरएसआई 20 के ओवरसोल लाइन को पार करता है, तो यह एक खरीद का संकेत देता है; यदि आरएसआई 80 के ओवरसोल लाइन को पार करता है, तो यह एक बेचने का संकेत देता है।

मल्टी-हेड पोजीशन में प्रवेश करने के बाद, रणनीति नीचे जाने के जोखिम को नियंत्रित करने के लिए एक प्रारंभिक स्टॉप-लॉस लाइन स्थापित करती है। साथ ही, दो अलग-अलग अनुपात में स्टॉप-लॉस लाइनें स्थापित की जाती हैं, जो स्टॉप-लॉक को मुनाफे में बंद कर देती हैं। विशेष रूप से, पहले 50% की स्थिति को रोकें, स्टॉप-लागत खरीद मूल्य का 3% है; फिर शेष 50% की स्थिति को रोकें, स्टॉप-लागत खरीद मूल्य का 5% है।

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

रणनीतिक लाभ

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

जोखिम विश्लेषण

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

अनुकूलन दिशा

  • अन्य संकेतकों के साथ संयोजन में आरएसआई संकेतों को फ़िल्टर करें, संकेत की सटीकता में सुधार करें
  • जमा की संख्या और अनुपात पर प्रतिबंध जोड़ना
  • विभिन्न आरएसआई मापदंडों के प्रभाव का परीक्षण करना
  • स्टॉपलॉस को अनुकूलित करें और जोखिम को कम करें

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-12-17 00:00:00
end: 2023-12-24 00:00:00
period: 1m
basePeriod: 1m
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/

//@version=5

strategy(title='RSI Long Strategy', overlay=true, pyramiding=5, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=false, slippage=0, commission_type=strategy.commission.percent, commission_value=0.075)
strat_dir_input = input.string(title='Strategy Direction', defval='long', options=['long', 'short', 'all'])
strat_dir_value = strat_dir_input == 'long' ? strategy.direction.long : strat_dir_input == 'short' ? strategy.direction.short : strategy.direction.all
strategy.risk.allow_entry_in(strat_dir_value)
//INPUTS


length = input(21)
overSold = input(20)
overBought = input(80)
p = close

vrsi = ta.rsi(p, length)
price = close
var bool long = na
var bool short = na

long := ta.crossover(vrsi, overSold)
short := ta.crossunder(vrsi, overBought)

var float last_open_long = na
var float last_open_short = na

last_open_long := long ? close : nz(last_open_long[1])
last_open_short := short ? close : nz(last_open_short[1])
mpoint=(last_open_long+last_open_short)/2

entry_value = last_open_long
entry_value1 = last_open_short

// Rounding levels to min tick
nround(x) =>
    n = math.round(x / syminfo.mintick) * syminfo.mintick
    n
//
disp_panels = input(true, title='Display info panels?')
fibs_label_off = input(40, title='fibs label offset')
fibs_label_size = input.string(size.normal, options=[size.tiny, size.small, size.normal, size.large, size.huge], title='fibs label size')
r1_x = timenow + math.round(ta.change(time) * fibs_label_off)
r1_y = last_open_short
text1 = 'High : ' + str.tostring(nround(last_open_short))
s1_y = last_open_long
text3 = 'low : ' + str.tostring(nround(last_open_long))

R1_label = disp_panels ? label.new(x=r1_x, y=r1_y, text=text1, xloc=xloc.bar_time, yloc=yloc.price, color=color.orange, style=label.style_label_down, textcolor=color.black, size=fibs_label_size) : na
S1_label = disp_panels ? label.new(x=r1_x, y=s1_y, text=text3, xloc=xloc.bar_time, yloc=yloc.price, color=color.lime, style=label.style_label_up, textcolor=color.black, size=fibs_label_size) : na

label.delete(R1_label[1])
label.delete(S1_label[1])
//
plot(mpoint, title='avreage', color=color.new(color.red, 40), style=plot.style_linebr, linewidth=3, trackprice=true, offset=-9999)
plot(last_open_short, title='high', color=color.new(color.red, 40), style=plot.style_linebr, linewidth=3, trackprice=true, offset=-9999)
plot(last_open_long, title='low', color=color.new(color.blue, 40), style=plot.style_linebr, linewidth=3, trackprice=true, offset=-9999)
//
trend = input(false)
if barstate.islast and trend == true
    line z = line.new(bar_index[1], last_open_short[1], bar_index, last_open_short, extend=extend.both, color=color.red, style=line.style_dashed, width=1)
    line f = line.new(bar_index[1], mpoint[1], bar_index, mpoint, extend=extend.both, color=color.blue, style=line.style_dashed, width=1)
    line w = line.new(bar_index[1], last_open_long[1], bar_index, last_open_long, extend=extend.both, color=color.green, style=line.style_dashed, width=1)
    line.delete(z[1])
    line.delete(f[1])
    line.delete(w[1])
    
//bu = ta.crossover(close, mpoint)
//sz = ta.crossunder(close, mpoint)
//bu1 = ta.crossover(close, last_open_short)
sz1 = ta.crossunder(close, last_open_short)
bu2 = ta.crossover(close, last_open_long)
//sz2 = ta.crossunder(close, last_open_long)
//plotshape(sz, style=shape.triangledown, location=location.abovebar, color=color.new(color.orange, 0), size=size.tiny)
//plotshape(bu, style=shape.triangleup, location=location.belowbar, color=color.new(color.blue, 0), size=size.tiny)
//plotshape(sz1, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny)
//plotshape(bu1, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.tiny)
//plotshape(sz2, style=shape.triangledown, location=location.abovebar, color=color.new(color.red, 0), size=size.tiny)
//plotshape(bu2, style=shape.triangleup, location=location.belowbar, color=color.new(color.green, 0), size=size.tiny)

l = bu2
s = sz1 
if l
    strategy.entry('buy', strategy.long)
if s
    strategy.entry('sell', strategy.short)
per(pcnt) =>
    strategy.position_size != 0 ? math.round(pcnt / 100 * strategy.position_avg_price / syminfo.mintick) : float(na)
stoploss = input.float(title=' stop loss', defval=5, minval=0.01)
los = per(stoploss)
q1 = input.int(title=' qty_percent1', defval=50, minval=1)
q2 = input.int(title=' qty_percent2', defval=50, minval=1)
tp1 = input.float(title=' Take profit1', defval=3, minval=0.01)
tp2 = input.float(title=' Take profit2', defval=5, minval=0.01)
//tp4 = input.float(title=' Take profit4', defval=5, minval=0.01)
strategy.exit('x1', qty_percent=q1, profit=per(tp1), loss=los)
strategy.exit('x2', qty_percent=q2, profit=per(tp2), loss=los)