यह रणनीति ओवरबॉट और ओवरसोल्ड स्थितियों को निर्धारित करने के लिए आरएसआई (रिलेटिव स्ट्रेंथ इंडेक्स) संकेतक पर आधारित है। यह कम खरीदने और उच्च बेचने के लिए आरएसआई ओवरबॉट या ओवरसोल्ड स्तर तक पहुंचने पर काउंटर ट्रेंड पोजीशन लेता है। यह रणनीति सरल और प्रभावी है, जो बाजार में अल्पकालिक ओवरबॉट और ओवरसोल्ड परिदृश्यों से लाभान्वित होती है।
यह रणनीति केवल आरएसआई संकेतक को प्रवेश संकेत के रूप में उपयोग करती है। जब आरएसआई निम्न बिंदु (डिफ़ॉल्ट 20) से नीचे जाता है, तो यह लंबा हो जाता है, और जब आरएसआई उच्च बिंदु (डिफ़ॉल्ट 80) से ऊपर जाता है, तो यह छोटा हो जाता है। यह हर बार निश्चित राशि (डिफ़ॉल्ट $ 100) का व्यापार करता है और बाजार की स्थिति के बावजूद 1% लाभ का लक्ष्य रखता है। यदि नुकसान 3% तक पहुंचता है, तो यह बंद हो जाता है। व्यापार आवृत्ति को नियंत्रित करने के लिए, रणनीति एक हारने वाले व्यापार के बाद 24 बार के लिए व्यापार बंद कर देती है।
मूल तर्क यह है:
जैसा कि हम देख सकते हैं, रणनीति बहुत सरल और यांत्रिक है। पैरामीटर अनुकूलन के लिए शायद ही कोई जगह है। यह विशुद्ध रूप से ओवरबॉट / ओवरसोल्ड क्षेत्रों के आसपास काउंटर ट्रेंड पोजीशन लेने के लिए आरएसआई के गणितीय गुणों का शोषण करता है।
इस रणनीति का सबसे बड़ा लाभ सरलता और दक्षता है।
यह मुनाफे को लॉक करने और जोखिमों को नियंत्रित करने के लिए स्टॉप लॉस / टेक प्रॉफिट अनुपात को भी लागू करता है, साथ ही आवृत्ति को कम करने के लिए व्यापार निलंबन भी। यह जोखिमों को कम करते हुए इनाम को अधिकतम करता है।
इस रणनीति के मुख्य जोखिम निम्नलिखित से आते हैंः
मजबूत रुझान वाले बाजार में मुनाफा नहीं कमा सकता। रुझान जारी रहने पर आरएसआई अधिक खरीदे/बेचे गए क्षेत्र में लंबी अवधि तक रह सकता है।
बहुत व्यापक स्टॉप लॉस अत्यधिक नुकसान का कारण बन सकता है। वर्तमान 3% स्टॉप लॉस को 1-2% तक कम करने की आवश्यकता हो सकती है।
उच्च व्यापार आवृत्ति जीत के बाद अधिक व्यापार का कारण बन सकती है। व्यापार आवृत्ति को सीमित करने की आवश्यकता है।
100 डॉलर के आकार के जोखिमों पर ध्यान केंद्रित किया जाना चाहिए। पूंजी का प्रतिशत अनुकूलित करना चाहिए।
विश्लेषण के आधार पर, रणनीति में निम्नलिखित तरीकों से सुधार किया जा सकता हैः
ट्रेंड स्पष्ट नहीं होने पर ट्रेडिंग को रोकने के लिए एमए जैसे ट्रेंड फिल्टर जोड़ें.
स्टॉप लॉस/टेक प्रॉफिट अनुपात को अनुकूलित करें। स्टॉप लॉस को 1-2% तक कम करें और गतिशील लाभ लें।
व्यापार की आवृत्ति को सीमित करें, जैसे कि अधिकतम 2 व्यापार प्रति समय अवधि।
100 डॉलर के बजाय पूंजी के प्रतिशत के आधार पर व्यापार का आकार।
आरएसआई मापदंडों को अनुकूलित करें जैसे कि अवधि, ओवरबॉट/सोल्ड स्तर।
पूंजी में वृद्धि होने पर आकार में वृद्धि न करने के लिए स्थिति आकार जोड़ें।
इन अनुकूलन के साथ जोखिमों को कम किया जा सकता है और स्थिरता में काफी सुधार किया जा सकता है।
संक्षेप में, यह आरएसआई का उपयोग करने के लिए एक सरल और सीधी रणनीति है ओवरबॉट / ओवरसोल्ड शर्तों का व्यापार करने के लिए अल्पकालिक औसत प्रतिगमन के लिए। पेशेवरों सादगी, दक्षता, कोई भविष्यवाणी की आवश्यकता नहीं है, स्पष्ट तर्क, परीक्षण करने में आसान है। विपक्ष मजबूत रुझानों और संभावित नुकसान में लाभ की अक्षमता है। रुझान फ़िल्टर, अनुकूलित मापदंडों, स्थिति आकार आदि जैसे जोड़ों के साथ, इसे स्थिरता और लाभप्रदता के लिए और बढ़ाया जा सकता है। तर्क व्यावहारिक व्यापार के लिए अभिनव और मूल्यवान है यदि ठीक से लागू किया जाता है।
/*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)