اعلی درجے کی تجارتی پیٹرن کی شناخت اور متحرک خطرے کے انتظام کی حکمت عملی

EMA ATR FIBONACCI ENGULFING volatility VOLUME RISK-REWARD
تخلیق کی تاریخ: 2025-06-19 13:57:50 آخر میں ترمیم کریں: 2025-06-19 13:57:50
کاپی: 4 کلکس کی تعداد: 287
2
پر توجہ دیں
319
پیروکار

اعلی درجے کی تجارتی پیٹرن کی شناخت اور متحرک خطرے کے انتظام کی حکمت عملی اعلی درجے کی تجارتی پیٹرن کی شناخت اور متحرک خطرے کے انتظام کی حکمت عملی

حکمت عملی کا جائزہ

اعلی درجے کی ٹریڈنگ پیٹرن کی شناخت اور متحرک رسک مینجمنٹ حکمت عملی ایک مقداری تجارتی حکمت عملی ہے جو ایک متحرک رسک مینجمنٹ سسٹم کے ساتھ عین مطابق گھسنے والی شکل کی شناخت کی تکنیک کو جوڑتی ہے۔ اس حکمت عملی کا بنیادی مقصد اعلی درجے کی ریاضی کی توثیق کے طریقوں کے ذریعہ مارکیٹ میں گھسنے والی شکل کی درست شناخت کرنا ہے ، اور اس رجحان کے فلٹر کے طور پر 50 سیکنڈ کے انڈیکس میں منتقل ہونے والی اوسط ((ای ایم اے) کے ساتھ مل کر ، اس بات کو یقینی بنانا ہے کہ تجارت کی سمت غالب مارکیٹ کے رجحانات سے مطابقت رکھتی ہے۔ حکمت عملی گہرائی سے تجزیہ کرتا ہے اور گراف کی شکل ، تجارت کی مقدار کی تصدیق اور اتار چڑھاؤ فلٹرنگ جیسے متعدد تکنیکی اشارے کے ذریعہ اعلی امکانات کے تجارتی سگنل کو چھانٹتی ہے ، جبکہ فیفا پونچوچ کی سطح پر متحرک اسٹاپ نقصان اور منافع کے اہداف کی بنیاد پر ، ذہین رسک مینجمنٹ کا احساس کرتی ہے۔

حکمت عملی کا اصول

اس حکمت عملی کا کام چند اہم اجزاء پر مبنی ہے:

  1. رجحانات کا پتہ لگانے کا نظام: 50 سائیکل ای ایم اے کو بطور اہم ٹرینڈ انڈیکیٹر استعمال کریں۔ قیمتیں ای ایم اے کے اوپر بڑھتی ہوئی رجحان کے طور پر پہچانی جاتی ہیں ، زیادہ کرنے کے لئے موزوں ہیں۔ قیمتیں ای ایم اے کے نیچے نیچے گرتی ہوئی رجحان کے طور پر پہچانی جاتی ہیں ، خالی کرنے کے لئے موزوں ہیں۔ اس سے یہ یقینی بنتا ہے کہ تجارت ہمیشہ مارکیٹ کی غالب سمت کے مطابق ہو۔

  2. اعلی درجے کی نگلنے کی شکل کی شناختحکمت عملی: بہتر ورژن کے نگلنے کی شکل کا پتہ لگانے کے لئے ، موجودہ کدو کو پچھلے کدو کو مکمل طور پر “گلا” کرنے کی ضرورت ہے ، اور ریاضی کی توثیق کے ذریعہ شکل کے معیار کو یقینی بنانا ہے۔ نظام تجزیہ کرتا ہے:

    • پچھلے جسم کے مقابلے میں موجودہ جسم کا تناسب ((کم سے کم نگلنے کا تناسب)
    • اوپر اور نیچے سائے کی لکیر کا جسم سے تناسب ((زیادہ سے زیادہ سائے کی لکیر کا تناسب)
    • اوسط حقیقی رینج (ATR) کے ساتھ موجودہ کٹ کے مجموعی سائز کا تعلق
  3. ملٹی فلٹرنگ میکانزم

    • حجم فلٹر: اس بات کو یقینی بنانا کہ حجم اوسط سے زیادہ ہے
    • اتار چڑھاؤ فلٹرنگ: اے ٹی آر کے ذریعہ مارکیٹ میں اتار چڑھاؤ کی تصدیق مناسب تجارتی شرائط تک
    • شیڈو لائن کوالٹی کنٹرول: سگنل کوالٹی کو بہتر بنانے کے لئے اوپر اور نیچے شیڈو لائن سائز کو محدود کریں
  4. متحرک خطرے کے انتظام

    • اسٹاپ نقصان کی حساب کتاب: فبونیکی سطح ، فکسڈ رقم یا اے ٹی آر ضرب پر مبنی متعدد اسٹاپ نقصان کی حکمت عملی کی حمایت کرتا ہے
    • منافع کا ہدف: فکسڈ رسک ریٹرن ریٹ یا فبونیکی سطح کا ہدف مقرر کیا جاسکتا ہے
    • خود کار طریقے سے ٹرانزیکشن فیس کا حساب لگانا، حقیقی ٹریڈنگ ماحول میں حکمت عملی کی فزیبلٹی کو یقینی بنانا

اسٹریٹجک فوائد

کوڈ کے گہرے تجزیے سے پتہ چلتا ہے کہ اس حکمت عملی کے درج ذیل نمایاں فوائد ہیں:

  1. داخلہ کا صحیح وقت: رجحانات ، شکلوں اور متعدد تصدیق شدہ اشارے کو جوڑ کر ، حکمت عملی مارکیٹ میں اعلی معیار کے داخلے کے مقامات کی نشاندہی کرنے میں کامیاب ہے جس میں اعدادوشمار کے فوائد ہیں ، اور اس سے متعلق غلط سگنلوں سے بچنے کے لئے جو ایک ہی اشارے سے پیدا ہوسکتے ہیں۔

  2. خطرے کے انتظام کے لئے خود کو اپنانا: فکسڈ پیرامیٹرز کے ساتھ روایتی حکمت عملیوں کے برعکس ، اس حکمت عملی کا رسک مینجمنٹ سسٹم موجودہ مارکیٹ کے حالات کے مطابق متحرک طور پر ایڈجسٹ ہوتا ہے ، فبونیکی سطح یا اے ٹی آر کی قیمتوں کا استعمال کرتے ہوئے اسٹاپ نقصان اور منافع کے اہداف کا حساب لگاتا ہے ، جو مختلف مارکیٹ کے حالات کے لئے بہتر ہے۔

  3. مکمل بصری حمایتحکمت عملی: حکمت عملی ایک جامع چارٹ میکر اور انفارمیشن پینل فراہم کرتی ہے ، جس میں انٹری سگنل ، اسٹاپ نقصان / منافع کی سطح ، موجودہ رجحان کی حیثیت اور ریئل ٹائم پی اینڈ ایل ٹریکنگ شامل ہے ، جس سے تاجروں کو مارکیٹ کی صورتحال اور حکمت عملی کی کارکردگی کو بصری طور پر سمجھنے میں مدد ملتی ہے۔

  4. اعلی حسب ضرورتحکمت عملی: حکمت عملی میں وسیع پیمانے پر پیرامیٹرز کی ترتیبات فراہم کی جاتی ہیں ، بشمول ای ایم اے کی لمبائی ، گھونٹ کی شرح ، رسک ریٹرن ریٹ ، وغیرہ ، تاجر کو ذاتی خطرے کی ترجیحات اور مختلف مارکیٹ کے حالات کے مطابق حکمت عملی کی کارکردگی کو ایڈجسٹ کرنے کی اجازت دیتا ہے۔

  5. جامع ٹرانزیکشن فیس غورحکمت عملی میں ٹریڈنگ کمیشن کا حساب لگایا جاتا ہے، یہ ایک اہم عنصر ہے جو اکثر ٹریڈنگ سسٹم کی طرف سے نظر انداز کیا جاتا ہے، اس بات کو یقینی بناتا ہے کہ ریٹرننگ کے نتائج کو حقیقی ٹریڈنگ ماحول سے زیادہ قریب ہے.

اسٹریٹجک رسک

اس حکمت عملی کے متعدد فوائد کے باوجود ، اس میں مندرجہ ذیل ممکنہ خطرات اور حدود ہیں۔

  1. مارکیٹ کے ماحول پر انحصار: حکمت عملی واضح رجحان کے ساتھ مارکیٹ میں بہترین کارکردگی کا مظاہرہ کرتی ہے ، جبکہ افقی صفائی یا اعلی اتار چڑھاؤ والے غیر جانبدار مارکیٹ میں زیادہ جھوٹے سگنل پیدا ہوسکتے ہیں۔ اس کا حل حکمت عملی کا استعمال کرنے سے پہلے اعلی ٹائم فریم کی مارکیٹ کی حالت کا جائزہ لینا ہے ، یا اضافی مارکیٹ ڈھانچہ فلٹر شامل کرنا ہے۔

  2. پیرامیٹرز کو بہتر بنانے کا جال: زیادہ سے زیادہ اصلاحی پیرامیٹرز ممکنہ طور پر مستقبل کے مارکیٹ کے ماحول میں ناقص کارکردگی کا مظاہرہ کرنے کے لئے منحنی فٹ ہونے کا سبب بن سکتے ہیں۔ پیرامیٹرز کی افادیت کی توثیق کرنے کے لئے فارورڈ ٹیسٹنگ یا مختلف مارکیٹ کے حالات میں استحکام کی جانچ کا استعمال کرنے کی سفارش کی جاتی ہے۔

  3. توڑنے کے خطرے کو روکنا: انتہائی مارکیٹ میں اتار چڑھاؤ یا عدم لیکویڈیٹی کی شرائط کے تحت ، اصل نقصان کا سامنا کرنا پڑ سکتا ہے ، جو متوقع نقصان سے زیادہ ہے۔ اس خطرے کو کم کرنے کے لئے روکنے کے تحفظ کے علاقے میں اضافہ کرکے یا پوزیشن کے زیادہ محتاط سائز کا استعمال کرکے اس خطرے کو کم کیا جاسکتا ہے۔

  4. تکنیکی اشارے میں پسماندگی: ای ایم اے اور دیگر تکنیکی اشارے فطری طور پر تاخیر کا شکار ہیں ، جو مارکیٹ میں تیزی سے تبدیلیوں پر غیر فعال ہوسکتے ہیں۔ اس کمی کو دور کرنے کے لئے اعلی ٹائم فریم تجزیہ یا ابتدائی انتباہی اشارے میں اضافے کے ساتھ مل کر تجویز کی گئی ہے۔

  5. ٹرانزیکشن حجم اور معیار کے مسائل: حکمت عملی صرف تجارت کے حجم کے سائز کو مدنظر رکھتی ہے نہ کہ حجم کی ساخت اور معیار کو ، جو کچھ مارکیٹ کے حالات میں گمراہ کن ہوسکتی ہے۔ حجم تجزیہ یا فنڈ فلو اشارے کی گہرائی کو بڑھانے کے لئے حجم تجزیہ میں اضافہ کرنے پر غور کیا جاسکتا ہے۔

حکمت عملی کی اصلاح کی سمت

کوڈ تجزیہ کی بنیاد پر ، اس حکمت عملی کو مندرجہ ذیل سمتوں میں بہتر بنایا جاسکتا ہے۔

  1. مارکیٹ کی حالت خود کو اپنانے

    • مارکیٹ کی ساخت کی شناخت کے لئے، رجحان اور رینج مارکیٹ میں مختلف پیرامیٹرز کا استعمال کرتے ہوئے
    • مارکیٹ میں اتار چڑھاؤ کی شرح انڈیکس (VIX) یا مارکیٹ کے جذبات کے دیگر اشارے متعارف کروائیں تاکہ اعلی اتار چڑھاؤ کے دوران خود بخود خطرے کے پیرامیٹرز کو ایڈجسٹ کیا جاسکے
    • وجہ: اس سے حکمت عملی کو مارکیٹ کے مختلف حالات کے مطابق ذہانت سے اپنانے اور مجموعی استحکام کو بہتر بنانے میں مدد ملے گی
  2. ملٹی ٹائم فریم تجزیہ

    • اعلی ٹائم فریم میں رجحانات کی تصدیق کے طریقہ کار کو شامل کرنا
    • کم ٹائم فریم کے ساتھ زیادہ سے زیادہ انٹری کی درستگی
    • وجہ: ملٹی ٹائم فریم تجزیہ نمایاں طور پر رجحانات کی شناخت کی درستگی کو بہتر بناتا ہے اور منفی تجارت کو کم کرتا ہے
  3. اعلی درجے کی حجم تجزیہ

    • ٹریڈنگ حجم کے وزن میں منتقل اوسط ((VWMA) کو اضافی رجحان کی تصدیق کے طور پر متعارف کرایا
    • مجموعی حجم کے بجائے خرید و فروخت کے دباؤ کا تجزیہ
    • وجہ: زیادہ سے زیادہ ٹرانزیکشن حجم تجزیہ مارکیٹ کے شرکاء کے رویے کے بارے میں گہری بصیرت فراہم کرتا ہے
  4. مشین سیکھنے میں اضافہ

    • سادہ مشین لرننگ الگورتھم کا استعمال کرتے ہوئے پیرامیٹرز کو خودکار طور پر بہتر بنانا
    • تاریخ کے اعداد و شمار کی بنیاد پر سب سے بہتر نگلنے کی شکل کی شناخت
    • وجہ: مشین لرننگ ان ٹھیک ٹھیک نمونوں اور روابط کی نشاندہی کر سکتی ہے جو انسانوں کے لئے تلاش کرنا مشکل ہے
  5. خطرے کے انتظام میں بہتری

    • اکاؤنٹس کی خالص مالیت پر مبنی متحرک پوزیشن کی پیمائش کا تعین
    • دن/ہفتہ/ماہ خطرے کی حد شامل کریں
    • بریکین فنکشن متعارف کرایا
    • وجہ: طویل مدتی تجارت کی کامیابی کے لئے بہتر رسک مینجمنٹ ضروری ہے

خلاصہ کریں۔

اعلی درجے کی ٹریڈنگ پیٹرن کی شناخت اور متحرک رسک مینجمنٹ حکمت عملی ایک اچھی طرح سے ڈیزائن کیا گیا تجارتی نظام ہے جو روایتی غوطہ خوری کی تکنیکی تجزیہ اور جدید مقداری طریقوں کو ملا کر ایک جامع تجارتی فریم ورک تشکیل دیتا ہے۔ اس حکمت عملی کا بنیادی فائدہ اس کے کثیر جہتی سگنل کی تصدیق کے میکانزم اور موافقت پذیر رسک مینجمنٹ سسٹم میں ہے جو اسے مختلف مارکیٹ کے حالات میں نسبتا مستحکم کارکردگی کا مظاہرہ کرنے کی اجازت دیتا ہے۔

اس حکمت عملی نے 50 EMA رجحان فلٹرنگ ، اعلی درجے کی غوطہ خور شکل کی شناخت ، حجم اور اتار چڑھاؤ کی تصدیق جیسے متعدد میکانزموں کے ذریعہ داخلے کے اشارے کی معیار کو نمایاں طور پر بہتر بنایا ہے۔ اس کے علاوہ ، فیبونیکی سطح یا اے ٹی آر ضرب کے حساب سے متحرک اسٹاپ نقصان اور منافع کے اہداف کے ذریعہ ، ہر تجارت کے لئے واضح رسک ریٹرن ڈھانچہ فراہم کیا گیا ہے۔

مارکیٹ کے ماحول پر انحصار اور تکنیکی اشارے میں پسماندگی جیسی موروثی حدود کے باوجود ، اس حکمت عملی میں مارکیٹ کی حالت کی موافقت ، ملٹی ٹائم فریم تجزیہ اور مشین لرننگ میں اضافے جیسے تجویز کردہ اصلاحی سمتوں کے ذریعہ اس کی استحکام اور موافقت کو مزید بڑھانے کی صلاحیت ہے۔ تجربہ کار تاجروں کے لئے ، یہ ایک پیشہ ورانہ سطح کا تجارتی نظام ہے جو مکمل خصوصیات پیش کرتا ہے ، جبکہ نئے آنے والوں کے لئے ، اعلی درجے کی تجارتی تصورات اور خطرے کے انتظام کے اصولوں کو سیکھنے کے لئے تعلیمی آلے کے طور پر کام کرتا ہے۔

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2025-05-19 00:00:00
end: 2025-06-18 00:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=6
strategy("🎯 IKODO Engulfing Strategy with Dynamic RR & Commission", shorttitle="IKODO Engulfing Pro", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=0, calc_on_every_tick=false, calc_on_order_fills=false, commission_type=strategy.commission.percent, commission_value=0.04)

// ═══════════════════════════════════════════════════════════════════════════════
// 📊 ADVANCED INPUT PARAMETERS
// ═══════════════════════════════════════════════════════════════════════════════

// Commission Settings
enable_commission = input.bool(true, "Enable Commission", group="💰 Commission Settings")
commission_rate = input.float(0.04, "Commission Rate (%)", minval=0.0, maxval=1.0, step=0.01, group="💰 Commission Settings", tooltip="Binance Futures: 0.02% Maker, 0.04% Taker")
commission_type_input = input.string("Percentage", "Commission Type", options=["Percentage", "Fixed USD"], group="💰 Commission Settings")

// Risk Management Inputs
rr_ratio = input.float(2.0, "Risk Reward Ratio", minval=0.5, maxval=10.0, step=0.1, group="🎯 Risk Management")
use_fibonacci_tp = input.bool(true, "Use Fibonacci Levels for TP", group="🎯 Risk Management")
fib_level_tp = input.float(0.618, "Fibonacci Level for TP", minval=0.236, maxval=1.0, step=0.001, group="🎯 Risk Management")

// Stop Loss Settings
sl_type = input.string("Fibonacci", "Stop Loss Type", options=["Fibonacci", "Fixed USD", "ATR Multiple"], group="🛡️ Stop Loss Settings")
sl_fib_level = input.float(0.236, "Fibonacci Level for SL", minval=0.1, maxval=0.5, step=0.001, group="🛡️ Stop Loss Settings")
sl_fixed_usd = input.float(50.0, "Fixed Stop Loss (USD)", minval=1.0, maxval=1000.0, step=1.0, group="🛡️ Stop Loss Settings")
sl_atr_multiple = input.float(1.5, "ATR Multiple for SL", minval=0.5, maxval=5.0, step=0.1, group="🛡️ Stop Loss Settings")

// EMA Settings
ema_length = input.int(50, "EMA Length", minval=1, maxval=200, group="📈 Trend Filter")
ema_source = input.source(close, "EMA Source", group="📈 Trend Filter")

// Pattern Recognition Settings
min_engulf_ratio = input.float(0.1, "Minimum Engulfing Ratio", minval=0.01, maxval=1.0, step=0.01, group="🔍 Pattern Recognition")
max_wick_ratio = input.float(0.3, "Maximum Wick Ratio", minval=0.1, maxval=0.8, step=0.01, group="🔍 Pattern Recognition")

// Advanced Filters
volume_filter = input.bool(true, "Use Volume Filter", group="🔧 Advanced Filters")
volume_multiplier = input.float(1.2, "Volume Multiplier", minval=1.0, maxval=3.0, step=0.1, group="🔧 Advanced Filters")
atr_filter = input.bool(true, "Use ATR Volatility Filter", group="🔧 Advanced Filters")
atr_length = input.int(14, "ATR Length", minval=1, maxval=50, group="🔧 Advanced Filters")
min_atr_ratio = input.float(0.5, "Minimum ATR Ratio", minval=0.1, maxval=2.0, step=0.1, group="🔧 Advanced Filters")

// Visualization Settings
show_fibonacci_levels = input.bool(true, "Show Fibonacci Levels", group="🎨 Visualization")

// ═══════════════════════════════════════════════════════════════════════════════
// 🧮 QUANTITATIVE CALCULATIONS
// ═══════════════════════════════════════════════════════════════════════════════

// EMA Calculation
ema_50 = ta.ema(ema_source, ema_length)

// ATR for Volatility Assessment
atr = ta.atr(atr_length)

// Volume Analysis
avg_volume = ta.sma(volume, 20)
volume_condition = not volume_filter or volume > avg_volume * volume_multiplier

// Fibonacci calculation for swing levels
swing_high = ta.highest(high, 20)
swing_low = ta.lowest(low, 20)

// ═══════════════════════════════════════════════════════════════════════════════
// 🔍 ADVANCED PATTERN RECOGNITION
// ═══════════════════════════════════════════════════════════════════════════════

// Current and Previous Candle Properties
curr_body = math.abs(close - open)
prev_body = math.abs(close[1] - open[1])
curr_range = high - low
prev_range = high[1] - low[1]

// Candle Color Identification
curr_bullish = close > open
curr_bearish = close < open
prev_bullish = close[1] > open[1]
prev_bearish = close[1] < open[1]

// Enhanced Engulfing Pattern Detection
bullish_engulfing = curr_bullish and prev_bearish and close > high[1] and low < low[1] and curr_body > prev_body * min_engulf_ratio

bearish_engulfing = curr_bearish and prev_bullish and close < low[1] and high > high[1] and curr_body > prev_body * min_engulf_ratio

// Wick Analysis for Quality Filter
curr_upper_wick = curr_bullish ? high - close : high - open
curr_lower_wick = curr_bullish ? open - low : close - low
wick_filter_long = curr_upper_wick <= curr_range * max_wick_ratio
wick_filter_short = curr_lower_wick <= curr_range * max_wick_ratio

// ATR Volatility Filter
atr_filter_condition = not atr_filter or curr_range >= atr * min_atr_ratio

// ═══════════════════════════════════════════════════════════════════════════════
// 📈 TREND ANALYSIS & ENTRY CONDITIONS
// ═══════════════════════════════════════════════════════════════════════════════

// Trend Conditions
uptrend = close > ema_50
downtrend = close < ema_50

// Complete Entry Conditions
long_condition = uptrend and bullish_engulfing and wick_filter_long and volume_condition and atr_filter_condition

short_condition = downtrend and bearish_engulfing and wick_filter_short and volume_condition and atr_filter_condition

// ═══════════════════════════════════════════════════════════════════════════════
// 🎯 ADVANCED STOP LOSS CALCULATION
// ═══════════════════════════════════════════════════════════════════════════════

// Function to calculate stop loss based on type
calculate_stop_loss(entry_price, is_long, sl_type, swing_high, swing_low, atr, sl_fib_level, sl_fixed_usd, sl_atr_multiple) =>
    var float stop_loss = na
    
    if sl_type == "Fibonacci"
        if is_long
            fib_range = swing_high - swing_low
            stop_loss := swing_low + (fib_range * sl_fib_level)
        else
            fib_range = swing_high - swing_low
            stop_loss := swing_high - (fib_range * sl_fib_level)
    
    else if sl_type == "Fixed USD"
        if is_long
            stop_loss := entry_price - sl_fixed_usd
        else
            stop_loss := entry_price + sl_fixed_usd
    
    else if sl_type == "ATR Multiple"
        if is_long
            stop_loss := entry_price - (atr * sl_atr_multiple)
        else
            stop_loss := entry_price + (atr * sl_atr_multiple)
    
    stop_loss

// Function to calculate take profit
calculate_take_profit(entry_price, stop_loss, is_long, use_fibonacci_tp, swing_high, swing_low, fib_level_tp, rr_ratio) =>
    var float take_profit = na
    
    if use_fibonacci_tp
        if is_long
            fib_range = swing_high - swing_low
            take_profit := swing_low + (fib_range * fib_level_tp)
        else
            fib_range = swing_high - swing_low
            take_profit := swing_high - (fib_range * fib_level_tp)
    else
        // Traditional RR-based TP
        if is_long
            risk = entry_price - stop_loss
            take_profit := entry_price + (risk * rr_ratio)
        else
            risk = stop_loss - entry_price
            take_profit := entry_price - (risk * rr_ratio)
    
    take_profit

// ═══════════════════════════════════════════════════════════════════════════════
// 🎯 DYNAMIC RISK MANAGEMENT SYSTEM
// ═══════════════════════════════════════════════════════════════════════════════

// Dynamic Stop Loss and Take Profit Calculation
var float entry_price = na
var float stop_loss = na
var float take_profit = na
var float commission_cost = na

if long_condition and strategy.position_size == 0
    entry_price := close
    stop_loss := calculate_stop_loss(entry_price, true, sl_type, swing_high, swing_low, atr, sl_fib_level, sl_fixed_usd, sl_atr_multiple)
    take_profit := calculate_take_profit(entry_price, stop_loss, true, use_fibonacci_tp, swing_high, swing_low, fib_level_tp, rr_ratio)
    
    // Calculate commission cost
    commission_cost := enable_commission and commission_type_input == "Fixed USD" ? sl_fixed_usd * 2 : 0

if short_condition and strategy.position_size == 0
    entry_price := close
    stop_loss := calculate_stop_loss(entry_price, false, sl_type, swing_high, swing_low, atr, sl_fib_level, sl_fixed_usd, sl_atr_multiple)
    take_profit := calculate_take_profit(entry_price, stop_loss, false, use_fibonacci_tp, swing_high, swing_low, fib_level_tp, rr_ratio)
    
    // Calculate commission cost
    commission_cost := enable_commission and commission_type_input == "Fixed USD" ? sl_fixed_usd * 2 : 0

// ═══════════════════════════════════════════════════════════════════════════════
// 🚀 STRATEGY EXECUTION WITH COMMISSION
// ═══════════════════════════════════════════════════════════════════════════════

// Entry Orders
if long_condition
    strategy.entry("Long", strategy.long, comment="🟢 Elite Long Entry")

if short_condition
    strategy.entry("Short", strategy.short, comment="🔴 Elite Short Entry")

// Exit Orders
if strategy.position_size > 0
    strategy.exit("Long Exit", "Long", stop=stop_loss, limit=take_profit, comment="🎯 Long Exit")

if strategy.position_size < 0
    strategy.exit("Short Exit", "Short", stop=stop_loss, limit=take_profit, comment="🎯 Short Exit")

// ═══════════════════════════════════════════════════════════════════════════════
// 📊 ADVANCED VISUALIZATION - GLOBAL SCOPE
// ═══════════════════════════════════════════════════════════════════════════════

// EMA Plot
plot(ema_50, "EMA 50", color=color.new(color.blue, 0), linewidth=2)

// Entry Signals
plotshape(long_condition, "Long Signal", shape.triangleup, location.belowbar, color.new(color.green, 0), size=size.normal)
plotshape(short_condition, "Short Signal", shape.triangledown, location.abovebar, color.new(color.red, 0), size=size.normal)

// Support/Resistance Levels
plot(strategy.position_size != 0 ? stop_loss : na, "Stop Loss", color.new(color.red, 0), linewidth=2, style=plot.style_linebr)
plot(strategy.position_size != 0 ? take_profit : na, "Take Profit", color.new(color.green, 0), linewidth=2, style=plot.style_linebr)

// Entry Price Line
plot(strategy.position_size != 0 ? entry_price : na, "Entry Price", color.new(color.yellow, 0), linewidth=1, style=plot.style_linebr)

// Fibonacci Levels Visualization - MOVED TO GLOBAL SCOPE
show_fib_condition = show_fibonacci_levels and (sl_type == "Fibonacci" or use_fibonacci_tp)
plot(show_fib_condition ? swing_high : na, "Swing High", color.new(color.gray, 50), linewidth=1, style=plot.style_circles)
plot(show_fib_condition ? swing_low : na, "Swing Low", color.new(color.gray, 50), linewidth=1, style=plot.style_circles)

// Additional Fibonacci Levels
fib_range = swing_high - swing_low
fib_236 = swing_low + (fib_range * 0.236)
fib_382 = swing_low + (fib_range * 0.382)
fib_618 = swing_low + (fib_range * 0.618)
fib_786 = swing_low + (fib_range * 0.786)

plot(show_fib_condition ? fib_236 : na, "Fib 23.6%", color.new(color.orange, 70), linewidth=1, style=plot.style_linebr)
plot(show_fib_condition ? fib_382 : na, "Fib 38.2%", color.new(color.orange, 70), linewidth=1, style=plot.style_linebr)
plot(show_fib_condition ? fib_618 : na, "Fib 61.8%", color.new(color.orange, 70), linewidth=1, style=plot.style_linebr)
plot(show_fib_condition ? fib_786 : na, "Fib 78.6%", color.new(color.orange, 70), linewidth=1, style=plot.style_linebr)

// ═══════════════════════════════════════════════════════════════════════════════
// 📈 ENHANCED PERFORMANCE METRICS DISPLAY
// ═══════════════════════════════════════════════════════════════════════════════

// Enhanced Information Table
var table info_table = table.new(position.top_right, 3, 12, bgcolor=color.new(color.white, 85), border_width=1)

if barstate.islast
    table.cell(info_table, 0, 0, "📊 ELITE STRATEGY PRO", text_color=color.black, text_size=size.small)
    
    // Risk Management Info
    table.cell(info_table, 0, 1, "Risk-Reward Ratio:", text_color=color.black, text_size=size.tiny)
    table.cell(info_table, 1, 1, str.tostring(rr_ratio, "#.##"), text_color=color.blue, text_size=size.tiny)
    
    // Commission Info
    table.cell(info_table, 0, 2, "Commission:", text_color=color.black, text_size=size.tiny)
    commission_text = enable_commission ? (commission_type_input == "Percentage" ? str.tostring(commission_rate, "#.##") + "%" : "$" + str.tostring(sl_fixed_usd, "#.##")) : "Disabled"
    table.cell(info_table, 1, 2, commission_text, text_color=enable_commission ? color.red : color.gray, text_size=size.tiny)
    
    // Stop Loss Type
    table.cell(info_table, 0, 3, "Stop Loss Type:", text_color=color.black, text_size=size.tiny)
    table.cell(info_table, 1, 3, sl_type, text_color=color.purple, text_size=size.tiny)
    
    // EMA Period
    table.cell(info_table, 0, 4, "EMA Period:", text_color=color.black, text_size=size.tiny)
    table.cell(info_table, 1, 4, str.tostring(ema_length), text_color=color.blue, text_size=size.tiny)
    
    // Current Trend
    table.cell(info_table, 0, 5, "Current Trend:", text_color=color.black, text_size=size.tiny)
    trend_text = uptrend ? "🟢 BULLISH" : downtrend ? "🔴 BEARISH" : "⚪ NEUTRAL"
    trend_color = uptrend ? color.green : downtrend ? color.red : color.gray
    table.cell(info_table, 1, 5, trend_text, text_color=trend_color, text_size=size.tiny)
    
    // ATR
    table.cell(info_table, 0, 6, "ATR:", text_color=color.black, text_size=size.tiny)
    table.cell(info_table, 1, 6, str.tostring(atr, "#.####"), text_color=color.blue, text_size=size.tiny)
    
    // Fibonacci Range
    table.cell(info_table, 0, 7, "Fib Range:", text_color=color.black, text_size=size.tiny)
    table.cell(info_table, 1, 7, str.tostring(fib_range, "#.####"), text_color=color.orange, text_size=size.tiny)
    
    // Current Position Info
    if strategy.position_size != 0
        current_pnl = strategy.position_size > 0 ? (close - entry_price) / entry_price * 100 : (entry_price - close) / entry_price * 100
        table.cell(info_table, 0, 8, "Current P&L:", text_color=color.black, text_size=size.tiny)
        pnl_color = current_pnl > 0 ? color.green : color.red
        table.cell(info_table, 1, 8, str.tostring(current_pnl, "#.##") + "%", text_color=pnl_color, text_size=size.tiny)
        
        // Risk Amount
        risk_amount = strategy.position_size > 0 ? entry_price - stop_loss : stop_loss - entry_price
        table.cell(info_table, 0, 9, "Risk per Share:", text_color=color.black, text_size=size.tiny)
        table.cell(info_table, 1, 9, str.tostring(risk_amount, "#.####"), text_color=color.orange, text_size=size.tiny)
        
        // Reward Amount
        reward_amount = strategy.position_size > 0 ? take_profit - entry_price : entry_price - take_profit
        table.cell(info_table, 0, 10, "Reward per Share:", text_color=color.black, text_size=size.tiny)
        table.cell(info_table, 1, 10, str.tostring(reward_amount, "#.####"), text_color=color.green, text_size=size.tiny)

// ═══════════════════════════════════════════════════════════════════════════════
// 🔔 ENHANCED ALERT CONDITIONS
// ═══════════════════════════════════════════════════════════════════════════════

// Alert conditions
alertcondition(long_condition, title="🟢 Elite Long Entry Pro", message="Elite Engulfing Strategy PRO: LONG signal detected with commission calculation.")

alertcondition(short_condition, title="🔴 Elite Short Entry Pro", message="Elite Engulfing Strategy PRO: SHORT signal detected with commission calculation.")

// Dynamic alerts with detailed information
if long_condition
    alert_msg = "🟢 LONG SIGNAL: Elite Engulfing Pro | Price: " + str.tostring(close, "#.####") + " | RR: " + str.tostring(rr_ratio, "#.##") + " | SL Type: " + sl_type + " | Commission: " + (enable_commission ? str.tostring(commission_rate, "#.##") + "%" : "Disabled")
    alert(alert_msg, alert.freq_once_per_bar)

if short_condition
    alert_msg = "🔴 SHORT SIGNAL: Elite Engulfing Pro | Price: " + str.tostring(close, "#.####") + " | RR: " + str.tostring(rr_ratio, "#.##") + " | SL Type: " + sl_type + " | Commission: " + (enable_commission ? str.tostring(commission_rate, "#.##") + "%" : "Disabled")
    alert(alert_msg, alert.freq_once_per_bar)