
یہ حکمت عملی ایک فیبونیکی واپسی کی سطح پر مبنی رجحان سے باخبر رہنے کی حکمت عملی ہے۔ حکمت عملی بنیادی طور پر فیبونیکی واپسی کی اہم سطح کا استعمال کرتی ہے جس میں پچھلے تجارتی دن کی اعلی ترین قیمت اور کم ترین قیمت کا حساب لگایا جاتا ہے ، جس میں کھلنے کی قیمت کی پوزیشن اور وقت کی کھڑکی کے ساتھ مل کر متعدد داخلے کی شرائط مرتب کی جاتی ہیں ، اور مختلف شرائط کے ل corresponding اسی طرح کی اسٹاپ نقصان کی پوزیشن ترتیب دی جاتی ہے ، تاکہ رجحانات پر گرفت اور خطرے پر قابو پایا جاسکے۔
حکمت عملی نے پہلے چھ اہم فبونیکی واپسی کی سطحوں کا حساب لگایا ((0، 23.6٪، 38.2٪، 50٪، 61.8٪ اور 100٪) ۔ ان سطحوں کے مقابلے میں افتتاحی قیمت کی پوزیشن کے مطابق ، داخلے کی شرائط کو تین حالتوں میں تقسیم کیا گیا ہے: 1) افتتاحی قیمت 23.6٪ -50٪ کے درمیان ہے؛ 2) افتتاحی قیمت 61.8٪ پر ہے اور مقررہ وقت کی کھڑکی میں ہے۔ ((9:15-9:30)) ؛ 3) افتتاحی قیمت 23.6٪ سے کم ہے اور پچھلے دن کی کم سے کم ہے۔ ان تین حالات کے لئے الگ الگ اسٹاپ نقصان کی پوزیشن ترتیب دی گئی ہے: 61.8٪ واپسی ، 61.8٪ -100٪ واپسی کے وسط میں ، 38.2٪ واپسی ، ایک مکمل تجارتی نظام تشکیل دیا گیا ہے۔
اس حکمت عملی نے فبونیکی ریٹریٹ لیول ، ٹائم ونڈوز اور کثیر شرائط کے فیصلے کو جوڑ کر ایک زیادہ مکمل تجارتی نظام تشکیل دیا ہے۔ حکمت عملی کی طاقت منطق کی وضاحت ، خطرے پر قابو پانے میں ہے ، لیکن پھر بھی مارکیٹ کی صورتحال کے مطابق اصلاح اور بہتری کی ضرورت ہے۔ رجحانات کے فیصلے ، متحرک اسٹاپ نقصان اور تجارت کے حجم کے تجزیے جیسے پہلوؤں میں اصلاحات کو شامل کرکے حکمت عملی کی استحکام اور منافع بخش صلاحیت کو مزید بہتر بنایا جاسکتا ہے۔
/*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)