आरएसआई रणनीतियों का बैकटेस्टिंग और अनुकूलन


निर्माण तिथि: 2023-11-10 11:59:40 अंत में संशोधित करें: 2023-11-10 11:59:40
कॉपी: 1 क्लिक्स: 858
1
ध्यान केंद्रित करना
1617
समर्थक

आरएसआई रणनीतियों का बैकटेस्टिंग और अनुकूलन

अवलोकन

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

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

रणनीति केवल आरएसआई संकेतक का उपयोग करती है, जो स्थिति बनाने के संकेत के रूप में कार्य करती है। आरएसआई के नीचे सेट किए गए निचले स्तर (डिफ़ॉल्ट 20) को पार करते समय अधिक करें, और आरएसआई के ऊपर सेट किए गए उच्च स्तर (डिफ़ॉल्ट 80) को पार करते समय खाली करें। प्रत्येक व्यापार पर एक निश्चित पूंजी (डिफ़ॉल्ट $ 100), जो भी हो, केवल 1% लाभ के बाद रुके। यदि नुकसान 3% तक पहुंच जाता है, तो बंद हो जाता है। व्यापार की आवृत्ति को नियंत्रित करने के लिए, रणनीति भी सेट की गई है।

विशेष रूप से, रणनीति का मुख्य तर्क यह हैः

  1. आरएसआई सूचकांक का उपयोग करके ओवरबॉट और ओवरसोल्ड का आकलन करें
  2. आरएसआई के तहत 20 पर अधिक काम करना
  3. आरएसआई 80 पर खाली
  4. 100 डॉलर प्रति ट्रेड
  5. स्टॉप-ऑफ या स्टॉप-ऑफ के बाद पोजीशन
  6. यदि घाटा है तो अगले K लाइन पर 24 K लाइनों को निलंबित करें और व्यापार न करें

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

श्रेष्ठता विश्लेषण

इस रणनीति का सबसे बड़ा लाभ यह है कि यह सरल और प्रभावी है।

  1. एक एकल आरएसआई का उपयोग करके, जटिल तकनीकी विश्लेषण की आवश्यकता नहीं है।
  2. पूरी तरह से यांत्रिक लेनदेन प्रणाली, व्यक्तिगत भावनाओं से मुक्त।
  3. बाजार में अल्पकालिक विचलन की गणितीय विशेषताओं का लाभ उठाने के लिए, बाजार के रुझान की भविष्यवाणी करने की आवश्यकता नहीं है।
  4. धन प्रबंधन नियम, रोकथाम और रोकथाम तंत्र जोखिम नियंत्रण

इसके अलावा, रणनीति में लाभ को लॉक करने और जोखिम को नियंत्रित करने के लिए स्टॉप-स्टॉप-लॉस अनुपात और ट्रेडिंग आवृत्ति को कम करने के लिए एक निलंबित ट्रेडिंग तंत्र है। इससे रणनीति को न्यूनतम जोखिम के साथ स्थिर लाभ मिलता है।

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

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

  1. रुझान के दौरान लाभ नहीं मिल सकता है। जब रुझान बहुत मजबूत होता है, तो आरएसआई लंबे समय तक ओवरबॉट या ओवरसोल्ड क्षेत्र में रह सकता है, और रिवर्स करने की संभावना कम होती है। इस रणनीति से लाभ कमाना मुश्किल होगा।

  2. स्टॉप लॉस सेटिंग्स की अधिकता के कारण नुकसान बढ़ सकता है। वर्तमान में स्टॉप लॉस 3% है, इसे 1-2% तक समायोजित करने की आवश्यकता हो सकती है।

  3. ट्रेडों की उच्च आवृत्ति के बाद, यह आसान है कि वे अपने स्थानों को बनाए रखें।

  4. 100 डॉलर प्रति स्टॉक को स्थिर करना जोखिम के लिए अति-केंद्रित हो सकता है, जिसे फंड प्रतिशत के रूप में अनुकूलित करने की आवश्यकता है।

अनुकूलन दिशा

उपरोक्त विश्लेषण के आधार पर, इस रणनीति को निम्नलिखित पहलुओं में अनुकूलित किया जा सकता हैः

  1. ट्रेडों को रोकना जब ट्रेडों में कोई स्पष्टता न हो।

  2. स्टॉप लॉस स्टॉप अनुपात को अनुकूलित करें, स्टॉप लॉस को 1-2% अधिक उचित रूप से समायोजित करें, स्टॉप को फ्लोटिंग स्टॉप के रूप में सेट किया जा सकता है।

  3. स्टॉक खोलने की आवृत्ति को बढ़ाएं, जैसे कि एक निश्चित समय में केवल 1-2 बार खोलने की अनुमति है।

  4. $ 100 की स्थिर राशि को 1% की राशि में परिवर्तित करें।

  5. RSI चक्र, ओवरबॉट और ओवरसोल्ड क्षेत्र जैसे पैरामीटर के संयोजन का अनुकूलन करें।

  6. स्थिति नियंत्रण में वृद्धि, प्रारंभिक पूंजी में वृद्धि के साथ एकल लेनदेन की पूंजी में वृद्धि नहीं की जाती है।

उपरोक्त बिंदुओं के अनुकूलन के माध्यम से, व्यापार जोखिम को कम करने और रणनीति की स्थिरता और विश्वसनीयता को बढ़ाने में मदद मिलती है।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-11-02 00:00:00
end: 2023-11-09 00:00:00
period: 3m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("rsi超买超卖_回测用", overlay=false, initial_capital=50000, currency=currency.USD, default_qty_type=strategy.cash)
open_pos = input.int(50000, title = "每次开单资金(usdt)")
rsi_period = input.int(14, title = "rsi周期")
rsi_line      = input.float(20.0,      title='RSI触发线',      step=0.05)
stop_rsi_top_line = input.float(70, title = "顶部rsi止损线")
stop_rsi_bottom_line = input.float(30, title = "底部rsi止损线")
stop_loss_perc = input.float(0.03, title = "止损线")
stop_profit = input.float(0.01, title = "止盈")
loss_stop_trade_k = input.int(24, title = "亏损后x根K线不做交易")


rsiParam = ta.rsi(close, rsi_period)

var int failedTimes = 0
var bool stopTrade = false

// plot(rsiParam)

if stopTrade
    failedTimes += 1
    if failedTimes == loss_stop_trade_k
        failedTimes := 0
        stopTrade := false



// 获取当前持仓方向
checkCurrentPosition() =>
    strategy.position_size > 0 ? 1 : strategy.position_size < 0 ? -1 : 0

curPosition = checkCurrentPosition()

// 当前持仓成本价
position_avg_price = strategy.position_avg_price


// 当前持单, 触达反向的rsi线,清仓
if curPosition > 0 and rsiParam >= stop_rsi_top_line
    strategy.close_all(comment = "closebuy")

if curPosition < 0 and rsiParam <= stop_rsi_bottom_line
    strategy.close_all(comment = "closesell")


// 止盈止损清仓
if curPosition > 0
    // if (position_avg_price - close) / close >= stop_loss_perc
    //     // 止损
    //     strategy.close_all(comment = "closebuy")
    //     stopTrade := true
    if (close - position_avg_price) / position_avg_price >= stop_profit
        // 止盈
        strategy.close_all(comment = "closebuy")



if curPosition < 0
    // if (close - position_avg_price) / position_avg_price >= stop_loss_perc
    //     // 止损
    //     strategy.close_all(comment = "closesell")
    //     stopTrade := true

    if (position_avg_price - close) / close >= stop_profit
        // 止盈
        strategy.close_all(comment = "closesell")


a = strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1)

if bar_index == a and strategy.closedtrades.profit(strategy.closedtrades - 1) < 0
    stopTrade := true

var float openPrice = 0.0



if rsiParam <= rsi_line and stopTrade == false
	strategy.entry("long", strategy.long, open_pos / close, comment = "long")
    if curPosition == 0
        openPrice := close
    strategy.exit("long_stop", "long", limit = openPrice * (1+stop_profit), stop=openPrice * (1-stop_loss_perc), comment = "closebuy")

if rsiParam >= 100 - rsi_line and stopTrade == false
    strategy.entry("short", strategy.short, open_pos / close, comment = "short")
    if curPosition == 0
        openPrice := close
    strategy.exit("short_stop", "short", limit = openPrice * (1-stop_profit), stop=openPrice * (1+stop_loss_perc), comment = "closesell")




plot(failedTimes)