
এই কৌশলটি একটি ফিবোনাচি প্রত্যাহার স্তরের উপর ভিত্তি করে একটি প্রবণতা ট্র্যাকিং কৌশল। কৌশলটি মূলত পূর্ববর্তী ট্রেডিং দিনের সর্বোচ্চ এবং সর্বনিম্ন মূল্যের মূল ফিবোনাচি প্রত্যাহার স্তর ব্যবহার করে, ওপেন প্রাইস অবস্থান এবং সময় উইন্ডোর সাথে একাধিক প্রবেশের শর্ত সেট করে এবং বিভিন্ন শর্তের জন্য সংশ্লিষ্ট স্টপ লস অবস্থান সেট করে, যাতে প্রবণতা এবং ঝুঁকি নিয়ন্ত্রণের উপর নিয়ন্ত্রণ করা যায়।
কৌশলটি প্রথমে ছয়টি গুরুত্বপূর্ণ ফিবোনাচি প্রত্যাহারের স্তর গণনা করে (০.২৩.৬%, ৩৮.২%, ৫০%, ৬১.৮% এবং ১০০%) । এই স্তরের তুলনায় ওপেন প্রাইসের অবস্থান অনুসারে, প্রবেশের শর্তগুলিকে তিনটি ক্ষেত্রে বিভক্ত করা হয়ঃ ১) ওপেন প্রাইস ২৩.৬% -৫০% এর মধ্যে; ২) ওপেন প্রাইস ৬১.৮% এবং নির্দিষ্ট সময় উইন্ডোতে (৯ঃ১৫-৯ঃ৩০); ৩) ওপেন প্রাইস ২৩.৬% এর নিচে এবং আগের দিনের নিম্ন থেকে কম। এই তিনটি পরিস্থিতির জন্য পৃথক পৃথক স্টপ লস অবস্থান সেট করুনঃ ৬১.৮% প্রত্যাহার, ৬১.৮% -১০০% প্রত্যাহারের মধ্যবর্তী পয়েন্ট, ৩৮.২% প্রত্যাহার, একটি সম্পূর্ণ ব্যবসায়ের সিস্টেম গঠন করে।
এই কৌশলটি ফিবোনাচিস রিট্র্যাকশন স্তর, সময় উইন্ডো এবং একাধিক শর্তাদির বিচারকে একত্রিত করে একটি সম্পূর্ণ ট্রেডিং সিস্টেম তৈরি করে। কৌশলটির সুবিধা হল লজিকাল স্পষ্টতা, ঝুঁকি নিয়ন্ত্রণযোগ্য, তবে বাজারের পরিস্থিতি অনুসারে অপ্টিমাইজেশন এবং উন্নতি করা প্রয়োজন। প্রবণতা বিচার, গতিশীল স্টপ লস এবং লেনদেনের পরিমাণ বিশ্লেষণের মতো দিকগুলিকে অপ্টিমাইজ করে কৌশলটির স্থায়িত্ব এবং লাভজনকতা আরও বাড়ানো যেতে পারে।
/*backtest
start: 2024-11-19 00:00:00
end: 2024-12-18 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=6
strategy("Fibonacci Retracement Strategy", overlay=true)
// Get the high and low of the previous day
previousHigh = request.security(syminfo.tickerid, "D", high[1])
previousLow = request.security(syminfo.tickerid, "D", low[1])
// Fibonacci levels for the previous day (from high to low)
fib0 = previousHigh
fib236 = previousHigh - (previousHigh - previousLow) * 0.236
fib382 = previousHigh - (previousHigh - previousLow) * 0.382
fib50 = previousHigh - (previousHigh - previousLow) * 0.5
fib618 = previousHigh - (previousHigh - previousLow) * 0.618
fib1 = previousHigh - (previousHigh - previousLow) * 1
// Current open price (for the current day)
openPrice = open
// Time for 9:15 AM check
timeStart = timestamp(year, month, dayofmonth, 9, 15)
timeClose = timestamp(year, month, dayofmonth, 9, 30) // Time window to allow for opening range
// Entry Conditions
buyCondition1 = openPrice >= fib236 and openPrice <= fib50
buyCondition2 = openPrice == fib618 and time >= timeStart and time <= timeClose
buyCondition3 = openPrice < fib236 and openPrice < previousLow
// Stop Loss based on conditions
stopLoss1 = fib618
stopLoss2 = fib618 - (fib618 - fib1) / 2
stopLoss3 = fib382
// Plot Fibonacci levels with calculated values
plot(fib0, color=color.green, linewidth=1, title="Fib 0")
plot(fib236, color=color.red, linewidth=1, title="Fib 0.236")
plot(fib382, color=color.blue, linewidth=1, title="Fib 0.382")
plot(fib50, color=color.yellow, linewidth=1, title="Fib 0.5")
plot(fib618, color=color.purple, linewidth=1, title="Fib 0.618")
plot(fib1, color=color.orange, linewidth=1, title="Fib 1")
// Plot labels for Fibonacci levels with actual values
label.new(x=bar_index, y=fib0, text="Fib 0: " + str.tostring(fib0), style=label.style_label_right, color=color.green, textcolor=color.white, size=size.small, yloc=yloc.abovebar)
label.new(x=bar_index, y=fib236, text="Fib 0.236: " + str.tostring(fib236), style=label.style_label_right, color=color.red, textcolor=color.white, size=size.small, yloc=yloc.abovebar)
label.new(x=bar_index, y=fib382, text="Fib 0.382: " + str.tostring(fib382), style=label.style_label_right, color=color.blue, textcolor=color.white, size=size.small, yloc=yloc.abovebar)
label.new(x=bar_index, y=fib50, text="Fib 0.5: " + str.tostring(fib50), style=label.style_label_right, color=color.yellow, textcolor=color.white, size=size.small, yloc=yloc.abovebar)
label.new(x=bar_index, y=fib618, text="Fib 0.618: " + str.tostring(fib618), style=label.style_label_right, color=color.purple, textcolor=color.white, size=size.small, yloc=yloc.abovebar)
label.new(x=bar_index, y=fib1, text="Fib 1: " + str.tostring(fib1), style=label.style_label_right, color=color.orange, textcolor=color.white, size=size.small, yloc=yloc.abovebar)
// Entry conditions and strategy execution
if (buyCondition1)
strategy.entry("Buy", strategy.long, stop=stopLoss1)
label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_up, size=size.small)
if (buyCondition2)
strategy.entry("Buy", strategy.long, stop=stopLoss2)
label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_up, size=size.small)
if (buyCondition3)
strategy.entry("Buy", strategy.long, stop=stopLoss3)
label.new(bar_index, low, "BUY", color=color.green, textcolor=color.white, style=label.style_label_up, size=size.small)
// Show exit signals and labels
if (buyCondition1)
strategy.exit("Exit", from_entry="Buy", stop=stopLoss1)
label.new(bar_index, high, "EXIT", color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small)
if (buyCondition2)
strategy.exit("Exit", from_entry="Buy", stop=stopLoss2)
label.new(bar_index, high, "EXIT", color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small)
if (buyCondition3)
strategy.exit("Exit", from_entry="Buy", stop=stopLoss3)
label.new(bar_index, high, "EXIT", color=color.red, textcolor=color.white, style=label.style_label_down, size=size.small)