
এই কৌশলটি একটি সমন্বিত পরিমাণযুক্ত ট্রেডিং সিস্টেম যা ফিবোনাচিস রিট্র্যাকশন এবং এক্সটেনশন স্তরের উপর ভিত্তি করে এবং ইএমএ প্রবণতার সাথে মিলিত হয়। কৌশলটি বাজারের গুরুত্বপূর্ণ সমর্থনকারী প্রতিরোধের স্তরগুলি সনাক্ত করে এবং ট্রেন্ডিং সিগন্যালের সাথে ট্রেড করে। সিস্টেমটি 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")