اتار چڑھاؤ کا فرق معیاری انحراف حرکت پذیر اوسط کراس اوور مقداری حکمت عملی

VoVix ATR DEVMA MA SMA stdev EXPANSION CONTRACTION Trailing Stop
تخلیق کی تاریخ: 2025-07-11 09:39:14 آخر میں ترمیم کریں: 2025-08-25 13:05:54
کاپی: 0 کلکس کی تعداد: 311
2
پر توجہ دیں
319
پیروکار

اتار چڑھاؤ کا فرق معیاری انحراف حرکت پذیر اوسط کراس اوور مقداری حکمت عملی اتار چڑھاؤ کا فرق معیاری انحراف حرکت پذیر اوسط کراس اوور مقداری حکمت عملی

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

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

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

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

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

  1. VoVix اسکور کا حسابیہ حکمت عملی سب سے پہلے VoVix سکور کا حساب لگاتی ہے، جو کہ ایک معیاری پیمائش ہے جو فلوٹ کی شرح کو متاثر کرتی ہے۔

    • ریاضی کا فارمولا: VoVix اسکور = (ATR ((فاسٹ) - ATR ((سست)) / (StDev ((ATR ((فاسٹ)) + ε)
    • جب تیز رفتار اے ٹی آر سست رفتار اے ٹی آر سے نمایاں طور پر زیادہ ہے تو ، اس سے ظاہر ہوتا ہے کہ اتار چڑھاؤ کی شرح میں تیزی سے اضافہ ہوا ہے اور مارکیٹ “توسیع” کر رہی ہے۔
    • جب تیز اے ٹی آر سست اے ٹی آر سے کم ہوتا ہے تو ، اس سے یہ ظاہر ہوتا ہے کہ اتار چڑھاؤ میں کمی واقع ہوئی ہے اور مارکیٹ “سکیڑ” ہے۔
  2. انحراف تجزیہ (DEV)حکمت عملی: مارکیٹ میں اتار چڑھاؤ کی متحرکات کی افراتفری یا استحکام کی پیمائش کرنے کے لئے وو ویکس اسکور کے اپنے معیاری فرق کا حساب لگائیں۔

    • ریاضی کا فارمولا: DEV = StDev ((VoVix اسکور ، ریٹرو سائیکل)
    • اعلی ڈی ای وی کا مطلب یہ ہے کہ اتار چڑھاؤ کی شرح غیر مستحکم اور غیر متوقع ہے۔
    • کم ڈی ای وی کا مطلب یہ ہے کہ اتار چڑھاؤ کی شرح میں تبدیلی مستحکم اور سمت ہے۔
  3. DEVMA کراسنگ: یہ بنیادی سگنل جنریٹر ہے۔ حکمت عملی ڈی ای وی کی قیمت کی دو منتقل اوسطوں کا حساب لگاتی ہے اور جب یہ دونوں لائنیں ملتی ہیں تو تجارتی سگنل پیدا کرتی ہے۔

    • ریاضی کا فارمولا: fastDEVMA = SMA ((DEV ، تیز رفتار) ، slowDEVMA = SMA ((DEV ، سست رفتار)
    • slowDEVMA>: یہ اشارہ کرتا ہے کہ قلیل مدتی اتار چڑھاؤ کی شرح میں اضافہ ہوا ہے ، جو عام طور پر مارکیٹ میں نمایاں توسیع کی نشاندہی کرتا ہے۔
    • بیئرنگ کراس ((فاسٹ ڈی ای وی ایم اے < سست ڈی ای وی ایم اے): اس بات کی نشاندہی کرتا ہے کہ قلیل مدتی اتار چڑھاؤ کی افراتفری کم ہو رہی ہے اور مارکیٹ مستحکم یا سست ہو رہی ہے۔
  4. موافقت کے نفاذ کا طریقہ کارسسٹم میں ذہین اسٹاپ ، اسٹاپ اور ٹریکنگ اسٹاپ میکانزم شامل ہیں ، یہ سبھی اے ٹی آر اقدار کی متحرک ایڈجسٹمنٹ پر مبنی ہیں ، جس سے یہ موجودہ مارکیٹ میں اتار چڑھاؤ کی شرح کو ایڈجسٹ کرسکتا ہے۔

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

کوڈ کا گہرائی سے تجزیہ کرنے کے بعد، مندرجہ ذیل حکمت عملی کے فوائد کا خلاصہ کیا جا سکتا ہے:

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

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

  3. مارکیٹ کی حیثیت کی شناخت: حکمت عملی واضح طور پر مارکیٹ کی توسیع اور سکڑنے کی حالتوں میں سے دو کو الگ کرتی ہے ، جس سے تاجروں کو موجودہ مارکیٹ کے حالات کے مطابق اپنی تجارتی حکمت عملی کو ایڈجسٹ کرنے کی اجازت ملتی ہے۔

  4. بہتر رسک مینجمنٹحکمت عملی: اسٹیلٹ اسٹاپ ، متحرک اسٹاپ اور ٹریکنگ اسٹاپ میکانزم کے نفاذ کے ذریعہ ، حکمت عملی منافع بخش رجحانات کو پکڑنے کے ساتھ ساتھ خطرے کو مؤثر طریقے سے کنٹرول کرتی ہے۔

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

  6. ملٹی ٹائم فریم موافقتاس حکمت عملی کا ڈیزائن مختلف ٹائم فریموں پر مؤثر طریقے سے کام کرنے کے قابل بناتا ہے، جس میں قلیل مدتی سے لے کر طویل مدتی تجارت تک قابل اطلاق ہوتا ہے۔

  7. اعلی جیت کی شرحریٹائرمنٹ کے نتائج کے مطابق ، اس حکمت عملی نے مخصوص حالات میں 84.09 فیصد تک کی جیت کا مظاہرہ کیا ، جس میں 2.663 کا منافع بخش عنصر ہے ، جس سے یہ ظاہر ہوتا ہے کہ اس میں مارکیٹ کے متعدد حالات میں اچھی کارکردگی کا مظاہرہ کرنے کی صلاحیت ہے۔

اسٹریٹجک رسک

اگرچہ اس حکمت عملی کے نمایاں فوائد ہیں ، اس میں کچھ ممکنہ خطرات اور حدود بھی ہیں:

  1. پیرامیٹر انحصار: حکمت عملی کی تاثیر کا انحصار ڈی وی ایم اے پیرامیٹرز کی صحیح ترتیب پر ہے۔ مختلف مارکیٹوں میں مختلف پیرامیٹرز کی ترتیبات کی ضرورت ہوسکتی ہے تاکہ بہترین نتائج حاصل کیے جاسکیں۔

  2. سگنل کی تعدد غیر مستحکم: مارکیٹ کے بعض حالات میں حکمت عملیوں سے بہت زیادہ یا بہت کم ٹریڈنگ سگنل پیدا ہوسکتے ہیں ، جس سے مجموعی کارکردگی اور تجارت کی فریکوئنسی متاثر ہوتی ہے۔

  3. واپسی کا خطرہاگرچہ حکمت عملی میں رسک مینجمنٹ کے اقدامات نافذ کیے گئے ہیں ، لیکن مارکیٹ کے انتہائی حالات میں ، جیسے اچانک اعلی اتار چڑھاؤ یا بلیک آؤٹ ، اس میں نمایاں واپسی کا سامنا کرنا پڑ سکتا ہے۔

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

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

  6. تاریخی کارکردگی پر مبنی توقعاتاس حکمت عملی کی اعلی کامیابی کی شرح ایک مخصوص تاریخی مدت کے دوران کی جانچ پڑتال پر مبنی ہے، اور مستقبل میں اسی طرح کی کارکردگی کی ضمانت نہیں ہے.

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

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

کوڈ کا گہرائی سے تجزیہ کرنے سے ، مندرجہ ذیل ممکنہ اصلاحات کی نشاندہی کی جاسکتی ہے۔

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

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

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

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

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

  6. پوزیشن مینجمنٹ کی اصلاح: اعلی درجے کی پوزیشن مینجمنٹ سسٹم کو لاگو کریں ، جو سگنل کی طاقت ، مارکیٹ کی حالت اور اتار چڑھاؤ کی سطح کے مطابق تجارت کے پیمانے کو متحرک طور پر ایڈجسٹ کریں۔

  7. سیریل سگنل تجزیہ: لگاتار سگنل کے تجزیہ کو شامل کریں ، اعلی معیار کے سگنل کے سلسلے کے نمونوں کی شناخت کریں ، اور تجارتی فیصلوں کی درستگی کو مزید بہتر بنائیں۔

  8. ملٹی ٹائم فریم تجزیہ: کثیر ٹائم فریم تجزیہ کو مربوط کریں ، اس بات کو یقینی بنائیں کہ ٹریڈنگ سگنل بڑے ٹائم فریموں میں مارکیٹ کی سمت کے مطابق ہوں ، اور مخالف سمت کی تجارت کے امکانات کو کم کریں۔

خلاصہ کریں۔

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

معیاری اتار چڑھاؤ کے حساب کتاب اور متحرک اوسط کراسنگ ٹکنالوجی کا استعمال کرتے ہوئے ، اس حکمت عملی نے ایک مستحکم اور لچکدار تجارتی فریم ورک بنایا ہے۔ اے ٹی آر پر مبنی اسٹاپ ، اسٹاپ اور ٹریکنگ اسٹاپ سمیت ایک مربوط رسک مینجمنٹ سسٹم ، اسے ایک مکمل تجارتی حل بناتا ہے۔

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

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

حکمت عملی کا ماخذ کوڈ
//@version=5
strategy("VoVix DEVMA Clean", shorttitle="VoVix", overlay=false)

//==============================================================================
// VoVix DEVMA Configuration
//==============================================================================
group_devma = "VoVix DEVMA Configuration"
devLen = input.int(59, "Deviation Lookback", minval=15, maxval=60, group=group_devma)
fastVoVixLen = input.int(20, "Fast VoVix Length", minval=10, maxval=50, group=group_devma)
slowVoVixLen = input.int(60, "Slow VoVix Length", minval=30, maxval=100, group=group_devma)

//==============================================================================
// Adaptive Intelligence
//==============================================================================
group_adaptive = "Adaptive Intelligence"
ENABLE_ADAPTIVE = input.bool(true, "Enable Adaptive Features", group=group_adaptive)
ADAPTIVE_TIME_EXIT = input.bool(true, "Adaptive Time-Based Exit", group=group_adaptive)

//==============================================================================
// Intelligent Execution
//==============================================================================
group_execution = "Intelligent Execution"
tradeQty = input.int(1, "Trade Quantity", minval=1, maxval=100, group=group_execution)
USE_SMART_STOPS = input.bool(true, "Smart Stop Loss", group=group_execution)
ATR_SL_MULTIPLIER = input.float(2.0, "Stop Loss ATR Multiplier", minval=0.5, maxval=5.0, step=0.1, group=group_execution)
ATR_TP_MULTIPLIER = input.float(3.0, "Take Profit ATR Multiplier", minval=1.0, maxval=10.0, step=0.1, group=group_execution)
USE_TRAILING_STOP = input.bool(true, "Use Trailing Stop", group=group_execution)
TRAIL_POINTS_MULT = input.float(0.5, "Trail Points ATR Multiplier", minval=0.5, maxval=5.0, step=0.1, group=group_execution)
TRAIL_OFFSET_MULT = input.float(0.5, "Trail Offset ATR Multiplier", minval=0.1, maxval=2.0, step=0.1, group=group_execution)
max_bars_in_trade = input.int(18, "Maximum Bars in Trade", group=group_execution, minval=1, maxval=100)

//==============================================================================
// ADAPTIVE VARIABLES (simplified)
//==============================================================================
var array<float> trade_returns = array.new_float(30)
var array<int> trade_durations = array.new_int(20)
var int total_trades = 0
var float win_rate = 0.5
var int avg_winning_duration = 20
var float adaptive_time_exit_mult = 1.0

// Calculate ATR
atr_value = ta.atr(14)

//==============================================================================
// CORE DEVMA CALCULATIONS
//==============================================================================
vovix_source = (ta.atr(fastVoVixLen) - ta.atr(slowVoVixLen)) / (ta.stdev(ta.atr(fastVoVixLen), devLen) + 1e-6)
dev = ta.stdev(vovix_source, devLen)
fastDEVMA = ta.sma(dev, fastVoVixLen)
slowDEVMA = ta.sma(dev, slowVoVixLen)

//==============================================================================
// SIGNAL LOGIC
//==============================================================================
devma_diff = fastDEVMA - slowDEVMA
bullCross = ta.crossover(fastDEVMA, slowDEVMA) and devma_diff > 0
bearCross = ta.crossunder(fastDEVMA, slowDEVMA) and math.abs(devma_diff) > 0

// Signal strength calculation  
signal_strength = math.abs(devma_diff) / dev * 100
signal_quality = signal_strength > 5.0 ? "ELITE" : signal_strength > 3.0 ? "STRONG" : signal_strength > 1.0 ? "GOOD" : "WEAK"

//==============================================================================
// EXECUTION LOGIC
//==============================================================================
can_enter_new_trade = strategy.position_size == 0

// Apply adaptive time exit 
adaptive_max_bars = max_bars_in_trade
if ENABLE_ADAPTIVE and ADAPTIVE_TIME_EXIT
    if win_rate > 0.85
        adaptive_max_bars := math.round(max_bars_in_trade * adaptive_time_exit_mult * 1.5)
    else if win_rate > 0.75
        adaptive_max_bars := math.round(max_bars_in_trade * adaptive_time_exit_mult * 1.25)
    else
        adaptive_max_bars := math.round(max_bars_in_trade * adaptive_time_exit_mult)

//==============================================================================
// ADAPTIVE MEMORY SYSTEM (simplified)
//==============================================================================
if strategy.closedtrades > strategy.closedtrades[1] and barstate.isconfirmed
    last_trade_pnl = strategy.closedtrades.profit(strategy.closedtrades - 1)
    last_trade_return = last_trade_pnl / strategy.initial_capital
    last_trade_bars = strategy.closedtrades.exit_bar_index(strategy.closedtrades - 1) - strategy.closedtrades.entry_bar_index(strategy.closedtrades - 1)
    
    // Track performance (merged array)
    array.unshift(trade_returns, last_trade_return)
    if array.size(trade_returns) > 30
        array.pop(trade_returns)
    
    // Track trade duration for winners
    if last_trade_pnl > 0
        array.unshift(trade_durations, last_trade_bars)
        if array.size(trade_durations) > 20
            array.pop(trade_durations)
    
    total_trades += 1
    
    // Update win rate
    if array.size(trade_returns) >= 10
        wins = 0
        for i = 0 to array.size(trade_returns) - 1
            if array.get(trade_returns, i) > 0
                wins += 1
        win_rate := wins / array.size(trade_returns)

// Adaptive parameter adjustment
if ENABLE_ADAPTIVE and array.size(trade_returns) >= 5 and total_trades % 3 == 0
    if array.size(trade_durations) > 5
        duration_sum = 0
        for i = 0 to math.min(array.size(trade_durations) - 1, 9)
            duration_sum += array.get(trade_durations, i)
        avg_winning_duration := math.round(duration_sum / math.min(array.size(trade_durations), 10))

    if ADAPTIVE_TIME_EXIT and avg_winning_duration > 0
        adaptive_time_exit_mult := math.max(0.5, math.min(2.0, avg_winning_duration / max_bars_in_trade))

//==============================================================================
// TRADE ENTRY LOGIC
//==============================================================================
// Entry function to reduce code duplication
f_enter_trade(isLong, entryName, exitName, comment) =>
    stop_distance = atr_value * ATR_SL_MULTIPLIER
    profit_distance = atr_value * ATR_TP_MULTIPLIER
    
    stop_loss = USE_SMART_STOPS ? (isLong ? close - stop_distance : close + stop_distance) : na
    take_profit = isLong ? close + profit_distance : close - profit_distance
    
    strategy.entry(entryName, isLong ? strategy.long : strategy.short, qty=tradeQty, comment=comment)
    
    if USE_TRAILING_STOP
        trail_points = atr_value * TRAIL_POINTS_MULT
        trail_offset = atr_value * TRAIL_OFFSET_MULT
        strategy.exit(exitName, entryName, stop=stop_loss, limit=take_profit, trail_points=trail_points, trail_offset=trail_offset)
    else
        strategy.exit(exitName, entryName, stop=stop_loss, limit=take_profit)

// LONG ENTRIES
if bullCross and can_enter_new_trade and barstate.isconfirmed
    f_enter_trade(true, "ExpansionLong", "ExitExpLong", "Expansion→LONG")

// SHORT ENTRIES
if bearCross and can_enter_new_trade and barstate.isconfirmed
    f_enter_trade(false, "ContractionShort", "ExitConShort", "Contraction→SHORT")

// Time-based exit
if strategy.position_size != 0
    bars_in_trade = bar_index - strategy.opentrades.entry_bar_index(strategy.opentrades - 1)
    if bars_in_trade >= adaptive_max_bars and barstate.isconfirmed
        strategy.close_all(comment="Time Exit " + str.tostring(bars_in_trade) + "b")

//==============================================================================
// BASIC PLOTS (CORE STRATEGY LINES ONLY)
//==============================================================================
plot(fastDEVMA, "FastDEVMA", color=fastDEVMA > fastDEVMA[1] ? color.green : color.maroon, linewidth=2)
plot(slowDEVMA, "SlowDEVMA", color=slowDEVMA > slowDEVMA[1] ? color.aqua : color.orange, linewidth=2)
plot(dev, "StdDev", color=color.new(color.purple, 60), linewidth=1)

//==============================================================================
// ALERTS
//==============================================================================
if bullCross
    alert("VoVix EXPANSION: " + signal_quality, alert.freq_once_per_bar)
if bearCross
    alert("VoVix CONTRACTION: " + signal_quality, alert.freq_once_per_bar)