यह रणनीति ओवरबोल्ड जोन में मंदी वाले क्रॉसओवर पर शॉर्ट और ओवरबोल्ड जोन में तेजी वाले क्रॉसओवर पर लॉन्ग जाने के लिए आरएसआई संकेतक का उपयोग करके ओवरबोल्ड और ओवरसोल्ड बाजार की स्थितियों की पहचान करती है। यह संकेतकों पर आधारित रिवर्स ट्रेडिंग रणनीति है। रणनीति में ट्रेडिंग जोखिम को प्रभावी ढंग से नियंत्रित करने के लिए ट्रेंड ट्रेलिंग स्टॉप और फिक्स्ड टेक प्रॉफिट/स्टॉप लॉस शामिल हैं।
इस रणनीति के ट्रेडिंग सिग्नल आरएसआई संकेतक के तेजी / मंदी क्रॉसओवर के आधार पर उत्पन्न होते हैं। आरएसआई संकेतक आम तौर पर 30 को ओवरसोल्ड लाइन और 70 को ओवरबॉट लाइन के रूप में उपयोग करता है। जब आरएसआई लाइन ओवरसोल्ड लाइन से ऊपर पार करती है, तो एक खरीद संकेत उत्पन्न होता है। जब आरएसआई लाइन ओवरबोल्ड लाइन से नीचे पार करती है, तो एक बिक्री संकेत उत्पन्न होता है। इस तर्क के आधार पर, रणनीति ओवरबोल्ड और ओवरबोल्ड क्षेत्रों की पहचान करती है और संबंधित लंबे / छोटे संकेत उत्पन्न करती है।
एक स्थिति में प्रवेश करने के बाद, रणनीति लगातार उच्चतम/सबसे कम मूल्य को अपडेट करके प्रतिशत ट्रैलिंग स्टॉप का उपयोग करती है और स्टॉप लॉस के रूप में उस से एक निश्चित प्रतिशत को पीछे खींचती है। लक्ष्य लाभ तक पहुंचने या अधिकतम हानि से अधिक होने पर स्थिति को बंद करने के लिए निश्चित लाभ और स्टॉप लॉस स्तर भी हैं। यह संयोजन प्रभावी रूप से व्यापार जोखिम को नियंत्रित कर सकता है।
इस रणनीति के लाभों में निम्नलिखित शामिल हैंः
ओवरबॉट/ओवरसोल्ड स्तरों की पहचान करने के लिए आरएसआई का उपयोग करना बाजार के मोड़ बिंदुओं को विश्वसनीय रूप से पकड़ने के लिए एक परिपक्व ट्रेडिंग तकनीक है।
तेजी/बिरिश क्रॉसओवर का उपयोग कुछ झूठे संकेतों को फ़िल्टर करता है और व्यापार को अधिक विश्वसनीय बनाता है।
ट्रेंड ट्रेलिंग स्टॉप जितना संभव हो उतना मुनाफे में लॉक करता है, जबकि प्रति व्यापार हानि को रोकने के लिए त्वरित स्टॉप आउट भी होता है।
निश्चित टीपी/एसएल स्तर प्रति व्यापार जोखिम को भी प्रभावी ढंग से नियंत्रित करते हैं।
सामान्य तौर पर सरल और स्पष्ट तर्क, समझने और लागू करने में आसान, शुरुआती लोगों के लिए उपयुक्त।
इस रणनीति के जोखिमों में निम्नलिखित शामिल हैंः
आरएसआई सिग्नल झूठे हो सकते हैं, पैटर्न विफलता की उच्च संभावना के साथ, स्टॉप लॉस ट्रिगर की ओर जाता है।
फिक्स्ड टीपी/एसएल बाजार की अस्थिरता के अनुकूल नहीं हो सकता है, इससे मुनाफा कम हो सकता है या घाटे का सामना करना पड़ सकता है।
प्रतिशत अनुगामी केवल उच्चतम/निम्नतम मूल्य का अनुसरण करता है, लाभ पीछे छोड़ने के लिए बहुत आक्रामक हो सकता है।
मापदंडों के रूप में ओवरफिटिंग जोखिम को केवल ऐतिहासिक डेटा के लिए अनुकूलित किया जा सकता है।
उच्च व्यापार आवृत्ति लेनदेन लागत और फिसलन को बढ़ाती है।
रणनीति में सुधार के संभावित तरीके:
सर्वोत्तम परिणामों के लिए आरएसआई मापदंडों का अनुकूलन करें।
उच्च संकेत सटीकता के लिए फ़िल्टर संकेतक जोड़ें।
बाजार की अस्थिरता के आधार पर अनुकूलित स्टॉप/लाभ।
लेन-देन की लागत कम करने के लिए व्यापार की आवृत्ति को सीमित करें।
प्रति व्यापार हानि को सीमित करने के लिए स्थिति आकार जोड़ें.
स्थिरता का परीक्षण करने के लिए अधिक समय के लिए बैकटेस्ट।
संक्षेप में, यह ओवरबॉट / ओवरसोल्ड की पहचान करने के लिए आरएसआई का उपयोग करने वाली एक विशिष्ट उलट रणनीति है, जिसमें संकेत के रूप में बैल / भालू क्रॉसओवर होते हैं। ट्रेंड ट्रेलिंग स्टॉप और फिक्स्ड टीपी / एसएल जोखिम का प्रबंधन करते हैं। तर्क सरल और लागू करने में आसान है, शुरुआती लोगों के लिए उपयुक्त है। लेकिन झूठे संकेत और वक्र फिटिंग जैसे जोखिमों को लाइव ट्रेडिंग से पहले आगे सत्यापन और अनुकूलन के माध्यम से संबोधित करने की आवश्यकता है।
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // LOVE JOY PEACE PATIENCE KINDNESS GOODNESS FAITHFULNESS GENTLENESS SELF-CONTROL // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // Author: © JoshuaMcGowan // Taken from https://www.tradingview.com/script/GbZGYi6l-Adding-some-essential-components-to-a-prebuilt-RSI-strategy/ // Just updated to compile in version 4. //@version=4 strategy("Adding some essential components to a prebuilt RSI strategy", overlay=true) /////////////// Component Code Start /////////////// testStartYear = input(2011, "Backtest Start Year") testStartMonth = input(8, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0) testStopYear = input(2100, "Backtest Stop Year") testStopMonth = input(9, "Backtest Stop Month") testStopDay = input(29, "Backtest Stop Day") // testStopDay = testStartDay + 1 testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0) // A switch to control background coloring of the test period testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true) testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na bgcolor(testPeriodBackgroundColor, transp=97) testPeriod() => true /////////////// Component Code Stop /////////////// // Replace RSI Component, Long/Short, and Long Signal/Short Signal conditions with your trade setup components. ///////////// RSI component ///////////// length = input( 14 ) overSold = input( 30 ) overBought = input( 70 ) price = close vrsi = rsi(price, length) notna = not na(vrsi) /////////////// STRATEGY /////////////// ts = input(99999, "Trailing Stop") / 100 tp = input(99999, "Take Profit") / 100 sl = input(99999, "Stop Loss") / 100 // Update this with your setup. long = notna and crossover(vrsi, overSold) short = notna and crossunder(vrsi, overBought) last_long = 0 last_short = 0 last_long := long ? time : nz(last_long[1]) last_short := short ? time : nz(last_short[1]) // Update this to reflect your setup. long_signal = crossover(last_long, last_short) short_signal = crossover(last_short, last_long) float last_open_long_signal = 0 float last_open_short_signal = 0 last_open_long_signal := long_signal ? open : nz(last_open_long_signal[1]) last_open_short_signal := short_signal ? open : nz(last_open_short_signal[1]) last_long_signal = 0 last_short_signal = 0 last_long_signal := long_signal ? time : nz(last_long_signal[1]) last_short_signal := short_signal ? time : nz(last_short_signal[1]) in_long_signal = last_long_signal > last_short_signal in_short_signal = last_short_signal > last_long_signal float last_high = 0 float last_low = 0 last_high := not in_long_signal ? na : in_long_signal and (na(last_high[1]) or high > nz(last_high[1])) ? high : nz(last_high[1]) last_low := not in_short_signal ? na : in_short_signal and (na(last_low[1]) or low < nz(last_low[1])) ? low : nz(last_low[1]) long_ts = not na(last_high) and high <= (last_high - ts) //and high >= last_open_long_signal short_ts = not na(last_low) and low >= (last_low + ts) //and low <= last_open_short_signal long_tp = high >= (last_open_long_signal + tp) short_tp = low <= (last_open_short_signal - tp) long_sl = low <= (last_open_long_signal - sl) short_sl = high >= (last_open_short_signal + sl) leverage = input(200, "Leverage") long_call = last_open_long_signal - (0.8 + 0.2 * (1/leverage)) / leverage * last_open_long_signal short_call = last_open_short_signal + (0.78 + 0.2 * (1/leverage)) / leverage * last_open_short_signal long_call_signal = low <= long_call short_call_signal = high >= short_call if testPeriod() strategy.entry("Long", strategy.long, when=long_signal) strategy.entry("Short", strategy.short, when=short_signal) // plot(long_call, color=color.red) // plot(short_call, color=color.green) strategy.close("Long", when=long_call_signal) strategy.close("Short", when=short_call_signal) strategy.close("Long", when=long_tp) strategy.close("Short", when=short_tp) strategy.close("Long", when=long_sl) strategy.close("Short", when=short_sl) strategy.close("Long", when=long_ts) strategy.close("Short", when=short_ts)