
یہ حکمت عملی ایک اعلی درجے کی رجحان ٹریکنگ سسٹم ہے جو اے ٹی آر اور فبونیکی سیریز کے وزن پر مبنی ہے۔ اس نے ایک سے زیادہ ٹائم پیریڈ کے اتار چڑھاؤ کے تجزیے کو فبونیکی وزن والے اوسط کے ساتھ جوڑ کر ایک ذمہ دار ، قابل موافقت تجارتی ماڈل بنایا ہے۔ اس حکمت عملی کا بنیادی مقصد مارکیٹ کے رجحانات کو بہتر طور پر پکڑنا ہے ، جس میں متحرک وزن کی تقسیم کے ذریعہ ، اور اے ٹی آر کا استعمال کرتے ہوئے عین مطابق منافع حاصل کرنا ہے۔
حکمت عملی میں متعدد سطحوں پر مشتمل تکنیکی اشارے کے مجموعے کا استعمال کیا گیا ہے۔ پہلے ، اصل اتار چڑھاؤ کی حد ((TR) اور خریداری کے دباؤ ((BP) کا حساب لگائیں ، پھر فبونیکی عددی وقت کی مدت ((8 ، 13 ، 21 ، 34 ، 55) پر مبنی ہر دور کے دباؤ کے تناسب کا حساب لگائیں۔ مختلف دوروں پر مختلف وزن ((5 ، 4 ، 3 ، 2 ، 1) عائد کرکے ایک ویٹڈ میڈین تشکیل دیں ، اور اس کے بعد 3 دوروں کے ایس ایم اے ہموار کرنے کا استعمال کریں۔ نظام نے ایس ایم اے کو پیش وضاحتی حدود ((58.0 اور 42.0) کے ساتھ کراسنگ پر مبنی ٹریڈنگ سگنل کو متحرک کیا ، اور اے ٹی آر کا استعمال کرتے ہوئے ایک چار قدمی منافع بخش بندوبست کا طریقہ کار تیار کیا۔
اس حکمت عملی میں اے ٹی آر اور فبونیکی ویٹڈ اوسط کی تکنیک کو مربوط کرکے ایک جامع رجحان سے باخبر رہنے کا نظام بنایا گیا ہے۔ اس کا فائدہ کثیر جہتی تجزیہ اور متحرک موافقت کی صلاحیت میں ہے ، لیکن اس میں پیرامیٹرز کی اصلاح اور مارکیٹ کے حالات کو فلٹر کرنے پر بھی توجہ دینے کی ضرورت ہے۔ مسلسل اصلاح اور وائنٹ کنٹرول میں اضافے کے ذریعہ ، حکمت عملی کو مختلف مارکیٹ کے حالات میں مستحکم کارکردگی برقرار رکھنے کی امید ہے۔
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © PresentTrading
// The Fibonacci ATR Fusion Strategy is an advanced trading methodology that uniquely integrates Fibonacci-based weighted averages with the Average True Range (ATR) to
// identify and exploit significant market trends. Unlike traditional strategies that rely on single indicators or fixed parameters, this approach leverages multiple timeframes and
// dynamic volatility measurements to enhance accuracy and adaptability.
//@version=5
strategy("Fibonacci ATR Fusion - Strategy [presentTrading]", overlay=false, precision=3, commission_value= 0.1, commission_type=strategy.commission.percent, slippage= 1, currency=currency.USD, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, initial_capital=10000)
// Calculate True High and True Low
tradingDirection = input.string(title="Trading Direction", defval="Both", options=["Long", "Short", "Both"])
// Trading Condition Thresholds
long_entry_threshold = input.float(58.0, title="Long Entry Threshold")
short_entry_threshold = input.float(42.0, title="Short Entry Threshold")
long_exit_threshold = input.float(42.0, title="Long Exit Threshold")
short_exit_threshold = input.float(58.0, title="Short Exit Threshold")
// Enable or Disable 4-Step Take Profit
useTakeProfit = input.bool(false, title="Enable 4-Step Take Profit")
// Take Profit Levels (as multiples of ATR)
tp1ATR = input.float(3.0, title="Take Profit Level 1 ATR Multiplier")
tp2ATR = input.float(8.0, title="Take Profit Level 2 ATR Multiplier")
tp3ATR = input.float(14.0, title="Take Profit Level 3 ATR Multiplier")
// Take Profit Percentages
tp1_percent = input.float(12.0, title="TP Level 1 Percentage", minval=0.0, maxval=100.0)
tp2_percent = input.float(12.0, title="TP Level 2 Percentage", minval=0.0, maxval=100.0)
tp3_percent = input.float(12.0, title="TP Level 3 Percentage", minval=0.0, maxval=100.0)
true_low = math.min(low, close[1])
true_high = math.max(high, close[1])
// Calculate True Range
true_range = true_high - true_low
// Calculate BP (Buying Pressure)
bp = close - true_low
// Calculate ratios for different periods
calc_ratio(len) =>
sum_bp = math.sum(bp, len)
sum_tr = math.sum(true_range, len)
100 * sum_bp / sum_tr
// Calculate weighted average of different timeframes
weighted_avg = (5 * calc_ratio(8) + 4 * calc_ratio(13) + 3 * calc_ratio(21) + 2 * calc_ratio(34) + calc_ratio(55)) / (5 + 4 + 3 + 2 + 1)
weighted_avg_sma = ta.sma(weighted_avg,3)
// Plot the indicator
plot(weighted_avg, "Fibonacci ATR", color=color.blue, linewidth=2)
plot(weighted_avg_sma, "SMA Fibonacci ATR", color=color.yellow, linewidth=2)
// Define trading conditions
longCondition = ta.crossover(weighted_avg_sma, long_entry_threshold) // Enter long when weighted average crosses above threshold
shortCondition = ta.crossunder(weighted_avg_sma, short_entry_threshold) // Enter short when weighted average crosses below threshold
longExit = ta.crossunder(weighted_avg_sma, long_exit_threshold)
shortExit = ta.crossover(weighted_avg_sma, short_exit_threshold)
atrPeriod = 14
atrValue = ta.atr(atrPeriod)
if (tradingDirection == "Long" or tradingDirection == "Both")
if (longCondition)
strategy.entry("Long", strategy.long)
// Set Take Profit levels for Long positions
if useTakeProfit
tpPrice1 = strategy.position_avg_price + tp1ATR * atrValue
tpPrice2 = strategy.position_avg_price + tp2ATR * atrValue
tpPrice3 = strategy.position_avg_price + tp3ATR * atrValue
// Close partial positions at each Take Profit level
strategy.exit("TP1 Long", from_entry="Long", qty_percent=tp1_percent, limit=tpPrice1)
strategy.exit("TP2 Long", from_entry="Long", qty_percent=tp2_percent, limit=tpPrice2)
strategy.exit("TP3 Long", from_entry="Long", qty_percent=tp3_percent, limit=tpPrice3)
if (longExit)
strategy.close("Long")
if (tradingDirection == "Short" or tradingDirection == "Both")
if (shortCondition)
strategy.entry("Short", strategy.short)
// Set Take Profit levels for Short positions
if useTakeProfit
tpPrice1 = strategy.position_avg_price - tp1ATR * atrValue
tpPrice2 = strategy.position_avg_price - tp2ATR * atrValue
tpPrice3 = strategy.position_avg_price - tp3ATR * atrValue
// Close partial positions at each Take Profit level
strategy.exit("TP1 Short", from_entry="Short", qty_percent=tp1_percent, limit=tpPrice1)
strategy.exit("TP2 Short", from_entry="Short", qty_percent=tp2_percent, limit=tpPrice2)
strategy.exit("TP3 Short", from_entry="Short", qty_percent=tp3_percent, limit=tpPrice3)
if (shortExit)
strategy.close("Short")