फास्ट स्केलिंग आरएसआई स्विचिंग रणनीति v1.7

लेखक:चाओझांग, दिनांक: 2023-12-22 15:10:40
टैगः

img

अवलोकन

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

इस रणनीति के प्रमुख घटकों में निम्नलिखित शामिल हैंः

  1. फास्ट आरएसआई संकेतकः ओवरबॉट और ओवरसोल्ड स्तरों की पहचान करें
  2. कैंडलस्टिक पैटर्नः प्रवृत्ति दिशा निर्धारित करने में सहायता करें
  3. चलती औसत फ़िल्टरः झूठे संकेतों से बचने के लिए SMA का उपयोग करें
  4. स्टॉप लॉस तंत्र: आरएसआई सीमाओं के आधार पर स्टॉप लॉस लागू करें

रणनीति तर्क

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

  1. फास्ट आरएसआई ओवरबॉट/ओवरसोल्ड सिग्नलः ट्रेड सिग्नल तब उत्पन्न होते हैं जब फास्ट आरएसआई अपनी ऊपरी सीमा से ऊपर या अपनी निचली सीमा से नीचे जाता है।

  2. कैंडलस्टिक सिग्नल: शरीर के आकार और दिशा जैसे कैंडलस्टिक मापदंडों का उपयोग रुझान निर्धारित करने और तेजी से आरएसआई संकेतों को पूरक करने के लिए किया जाता है।

  3. एसएमए फ़िल्टर सिग्नलः एसएमए दिशा झूठे ब्रेकआउट सिग्नल को फ़िल्टर करती है।

  4. स्टॉप लॉस सिग्नलः जब तेजी से आरएसआई अपनी ऊपरी सीमा से ऊपर या नीचे की सीमा से नीचे जाता है तो पोजीशन बंद हो जाती हैं।

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

शोर से बचने के लिए, निम्नलिखित अतिरिक्त शर्तें जोड़ी जाती हैं:

  1. मोमबत्ती के शरीर का आकारः मोमबत्ती के बड़े शरीर एक मजबूत प्रवृत्ति का प्रतिनिधित्व करते हैं
  2. मोमबत्ती दिशाः तेजी या गिरावट की प्रवृत्ति निर्धारित करता है
  3. एसएमए फ़िल्टरः झूठे ब्रेकआउट संकेतों को फ़िल्टर करता है
  4. स्टॉप लॉसः जब तेजी से आरएसआई अपनी सीमाओं से आगे निकलता है तो ट्रेडों से बाहर निकलता है

इसलिए, यह रणनीति ट्रेडिंग सिग्नल उत्पन्न करने के लिए तेजी से आरएसआई, कैंडलस्टिक, चलती औसत और स्टॉप लॉस को एक साथ जोड़ती है।

लाभ

इस रणनीति के लाभों में निम्नलिखित शामिल हैंः

  1. तेजी से आरएसआई संवेदनशील होता है: तेजी से ओवरबॉट/ओवरसोल्ड अवसरों को पकड़ता है
  2. कैंडलस्टिक और एमए फ़िल्टरः झूठे संकेतों से बचता है
  3. स्वचालित स्टॉप लॉसः जोखिमों को प्रभावी ढंग से नियंत्रित करता है
  4. स्केलिंग के लिए उपयुक्त: कम समय सीमा के साथ अच्छी तरह से काम करता है जैसे 1H, 30M
  5. अनुकूलन के लिए आसानः पैरामीटर विभिन्न बाजारों के लिए समायोजित किया जा सकता है

जोखिम

कुछ जोखिमों पर भी विचार किया जाना चाहिए:

  1. लगातार स्टॉप लॉसः रेंजिंग मार्केट में अधिक स्टॉप लॉस सिग्नल हो सकते हैं
  2. पैरामीटर अनुकूलन आवश्यक: पैरामीटर को विभिन्न जोड़े और समय सीमाओं के लिए ट्यून करने की आवश्यकता है
  3. सभी नुकसानों से बचने में असमर्थताः समय पर नुकसान रोकने के बावजूद कुछ नुकसान होते हैं

निम्नलिखित अनुकूलन विधियां जोखिम को कम करने में मदद कर सकती हैं:

  1. तेजी से आरएसआई मापदंडों का अनुकूलन करें: झूठे संकेतों को कम करें
  2. स्टॉप लॉस प्लेसमेंट का अनुकूलन करें: एकल व्यापार हानि के आकार को नियंत्रित करें
  3. स्थिति आकार जोड़ेंः कई ट्रेडों में जोखिम वितरित करें

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

इस रणनीति को और अधिक अनुकूलित करने के कुछ तरीकों में शामिल हैंः

  1. मुनाफा प्राप्त करनाः मुनाफा प्राप्त करने के लक्ष्य को पूरा करने पर आंशिक लाभ प्राप्त करना
  2. जोखिम प्रबंधन में सुधारः जोखिमों में विविधता लाने के लिए स्थिति आकार के नियमों को शामिल करें
  3. पैरामीटर ट्यूनिंगः समय सीमाओं में पैरामीटर समायोजन का परीक्षण प्रभाव
  4. मशीन लर्निंगः समय के साथ पैरामीटर को स्वचालित रूप से अनुकूलित करने के लिए एल्गोरिदम का उपयोग करें
  5. मजबूती परीक्षणः अधिक प्रतीक जोड़े में रणनीति प्रदर्शन का मूल्यांकन करें

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

निष्कर्ष

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


/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-18 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=2
strategy(title = "Noro's Fast RSI Strategy v1.7", shorttitle = "Fast RSI str 1.7", overlay = true)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
usemar = input(false, defval = false, title = "Use Martingale")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
usersi = input(true, defval = true, title = "Use Fast RSI Strategy")
usemm = input(true, defval = true, title = "Use Min/Max Strategy")
usebc = input(true, defval = true, title = "Use BarColor Strategy")
usesma = input(false, defval = false, title = "Use SMA Filter")
smaperiod = input(20, defval = 20, minval = 2, maxval = 1000, title = "SMA Filter Period")
fast = input(7, defval = 7, minval = 2, maxval = 50, title = "Fast RSI Period")
limit = input(30, defval = 30, minval = 1, maxval = 100, title = "RSI limit")
rsisrc = input(close, defval = close, title = "RSI Price")
rsibars = input(1, defval = 1, minval = 1, maxval = 20, title = "RSI Bars")
mmbars = input(1, defval = 1, minval = 1, maxval = 5, title = "Min/Max Bars")
showsma = input(false, defval = false, title = "Show SMA Filter")
showarr = input(false, defval = false, title = "Show Arrows")
fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")

//Fast RSI
fastup = rma(max(change(rsisrc), 0), fast)
fastdown = rma(-min(change(rsisrc), 0), fast)
fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown))

//Limits
bar = close > open ? 1 : close < open ? -1 : 0
uplimit = 100 - limit
dnlimit = limit

//RSI Bars
upsignal = fastrsi > uplimit ? 1 : 0
dnsignal = fastrsi < dnlimit ? 1 : 0
uprsi = sma(upsignal, rsibars) == 1
dnrsi = sma(dnsignal, rsibars) == 1

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)
minsignal = min < min[1] and bar == -1 and bar[1] == -1 ? 1 : 0
maxsignal = max > max[1] and bar == 1 and bar[1] == 1 ? 1 : 0
mins = sma(minsignal, mmbars) == 1
maxs = sma(maxsignal, mmbars) == 1

//SMA Filter
sma = sma(close, smaperiod)
colorsma = showsma ? blue : na
plot(sma, color = colorsma, linewidth = 3)

//Signals
up1 = bar == -1 and (strategy.position_size == 0 or close < strategy.position_avg_price) and dnrsi and body > abody / 5 and usersi
dn1 = bar == 1 and (strategy.position_size == 0 or close > strategy.position_avg_price) and uprsi and body > abody / 5 and usersi
up2 = mins and (close > sma or usesma == false) and fastrsi < 70 and usemm
dn2 = maxs and (close < sma or usesma == false) and fastrsi > 30 and usemm 
up3 = sma(bar, 2) == -1 and usebc
dn3 = sma(bar, 2) == 1 and usebc
exit = (((strategy.position_size > 0 and fastrsi > dnlimit and bar == 1) or (strategy.position_size < 0 and fastrsi < uplimit and bar == -1)) and body > abody / 2)

//Arrows
col = exit ? black : up1 or dn1 ? blue : up2 or dn2 ? red : na
needup = up1 or up2
needdn = dn1 or dn2
needexitup = exit and strategy.position_size < 0
needexitdn = exit and strategy.position_size > 0
plotarrow(showarr and needup ? 1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needdn ? -1 : na, colorup = blue, colordown = blue, transp = 0)
plotarrow(showarr and needexitup ? 1 : na, colorup = black, colordown = black, transp = 0)
plotarrow(showarr and needexitdn ? -1 : na, colorup = black, colordown = black, transp = 0)

//Trading
profit = exit ? ((strategy.position_size > 0 and close > strategy.position_avg_price) or (strategy.position_size < 0 and close < strategy.position_avg_price)) ? 1 : -1 : profit[1]
mult = usemar ? exit ? profit == -1 ? mult[1] * 2 : 1 : mult[1] : 1
lot = strategy.position_size == 0 ? strategy.equity / close * capital / 100 * mult : lot[1]

if up1 or up2 or up3
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot)

if dn1 or dn2 or dn3
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot)
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

अधिक