यह रणनीति फिबोनाची रिट्रेसमेंट और एक्सटेंशन लेवल पर आधारित एक कम्पोजिट क्वांटिटेटिव ट्रेडिंग सिस्टम है, जो ईएमए ट्रेंड निर्धारण के साथ संयुक्त है। यह रणनीति बाजार में महत्वपूर्ण समर्थन और प्रतिरोध स्तरों की पहचान करती है और ट्रेंड सिग्नल के आधार पर ट्रेडों को निष्पादित करती है। यह प्रणाली बाजार के रुझानों को निर्धारित करने के लिए 20-पीरियड और 50-पीरियड ईएमए का उपयोग करती है और इष्टतम ट्रेडिंग अवसरों को खोजने के लिए फिबोनाची रिट्रेसमेंट लेवल का उपयोग करती है।
मूल तर्क में तीन मुख्य घटक होते हैंः पहला, यह मूल्य सीमा निर्धारित करने के लिए पिछले 10 अवधियों में उच्चतम और निम्नतम कीमतों की गणना करता है; दूसरा, यह इस सीमा के आधार पर पांच प्रमुख फिबोनाची रिट्रेसमेंट स्तरों (0.236, 0.382, 0.5, 0.618, 0.786) की गणना करता है; अंत में, यह 20 और 50-अवधि ईएमए के क्रॉसओवर के माध्यम से प्रवृत्ति दिशा निर्धारित करता है। खरीद संकेत तब उत्पन्न होते हैं जब मूल्य एक अपट्रेंड में रिट्रेसमेंट स्तरों से ऊपर टूट जाता है, जबकि बिक्री संकेत तब ट्रिगर होते हैं जब मूल्य एक डाउनट्रेंड में रिट्रेसमेंट स्तरों से नीचे टूट जाता है।
यह रणनीति क्लासिक तकनीकी विश्लेषण उपकरणों को मिलाकर एक अपेक्षाकृत पूर्ण ट्रेडिंग प्रणाली का निर्माण करती है। जबकि अनुकूलन के लिए क्षेत्र हैं, समग्र ढांचा अच्छी बाजार अनुकूलन क्षमता का प्रदर्शन करता है। निरंतर अनुकूलन और सुधार के माध्यम से, रणनीति वास्तविक व्यापार में बेहतर प्रदर्शन के लिए वादा करती है। लाइव ट्रेडिंग से पहले गहन ऐतिहासिक डेटा बैकटेस्टिंग और पैरामीटर अनुकूलन करने की सिफारिश की जाती है।
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-11 00:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fibonacci Retracement and Extension Strategy", overlay=true) // Define the Fibonacci levels for retracement and extension fibRetracementLevels = array.new_float(5) array.set(fibRetracementLevels, 0, 0.236) array.set(fibRetracementLevels, 1, 0.382) array.set(fibRetracementLevels, 2, 0.5) array.set(fibRetracementLevels, 3, 0.618) array.set(fibRetracementLevels, 4, 0.786) fibExtensionLevels = array.new_float(5) array.set(fibExtensionLevels, 0, 1.618) array.set(fibExtensionLevels, 1, 2.618) array.set(fibExtensionLevels, 2, 3.618) array.set(fibExtensionLevels, 3, 4.236) array.set(fibExtensionLevels, 4, 5.618) // Calculate the high and low prices for the last 10 bars highPrice = ta.highest(high, 10) lowPrice = ta.lowest(low, 10) // Calculate the Fibonacci retracement levels fibRetracement = array.new_float(5) for i = 0 to 4 array.set(fibRetracement, i, highPrice - (highPrice - lowPrice) * array.get(fibRetracementLevels, i)) // Calculate the trend using the Exponential Moving Average (EMA) shortEMA = ta.ema(close, 20) longEMA = ta.ema(close, 50) // Define the trend conditions isUptrend = shortEMA > longEMA isDowntrend = shortEMA < longEMA // Generate buy and sell signals var float lastFibRetracementLevel = na var float lastFibExtensionLevel = na // Buy condition: price crosses above the highest retracement level if (isUptrend) for i = 0 to 4 if (close > array.get(fibRetracement, i)) lastFibRetracementLevel := array.get(fibRetracement, i) strategy.entry("Buy", strategy.long) // Sell condition: price crosses below the lowest retracement level if (isDowntrend) for i = 0 to 4 if (close < array.get(fibRetracement, i)) lastFibRetracementLevel := array.get(fibRetracement, i) strategy.entry("Sell", strategy.short) // Plotting the Fibonacci levels on the chart // for i = 0 to 4 // line.new(bar_index[10], array.get(fibRetracement, i), bar_index, array.get(fibRetracement, i), color=color.new(color.blue, 70), width=1) // Plot the EMAs plot(shortEMA, color=color.red, title="Short EMA") plot(longEMA, color=color.blue, title="Long EMA")