
यह रणनीति एक मिश्रित मात्रात्मक ट्रेडिंग प्रणाली है, जो फिबोनाची रिट्रीट और एक्सटेंशन स्तरों पर आधारित है, जो ईएमए औसत प्रवृत्ति के साथ जुड़ा हुआ है। रणनीति बाजार के महत्वपूर्ण समर्थन प्रतिरोधों की पहचान करके ट्रेडिंग करती है, जो ट्रेंड सिग्नल के साथ जुड़ा हुआ है। सिस्टम 20 चक्र और 50 चक्र ईएमए औसत प्रवृत्ति का उपयोग करता है और इस आधार पर फिबोनाची रिट्रीट स्तरों का उपयोग करके सर्वोत्तम व्यापार अवसरों की तलाश करता है।
रणनीति के मूल तर्क में तीन मुख्य भाग होते हैंः सबसे पहले, कीमतों के उतार-चढ़ाव के लिए एक सीमा निर्धारित करने के लिए लगभग 10 चक्रों के उच्चतम और निम्नतम मूल्य की गणना; फिर, इस सीमा के आधार पर पांच महत्वपूर्ण फिबोनाची रिट्रेस स्तरों की गणना करें (.236, .382, .5, .618, .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")