सापेक्ष शक्ति सूचकांक (आरएसआई) संकेतक पर आधारित मात्रात्मक ट्रेडिंग रणनीति


निर्माण तिथि: 2023-12-22 14:06:45 अंत में संशोधित करें: 2023-12-22 14:06:45
कॉपी: 4 क्लिक्स: 772
1
ध्यान केंद्रित करना
1623
समर्थक

सापेक्ष शक्ति सूचकांक (आरएसआई) संकेतक पर आधारित मात्रात्मक ट्रेडिंग रणनीति

अवलोकन

आरएसआई तोड़ने की रणनीति एक मात्रात्मक व्यापार रणनीति है जो अपेक्षाकृत मजबूत सूचकांक (आरएसआई) पर आधारित है। यह रणनीति आरएसआई को खरीदने और बेचने के क्षेत्र से ऊपर की सीमाओं को निर्धारित करके व्यापारिक संकेत देती है जब आरएसआई इन सीमाओं को तोड़ता है, यानी जब आरएसआई 30 से नीचे होता है तो अधिक होता है और जब आरएसआई 70 से ऊपर होता है तो कम होता है।

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

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

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

इस तरह से, रणनीति शेयरों के उतार-चढ़ाव के दौरान उनके मूल्य टर्निंग पॉइंट्स को पकड़ने की कोशिश करती है, और ओवरबॉय ओवरसोल की घटना के दौरान स्थिति को समय पर समायोजित करती है, ताकि वे ओवरबॉय ओवरसोल के उच्च स्तर तक पहुंच सकें।

रणनीतिक लाभ

RSI ब्रेकआउट रणनीतियों के निम्नलिखित फायदे हैंः

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

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

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

रणनीतिक जोखिम

RSI ब्रेकआउट रणनीतियों में कुछ जोखिम भी होते हैं, जिनमें शामिल हैंः

  1. Whipsaw के लिए आसान। जब सूचक उतार-चढ़ाव करता है, तो अक्सर ब्रेक ट्रेडिंग सिग्नल को ट्रिगर किया जाता है। इस समय रणनीति में बहुत अधिक निष्क्रिय ट्रेड होते हैं, जो स्थिर लाभ प्राप्त करने के लिए प्रतिकूल होते हैं। पैरामीटर को उचित रूप से समायोजित किया जा सकता है और कुछ आघात संकेतों को फ़िल्टर किया जा सकता है।

  2. बाजार के रुझान का आकलन करने में असमर्थ। RSI केवल ओवरबॉय ओवरसोल स्थिति से ट्रेडिंग सिग्नल उत्पन्न करता है, बड़े रुझान का आकलन करने की क्षमता कमजोर है। रणनीति को उतार-चढ़ाव की स्थिति में कैद करना आसान है। रुझान संकेतक के साथ मिलकर फ़िल्टर किया जा सकता है, विपरीत व्यापार से बचें।

  3. RSI अक्सर बहुमुखी विचलन का प्रदर्शन करता है, यानी कीमतें बढ़ती रहती हैं और RSI संकेतक नीचे की ओर जाता है। इस समय रणनीति शून्य चल रही है और बड़ी प्रवृत्ति से विचलित है, भारी नुकसान का सामना करना पड़ेगा।

रणनीति अनुकूलन

RSI ब्रेकआउट रणनीति को निम्नलिखित आयामों से अनुकूलित किया जा सकता हैः

  1. एक एकल आरएसआई की सीमाओं से बचने के लिए कई संकेतकों को एकीकृत करें। उदाहरण के लिए, बाजार के रुझानों को समझने के लिए एक चलती औसत सूचक के साथ संयोजन करें, या एक मजबूत सूचक का उपयोग करें, व्यापार संकेतों को फ़िल्टर करने के लिए एक संयोजन।

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

  3. जोखिम को नियंत्रित करने के लिए स्टॉप लॉस की शर्तें सेट करें, जैसे कि प्रतिशत या अंक की रोकथाम। एक एकल नुकसान से बचें जो समग्र लाभ पर बहुत अधिक प्रभाव डालता है। साथ ही साथ प्रवृत्ति और महत्वपूर्ण तकनीकी स्थानों के साथ भागों का लाभ उठाएं।

संक्षेप

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

रणनीति स्रोत कोड
/*backtest
start: 2023-11-21 00:00:00
end: 2023-12-21 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// @version=4
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Bunghole 2021

strategy(title="My New Strategy", initial_capital = 100000, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, currency = 'USD', overlay=true)

//// Stoploss and Take Profit Parameters
// Enable Long Strategy
enable_long_strategy = input(true, title="Enable Long Strategy", group="SL/TP For Long Strategy",inline="1")
long_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_stoploss_percentage = (close * (long_stoploss_value / 100)) / syminfo.mintick
long_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Long Strategy",inline="2")
long_takeprofit_percentage = (close * (long_takeprofit_value / 100)) / syminfo.mintick

// Enable Short Strategy
enable_short_strategy = input(true, title="Enable Short Strategy", group="SL/TP For Short Strategy",inline="3")
short_stoploss_value = input(defval=50, title='Stoploss %', type=input.float, minval=0.1, group= "SL/TP For Short Strategy",inline="4")
short_stoploss_percentage = (close * (short_stoploss_value / 100)) / syminfo.mintick
short_takeprofit_value = input(defval=50, title='Take Profit %', type=input.float, minval=0.1, group="SL/TP For Short Strategy",inline="4")
short_takeprofit_percentage = (close * (short_takeprofit_value / 100)) / syminfo.mintick

// Plot Stoploss & Take Profit Levels
long_stoploss_price = strategy.position_avg_price * (1 - long_stoploss_value/100)
long_takeprofit_price = strategy.position_avg_price * (1 + long_takeprofit_value/100)
short_stoploss_price = strategy.position_avg_price * (1 + short_stoploss_value/100)
short_takeprofit_price = strategy.position_avg_price * (1 - short_takeprofit_value/100)
plot(enable_long_strategy and not enable_short_strategy ? long_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Long SL Level")
plot(enable_long_strategy and not enable_short_strategy ? long_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Long TP Level")
plot(enable_short_strategy and not enable_long_strategy ? short_stoploss_price: na, color=#ff0000, style=plot.style_linebr, linewidth=2, title="Short SL Level")
plot(enable_short_strategy and not enable_long_strategy ? short_takeprofit_price: na, color=#008000, style=plot.style_linebr, linewidth=2, title="Short TP Level")

// Date Range
start_date = input(title="Start Date", type=input.integer, defval=1, minval=1, maxval=31, group="Date Range")
start_month = input(title="Start Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
start_year = input(title="Start Year", type=input.integer, defval=1804, minval=1800, maxval=3000, group="Date Range")
end_date = input(title="End Date", type=input.integer, defval=1, minval=1, maxval=3, group="Date Range")
end_month = input(title="End Month", type=input.integer, defval=1, minval=1, maxval=12, group="Date Range")
end_year = input(title="End Year", type=input.integer, defval=2077, minval=1800, maxval=3000, group="Date Range")
in_date_range = (time >= timestamp(syminfo.timezone, start_year, start_month, start_date, 0, 0)) and (time < timestamp(syminfo.timezone, end_year, end_month, end_date, 0, 0))

//// Inputs   **This is where you enter your indicators for your strategy. For example, I added the RSI indicator.**
//RSI
rsi = rsi(close, 14)
rsi_over_sold = rsi < 30
rsi_over_bought = rsi > 70


//// Strategy  **This is where you create your strategy. For example, We have or buy and sell signals.**
// Creating Long and Short Strategy
buy_signal = rsi_over_sold
sell_signal = rsi_over_bought

// Long Strategy
if buy_signal and in_date_range and enable_long_strategy == true
    strategy.entry("Long", true, when=buy_signal, alert_message="Open Long Position")
    strategy.exit("Long  SL/TP", from_entry="Long", loss=long_stoploss_percentage, profit=long_takeprofit_percentage, alert_message="Your Long SL/TP Limit As Been Triggered.")
    strategy.close("Long", when=sell_signal, alert_message="Close Long Position")
    
// Short Strategy
if sell_signal and in_date_range and enable_short_strategy == true
    strategy.entry("Short", false, when = sell_signal, alert_message="Open Short Position")
    strategy.exit("Short SL/TP", from_entry="Short", loss=short_stoploss_percentage, profit=short_takeprofit_percentage, alert_message="Your Short SL/TP Limit As Been Triggered.")
    strategy.close("Short", when=buy_signal, alert_message="Close Short Position")