यह लेख मुख्य रूप से एक ट्रेडिंग रणनीति का वर्णन करता है जो रिलेटिव स्ट्रेंथ इंडेक्स (आरएसआई) और फाइबोनैचि रिट्रेसमेंट लेवल को जोड़ती है। रणनीति पहले एक निश्चित अवधि में ऐतिहासिक मूल्य गतिशीलता के आधार पर प्रमुख फाइबोनैचि रिट्रेसमेंट लेवल की गणना करती है, और फिर आरएसआई संकेतक का उपयोग ट्रेडिंग सिग्नल उत्पन्न करने के लिए करती है कि क्या बाजार रिट्रेसमेंट लेवल के पास ओवरबॉट या ओवरसोल्ड है।
इस रणनीति के पीछे मुख्य सिद्धांत हैंः
उस अवधि के लिए मध्य मूल्य, मानक विचलन और प्रमुख फिबोनाची रिट्रेसमेंट स्तरों (जैसे 0.764) की गणना करने के लिए एक निश्चित अवधि (जैसे 200 बार) पर मूल्य डेटा का उपयोग करें;
जब कीमत ऊपरी या निचले रिट्रेसमेंट स्तरों के करीब आती है, तो आरएसआई संकेतक का उपयोग यह निर्धारित करने के लिए किया जाता है कि क्या उन स्तरों के आसपास ओवरबॉट या ओवरसोल्ड की स्थिति है;
यदि आरएसआई सूचक ओवरबॉट या ओवरसोल्ड संकेत दिखाता है, तो रिट्रेसमेंट स्तरों के आसपास लंबे या छोटे संकेत उत्पन्न होंगे;
स्टॉप लॉस सेट करें और जब मूल्य पूर्व निर्धारित स्तरों से अधिक हो या स्टॉप लॉस ट्रिगर हो तो पदों को बंद करने के लिए लाभ लें।
उपरोक्त इस रणनीति में व्यापार के अवसरों की पहचान के लिए बुनियादी कार्यप्रवाह है।
अकेले आरएसआई या फिबोनाची का उपयोग करने की तुलना में, इस संयुक्त रणनीति के निम्नलिखित फायदे हैंः
दोहरी संकेतक फ़िल्टरिंग से झूठे संकेत कम हो सकते हैं और संकेत की गुणवत्ता में सुधार हो सकता है।
फाइबोनैचि रिट्रेसमेंट स्तरों पर व्यापार एक क्लासिक तकनीकी विश्लेषण तकनीक है;
स्टॉप लॉस और टेक प्रॉफिट की गति के साथ, प्रति ट्रेड अधिकतम हानि को प्रभावी ढंग से नियंत्रित किया जा सकता है;
मापदंडों को विभिन्न अवधियों और उत्पादों के लिए अनुकूलित किया जा सकता है।
इस रणनीति के लिए कुछ जोखिम भी ध्यान देने योग्य हैंः
प्रमुख स्तरों पर उलटफेर की संभावना 100% नहीं है, इसे मूल्य कार्रवाई के साथ जोड़ने की आवश्यकता है;
एकल अवधि आरएसआई मृत बिल्ली उछाल से झूठे संकेत उत्पन्न कर सकते हैं, कई समय सीमा सत्यापन पर विचार;
ढीली स्टॉप लॉस सेटिंग से नुकसान बढ़ सकता है;
अस्थिर मूल्य उतार-चढ़ाव के दौरान स्टॉप चलाया जा सकता है। व्यापक स्टॉप पर विचार किया जाना चाहिए।
इन जोखिमों को पैरामीटर ट्यूनिंग, सूचक संयोजनों का अनुकूलन आदि के माध्यम से प्रबंधित किया जा सकता है।
आगे के अनुकूलन के लिए क्षेत्रों में शामिल हैंः
कम वॉल्यूम के साथ झूठे ब्रेकआउट से बचने के लिए वॉल्यूम इंडिकेटर जोड़ें;
बैंड ब्रेकआउट के संकेतों के लिए बोलिंगर बैंड्स पर विचार करें;
उच्च गुणवत्ता वाले व्यापारिक अवसरों का स्वतः पता लगाने के लिए मशीन लर्निंग मॉडल का निर्माण;
ऑटो पैरामीटर ट्यूनिंग के लिए आनुवंशिक एल्गोरिदम का उपयोग करें और स्टॉप लॉस/लाभ स्तरों को समायोजित करें।
यह लेख एक मात्रात्मक ट्रेडिंग रणनीति का विस्तार से वर्णन करता है जो आरएसआई और फाइबोनैची रिट्रेसमेंट विश्लेषण को जोड़ती है। दोहरे संकेतक विश्लेषण और क्लासिक तकनीकी रणनीतियों को मिलाकर, रणनीति प्रबंधित जोखिमों के तहत संकेत की गुणवत्ता में सुधार करती है। निरंतर पैरामीटर ट्यूनिंग और मॉडल अनुकूलन के माध्यम से आगे के प्रदर्शन लाभ प्राप्त किए जा सकते हैं।
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-26 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="Gab Fib + RSI", overlay=true, default_qty_type=strategy.cash, default_qty_value=100000, initial_capital=1000, currency=currency.USD, commission_type=strategy.commission.cash_per_order, commission_value=4) // Inputs timeFilter = year >= 2000 // Stop Loss stop_loss = input(title="SL in % of Instrum. i.e 1.5%=150pips", minval=0, step=0.1, defval=1.5) /100 // RSI Inputs len = input(title="[RSI] Length", minval=0, step=1, defval=14) overSold = input(title="[RSI] Over Sold %", defval=30) overBought = input(title="[RSI] Over Bought %", defval=70) // Fibonacci Levels length = input(title="[Fibonacci] Length", defval=200, minval=1) src = input(hlc3, title="[Fibonacci] Source") mult = input(title="[Fibonacci] Multiplier", defval=3.0, minval=0.001, maxval=50) level = input(title="[Fibonacci] Level", defval=764) // Calculate Fibonacci basis = vwma(src, length) dev = mult * stdev(src, length) fu764= basis + (0.001*level*dev) fu1= basis + (1*dev) fd764= basis - (0.001*level*dev) fd1= basis - (1*dev) // Calculate RSI vrsi = rsi(close, len) // Calculate the Targets targetUp = fd764 targetDown = fu764 // Actual Targets bought = strategy.position_size[0] > strategy.position_size[1] exit_long = valuewhen(bought, targetUp, 0) sold = strategy.position_size[0] < strategy.position_size[1] exit_short = valuewhen(sold, targetDown, 0) // Calculate Stop Losses sl_long = close * (1-stop_loss) sl_short = close * (1+stop_loss) // Conditions to Open Trades openLong = low < fd1 and crossover(vrsi[1], overSold) openShort = high > fu1 and crossunder(vrsi[1], overBought) // Conditions to Close Trades closeLong = high > exit_long or sl_long closeShort = low < exit_short or sl_short //Rounding to MinTick value roundtargetUp = round_to_mintick(targetUp) roundtargetDown = round_to_mintick(targetDown) roundsllong = round_to_mintick(sl_long) roundslshort = round_to_mintick(sl_short) // Plots plot(basis, color=color.blue, linewidth=2, title="[Fibonacci Level] Basis") plot(fu764, color=color.white, linewidth=1, title="[Fibonacci Level] Short Target") plot(fu1, color=color.red, linewidth=2, title="[Fibonacci Level] Top") plot(fd764, color=color.white, linewidth=1, title="[Fibonacci Level] Long Target") plot(fd1, color=color.green, linewidth=2, title="[Fibonacci Level] Bottom") // Strategy Orders if timeFilter // Entry Orders strategy.entry(id="buy", long=true, when=openLong and high < targetUp, limit=close, alert_message="buy,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetUp)+",sl="+tostring(roundsllong)) strategy.entry(id="sell", long=false, when=openShort and low > targetDown, limit=close, alert_message="sell,"+tostring(syminfo.ticker)+",tp="+tostring(roundtargetDown)+",sl="+tostring(roundslshort)) // Exit Orders strategy.exit(id="closelong", when=closeLong and strategy.position_size > 0, limit=exit_long, stop=sl_long, alert_message="closelong,"+tostring(syminfo.ticker)) strategy.exit(id="closeshort", when=closeShort and strategy.position_size < 0, limit=exit_short, stop=sl_short, alert_message="closeshort,"+tostring(syminfo.ticker))