ملٹی ٹائم فریم انکولی مارکیٹ میکانزم مقداری تجارتی حکمت عملی

ATR EMA RSI MACD ADX 布林带 蜡烛图形态 多时间框架分析 自适应算法 市场机制检测
تخلیق کی تاریخ: 2025-04-21 16:20:34 آخر میں ترمیم کریں: 2025-04-21 16:20:34
کاپی: 0 کلکس کی تعداد: 523
2
پر توجہ دیں
319
پیروکار

ملٹی ٹائم فریم انکولی مارکیٹ میکانزم مقداری تجارتی حکمت عملی ملٹی ٹائم فریم انکولی مارکیٹ میکانزم مقداری تجارتی حکمت عملی

جائزہ

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

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

اس حکمت عملی کا مرکز اس کے کثیر درجے کے مارکیٹ تجزیہ کے فریم ورک میں ہے ، جس میں متعدد تکنیکی اشارے کے انضمام کے ذریعہ مارکیٹ کی حالت کا درست پتہ لگانے اور سگنل تیار کرنا ممکن ہے۔

  1. منتقل اوسط نظام: تیزی سے ((9 سائیکل) اور آہستہ ((34 سائیکل) اشارے منتقل اوسط ((ای ایم اے) کا استعمال کرتے ہوئے رجحان کی سمت کا تعین کرنے کے لئے ، اے ٹی آر کی کم قیمت کے ساتھ مل کر فیصلہ کی درستگی کو بڑھانا۔

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

  3. مارکیٹ میکانزم کی شناخت کے الگورتھم

    • رجحان ساز مارکیٹ: ADX > 20 اور ایم اے کا فرق اے ٹی آر سے 0.3 گنا زیادہ ہے اور اعلی ٹائم فریم رجحان کی تصدیق کی گئی ہے
    • ڈویژنل مارکیٹ: ADX < 25 اور قیمت کی حد کا تناسب 0.03 سے کم ، اعلی ٹائم فریم غیر جانبدار
    • اتار چڑھاؤ والے بازار: بلین بینڈوڈتھ اوسط سے 1.5 گنا زیادہ اور اے ٹی آر اوسط سے 1.2 گنا زیادہ
    • پرسکون مارکیٹ: بلین بینڈوڈتھ اوسط سے 0.8 گنا کم اور اے ٹی آر اوسط اے ٹی آر سے 0.9 گنا کم
  4. گرافک شناخت اور ٹرانسمیشن کی تصدیقحکمت عملی: متعدد اعلی امکانات کے چارٹ فارمیٹس کا پتہ لگانے کے لئے ، بشمول بیجوں کو نگلنے والی شکلیں ، مچھلی کی لکیریں ، طلوع ستاروں کی شکلیں ، سوراخ کرنے والی لکیریں ، ڈبل نیچے ، اور ان کے نیچے کی طرف سے متعلقہ شکلیں۔ ہر شکل میں لین دین کی توثیق میں اضافہ کرنے اور سگنل کی وشوسنییتا کو بڑھانے کی ضرورت ہوتی ہے۔

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

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

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

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

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

  2. ملٹی ٹائم فریم تصدیق: اعلی وقت کی مدت کے اشارے کو شامل کرکے ، حکمت عملی نے سگنل کے معیار میں نمایاں اضافہ کیا۔ اس “اوپر سے نیچے” تجزیہ کے طریقہ کار نے کم معیار کے سگنل کو مؤثر طریقے سے فلٹر کیا ، جس سے جھوٹے توڑ اور شور کی تجارت میں کمی واقع ہوئی۔

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

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

  5. خود اصلاحی نظامحکمت عملی مختلف مارکیٹ کے نظام کے تحت کارکردگی کو ریکارڈ کرنے کی صلاحیت رکھتی ہے تاکہ مستقبل کے لین دین کے لئے آراء اور ایڈجسٹمنٹ کی بنیاد فراہم کی جاسکے ، اور مسلسل خود کو بہتر بنایا جاسکے۔

  6. بصری نگرانی: رنگین کوڈت پس منظر اور کارکردگی کے اشارے کے ذریعہ ، تاجر موجودہ مارکیٹ کی حالت ، حکمت عملی کی کارکردگی اور کلیدی اشارے کے بارے میں بصری طور پر معلومات حاصل کرسکتے ہیں ، جس سے آپریشنل شفافیت میں اضافہ ہوتا ہے۔

اسٹریٹجک رسک

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

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

  3. مارکیٹ میں تبدیلی میں تاخیر: اگرچہ حکمت عملی مارکیٹ کی مختلف حالتوں کی نشاندہی کرنے کے لئے ڈیزائن کی گئی ہے ، لیکن مارکیٹ میں تبدیلی کا عمل لمحہ بہ لمحہ نہیں ، بلکہ آہستہ آہستہ ہوسکتا ہے۔ تبدیلی کے دوران ، حکمت عملی کو غلط فہمی اور غلط سگنل کا خطرہ لاحق ہوسکتا ہے۔

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

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

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

اصلاح کی سمت

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

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

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

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

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

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

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

خلاصہ کریں۔

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

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

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

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2025-04-13 00:00:00
end: 2025-04-20 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"TRX_USD"}]
*/

//@version=6
strategy("Dskyz (DAFE) AI Adaptive Regime - Pro", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1, calc_on_order_fills=true, calc_on_every_tick=true)

// This script uses higher timeframe values for RSI/MACD, integrated into regime detection and scoring.
// Logic uses closed HTF bars to avoid repainting.

// D=====================================================Z
// 1. ATR SETTINGS==Z
// D=====================================================Z
group_atr = "⚡ ATR Settings"
atr_period     = input.int(14, "ATR Period", minval=1, group=group_atr)
atr_multiplier = input.float(1.5, "ATR Multiplier", minval=0.1, step=0.1, group=group_atr)
atr_val        = ta.atr(atr_period)
atr_avg        = ta.sma(atr_val, 50)

// D=====================================================Z
// 2. MOVING AVERAGE (MA) SETTINGS==Z
// D=====================================================Z
group_ma = "📊 Moving Averages"
fast_ma_length        = input.int(9, "Fast MA Length", minval=1, group=group_ma)
slow_ma_length        = input.int(34, "Slow MA Length", minval=1, group=group_ma)
ma_fast               = ta.ema(close, fast_ma_length)
ma_slow               = ta.ema(close, slow_ma_length)
ma_strength_threshold = input.float(0.5, "MA Strength Threshold", minval=0.0, step=0.1, group=group_ma)
trend_dir = ma_fast > ma_slow + (atr_val * ma_strength_threshold) ? 1 : ma_fast < ma_slow - (atr_val * ma_strength_threshold) ? -1 : 0

// D=====================================================Z
// 3. MULTI-TIMEFRAME (HTF) SETTINGS==Z
// D=====================================================Z
group_MTA = "⏱️ Multi-Timeframe Inputs"
htf = input.timeframe("D", "HTF for RSI & MACD", group=group_MTA)
htf_rsi_raw = request.security(syminfo.tickerid, htf, ta.rsi(close, 14))
htf_rsi = htf_rsi_raw[1]
[htf_macd_line_raw, htf_macd_signal_raw, htf_macd_hist_raw] = request.security(syminfo.tickerid, htf, ta.macd(close, 12, 26, 9))
htf_macd_line = htf_macd_line_raw[1]
htf_macd_signal = htf_macd_signal_raw[1]
htf_macd_hist = htf_macd_hist_raw[1]
// new: HTF trend direction for regime detection
htf_trend_bull = htf_macd_line > htf_macd_signal and htf_rsi > 50
htf_trend_bear = htf_macd_line < htf_macd_signal and htf_rsi < 50

// D=====================================================Z
// 4. TRADE SETTINGS==Z
// D=====================================================Z
group_trade = "⚙️ Trade Settings"
risk_per_trade      = input.int(500, "Risk per Trade ($)", minval=50, group=group_trade)
max_contracts       = input.int(5, "Max Contracts", minval=1, group=group_trade)
max_daily_drawdown  = input.float(0.05, "Max Daily Drawdown (%)", minval=0.01, group=group_trade)
tick_value          = input.float(12.5, "Tick Value ($)", minval=0.01, group=group_trade)
ticks_per_point     = input.int(4, "Ticks per Point", minval=1, group=group_trade)
default_stop_points = input.float(8.0, "Default Stop (Points)", minval=0.25, group=group_trade)

// D=====================================================Z
// 5. ADVANCED INDICATOR CALCULATIONS==Z
// D=====================================================Z

// --- ADX Calculation ---Z
adx_len   = 14
up        = ta.change(high)
down      = -ta.change(low)
plus_dm   = na(up) ? na : (up > down and up > 0 ? up : 0)
minus_dm  = na(down) ? na : (down > up and down > 0 ? down : 0)
trur      = ta.rma(ta.tr, adx_len)
plus_di   = 100 * ta.rma(plus_dm, adx_len) / trur
minus_di  = 100 * ta.rma(minus_dm, adx_len) / trur
adx_val   = 100 * ta.rma(math.abs(plus_di - minus_di) / (plus_di + minus_di), adx_len)

// --- Bollinger Bands Calculation ---Z
bb_basis     = ta.sma(close, 20)
bb_dev       = 2 * ta.stdev(close, 20)
bb_upper     = bb_basis + bb_dev
bb_lower     = bb_basis - bb_dev
bb_width     = (bb_upper - bb_lower) / bb_basis
bb_width_avg = ta.sma(bb_width, 50)

// --- Price Action Range ---Z
price_range = ta.highest(high, 20) - ta.lowest(low, 20)
range_ratio = price_range / close

// D=====================================================Z
// 6. REGIME ASSIGNMENT & PATTERN RECOGNITION==Z
// D=====================================================Z

// Regime assignment with HTF influence and looser thresholds
is_trending = adx_val > 20 and math.abs(ma_fast - ma_slow) > atr_val * 0.3 and htf_trend_bull or htf_trend_bear // loosened ADX and MA thresholds, added HTF
is_range    = adx_val < 25 and range_ratio < 0.03 and not htf_trend_bull and not htf_trend_bear // loosened ADX and range, HTF neutral
is_volatile = bb_width > bb_width_avg * 1.5 and atr_val > atr_avg * 1.2 and (htf_rsi > 70 or htf_rsi < 30) // loosened BB/ATR, added HTF overbought/oversold
is_quiet    = bb_width < bb_width_avg * 0.8 and atr_val < atr_avg * 0.9 // loosened BB/ATR
regime      = is_trending ? 1 : is_range ? 2 : is_volatile ? 3 : is_quiet ? 4 : 5
regime_name = regime == 1 ? "Trending" : regime == 2 ? "Range" : regime == 3 ? "Volatile" : regime == 4 ? "Quiet" : "Other"

// Pattern Recognition & Volume Confirmation-Z
vol_avg       = ta.sma(volume, 20)
vol_spike     = volume > vol_avg * 1.5
recent_low    = ta.lowest(low, 20)
recent_high   = ta.highest(high, 20)
is_near_support    = low <= recent_low * 1.01
is_near_resistance = high >= recent_high * 0.99

bullish_engulfing = close[1] < open[1] and close > open and close > open[1] and open < close[1] and is_near_support and vol_spike
hammer            = high - low > 3 * math.abs(open - close) and (close - low) / (0.001 + high - low) > 0.6 and is_near_support and vol_spike
morning_star      = close[2] < open[2] and math.abs(close[1] - open[1]) < 0.2 * (high[1] - low[1]) and close > open and close > (open[2] + close[2]) / 2 and is_near_support and vol_spike
piercing          = close[1] < open[1] and close > open and close > (open[1] + close[1]) / 2 and open < close[1] and is_near_support and vol_spike
double_bottom     = low < low[1] and low[1] > low[2] and low[2] < low[3] and close > open and is_near_support and vol_spike

bearish_engulfing = close[1] > open[1] and close < open and close < open[1] and open > close[1] and is_near_resistance and vol_spike
shooting_star     = high - low > 3 * math.abs(open - close) and (high - close) / (0.001 + high - low) > 0.6 and is_near_resistance and vol_spike
evening_star      = close[2] > open[2] and math.abs(close[1] - open[1]) < 0.2 * (high[1] - low[1]) and close < open and close < (open[2] + close[2]) / 2 and is_near_resistance and vol_spike
dark_cloud        = close[1] > open[1] and close < open and close < (open[1] + close[1]) / 2 and open > close[1] and is_near_resistance and vol_spike
double_top        = high > high[1] and high[1] < high[2] and high[2] > high[3] and close < open and is_near_resistance and vol_spike

bull_signal = (bullish_engulfing ? 0.5 : 0.0) +
              (hammer ? (regime == 2 ? 0.4 : 0.2) : 0.0) +
              (morning_star ? 0.2 : 0.0) +
              (piercing ? 0.2 : 0.0) +
              (double_bottom ? (regime == 3 ? 0.3 : 0.15) : 0.0)

bear_signal = (bearish_engulfing ? 0.5 : 0.0) +
              (shooting_star ? (regime == 2 ? 0.4 : 0.2) : 0.0) +
              (evening_star ? 0.2 : 0.0) +
              (dark_cloud ? 0.2 : 0.0) +
              (double_top ? (regime == 3 ? 0.3 : 0.15) : 0.0)

// Multi-Factor Confirmation with HTF-Z
rsi_val   = ta.rsi(close, 14)
[macd_line, macd_signal, macd_hist] = ta.macd(close, 12, 26, 9)
trend_bull = ma_fast > ma_slow
trend_bear = ma_fast < ma_slow
rsi_bull   = rsi_val < 30
rsi_bear   = rsi_val > 70
macd_bull  = macd_line > macd_signal
macd_bear  = macd_line < macd_signal
vol_expansion = atr_val > atr_avg * 1.2
// new: HTF confirmation for scoring
htf_bull_confirm = htf_trend_bull and htf_rsi < 70
htf_bear_confirm = htf_trend_bear and htf_rsi > 30

bull_score = bull_signal + (trend_bull ? 0.2 : 0) + (rsi_bull ? 0.15 : 0) + (macd_bull ? 0.15 : 0) + (vol_expansion ? 0.1 : 0) + (htf_bull_confirm ? 0.2 : 0)
bear_score = bear_signal + (trend_bear ? 0.2 : 0) + (rsi_bear ? 0.15 : 0) + (macd_bear ? 0.15 : 0) + (vol_expansion ? 0.1 : 0) + (htf_bear_confirm ? 0.2 : 0)

// D=====================================================Z
// 7. PERFORMANCE TRACKING & ADAPTIVE THRESHOLDS==Z
// D=====================================================Z
var float[] regime_pnl_long  = array.new_float(5, 0)
var float[] regime_pnl_short = array.new_float(5, 0)
var int[] regime_win_long    = array.new_int(5, 0)
var int[] regime_loss_long   = array.new_int(5, 0)
var int[] regime_win_short   = array.new_int(5, 0)
var int[] regime_loss_short  = array.new_int(5, 0)
var int entry_regime = na

if barstate.isconfirmed and strategy.closedtrades > 0 and not na(entry_regime)
    last_trade_profit = strategy.closedtrades.profit(strategy.closedtrades - 1)
    last_trade_entry_id = strategy.closedtrades.entry_id(strategy.closedtrades - 1)
    idx = entry_regime - 1
    if last_trade_entry_id == "Long"
        array.set(regime_pnl_long, idx, array.get(regime_pnl_long, idx) + last_trade_profit)
        if last_trade_profit > 0
            array.set(regime_win_long, idx, array.get(regime_win_long, idx) + 1)
        else
            array.set(regime_loss_long, idx, array.get(regime_loss_long, idx) + 1)
    else if last_trade_entry_id == "Short"
        array.set(regime_pnl_short, idx, array.get(regime_pnl_short, idx) + last_trade_profit)
        if last_trade_profit > 0
            array.set(regime_win_short, idx, array.get(regime_win_short, idx) + 1)
        else
            array.set(regime_loss_short, idx, array.get(regime_loss_short, idx) + 1)
    entry_regime := na

// D=====================================================Z
// 8. DRAWDOWN & CIRCUIT BREAKER==Z
// D=====================================================Z
var float max_equity = strategy.equity
if strategy.equity > max_equity
    max_equity := strategy.equity
daily_drawdown = (max_equity - strategy.equity) / max_equity
pause_trading  = daily_drawdown > max_daily_drawdown

// D=====================================================Z
// 9. ENTRY & EXIT LOGIC WITH DYNAMIC STOPS & TRAILING STOPS=Z
// D=====================================================Z
swing_low  = ta.lowest(low, 5)
swing_high = ta.highest(high, 5)
long_condition  = bull_score >= 1.0 and not pause_trading
short_condition = bear_score >= 1.0 and not pause_trading

var float trail_stop_long  = na
var float trail_stop_short = na
var float long_stop_price  = na
var float long_limit_price = na
var float short_stop_price = na
var float short_limit_price = na

if long_condition and strategy.position_size <= 0
    intended_stop = swing_low - atr_multiplier * atr_val
    stop_distance_points = close - intended_stop
    risk_per_contract = stop_distance_points * syminfo.pointvalue
    contracts = math.floor(risk_per_trade / risk_per_contract)
    contracts := contracts > 0 ? contracts : 1
    contracts := math.min(contracts, max_contracts)
    long_limit = close + stop_distance_points * 2
    strategy.entry("Long", strategy.long, qty = contracts)
    strategy.exit("Exit", from_entry = "Long", stop = intended_stop, limit = long_limit)
    long_stop_price  := intended_stop
    long_limit_price := long_limit
    trail_stop_long  := intended_stop
    entry_regime     := regime

if short_condition and strategy.position_size >= 0
    intended_stop = swing_high + atr_multiplier * atr_val
    stop_distance_points = intended_stop - close
    risk_per_contract = stop_distance_points * syminfo.pointvalue
    contracts = math.floor(risk_per_trade / risk_per_contract)
    contracts := contracts > 0 ? contracts : 1
    contracts := math.min(contracts, max_contracts)
    short_limit = close - stop_distance_points * 2
    strategy.entry("Short", strategy.short, qty = contracts)
    strategy.exit("Exit", from_entry = "Short", stop = intended_stop, limit = short_limit)
    short_stop_price  := intended_stop
    short_limit_price := short_limit
    trail_stop_short  := intended_stop
    entry_regime      := regime

if strategy.position_size > 0
    if close > long_limit_price * 0.5
        trail_stop_long := math.max(trail_stop_long, close - atr_val * atr_multiplier)
    strategy.exit("Long Trailing Stop", from_entry = "Long", stop = trail_stop_long)

if strategy.position_size < 0
    if close < short_limit_price * 0.5
        trail_stop_short := math.min(trail_stop_short, close + atr_val * atr_multiplier)
    strategy.exit("Short Trailing Stop", from_entry = "Short", stop = trail_stop_short)

if strategy.position_size == 0
    long_stop_price  := na
    long_limit_price := na
    short_stop_price := na
    short_limit_price := na

// D=====================================================Z
// 10. VISUALIZATION==Z
// D=====================================================Z
bgcolor(regime == 1 ? color.new(color.green, 85) : 
       regime == 2 ? color.new(color.orange, 85) : 
       regime == 3 ? color.new(color.red, 85) : 
       regime == 4 ? color.new(color.gray, 85) : 
       color.new(color.navy, 85))

plotshape(long_condition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, title="Long Signal")
plotshape(short_condition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, title="Short Signal")
plot(ma_fast, "Fast MA", color=color.new(color.blue, 0), linewidth=2)
plot(ma_slow, "Slow MA", color=color.new(color.red, 0), linewidth=2)
plot(strategy.position_size > 0 ? long_stop_price  : na, "Long Stop", color=color.new(color.red, 0), style=plot.style_linebr)
plot(strategy.position_size > 0 ? long_limit_price : na, "Long Target", color=color.new(color.green, 0), style=plot.style_linebr)
plot(strategy.position_size < 0 ? short_stop_price  : na, "Short Stop", color=color.new(color.red, 0), style=plot.style_linebr)
plot(strategy.position_size < 0 ? short_limit_price : na, "Short Target", color=color.new(color.green, 0), style=plot.style_linebr)

// D=====================================================Z
// 11. DASHBOARD: METRICS TABLE (Bottom-Left)=Z
// D=====================================================Z
var table dashboard = table.new(position.bottom_left, 2, 13, bgcolor=color.new(#000000, 29), border_color=color.rgb(80,80,80), border_width=1)
if barstate.islast
    table.cell(dashboard, 0, 0, "⚡(DAFE) AI Adaptive Regime™", text_color=color.rgb(96,8,118), text_size=size.small)
    modeStr = pause_trading ? "Paused" : "Active"
    table.cell(dashboard, 0, 1, "Mode:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 1, modeStr, text_color=color.white, text_size=size.small)
    trendText = trend_dir == 1 ? "Bullish" : trend_dir == -1 ? "Bearish" : "Neutral"
    table.cell(dashboard, 0, 2, "Trend:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 2, trendText, text_color=trend_dir == 1 ? color.green : trend_dir == -1 ? color.red : color.gray, text_size=size.small)
    table.cell(dashboard, 0, 3, "ATR:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 3, str.tostring(atr_val, "#.##"), text_color=color.white, text_size=size.small)
    table.cell(dashboard, 0, 4, "ATR Avg:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 4, str.tostring(atr_avg, "#.##"), text_color=color.white, text_size=size.small)
    table.cell(dashboard, 0, 5, "Volume Spike:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 5, vol_spike ? "YES" : "NO", text_color=vol_spike ? color.green : color.red, text_size=size.small)
    table.cell(dashboard, 0, 6, "RSI:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 6, str.tostring(rsi_val, "#.##"), text_color=color.white, text_size=size.small)
    rsiCondText = rsi_val < 30 ? "Oversold" : rsi_val > 70 ? "Overbought" : "Neutral"
    table.cell(dashboard, 0, 7, "RSI Cond:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 7, rsiCondText, text_color=color.white, text_size=size.small)
    table.cell(dashboard, 0, 8, "HTF RSI:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 8, str.tostring(htf_rsi, "#.##"), text_color=color.white, text_size=size.small)
    htfTrendText = htf_trend_bull ? "Bullish" : htf_trend_bear ? "Bearish" : "Neutral"
    table.cell(dashboard, 0, 9, "HTF Trend:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 9, htfTrendText, text_color=htf_trend_bull ? color.green : htf_trend_bear ? color.red : color.gray, text_size=size.small)
    lastSignal = long_condition ? "Buy" : short_condition ? "Sell" : "None"
    table.cell(dashboard, 0, 10, "Last Signal:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 10, lastSignal, text_color=long_condition ? color.green : short_condition ? color.red : color.white, text_size=size.small)
    table.cell(dashboard, 0, 11, "Regime:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 11, regime_name, text_color=color.white, text_size=size.small)
    table.cell(dashboard, 0, 12, "Bull Score:", text_color=color.white, text_size=size.small)
    table.cell(dashboard, 1, 12, str.tostring(bull_score, "#.##"), text_color=color.white, text_size=size.small)

// D=====================================================Z
// REGIME CONDITIONS
// D=====================================================Z
var table debug_table = table.new(position.top_right, 2, 5, bgcolor=color.new(#000000, 50), border_color=color.rgb(80,80,80), border_width=1)
if barstate.islast
    table.cell(debug_table, 0, 0, "Regime Conditions", text_color=color.rgb(96,8,118), text_size=size.small)
    table.cell(debug_table, 0, 1, "ADX:", text_color=color.white, text_size=size.small)
    table.cell(debug_table, 1, 1, str.tostring(adx_val, "#.##"), text_color=color.white, text_size=size.small)
    table.cell(debug_table, 0, 2, "BB Width Ratio:", text_color=color.white, text_size=size.small)
    table.cell(debug_table, 1, 2, str.tostring(bb_width / bb_width_avg, "#.##"), text_color=color.white, text_size=size.small)
    table.cell(debug_table, 0, 3, "ATR Ratio:", text_color=color.white, text_size=size.small)
    table.cell(debug_table, 1, 3, str.tostring(atr_val / atr_avg, "#.##"), text_color=color.white, text_size=size.small)
    table.cell(debug_table, 0, 4, "Range Ratio:", text_color=color.white, text_size=size.small)
    table.cell(debug_table, 1, 4, str.tostring(range_ratio, "#.##"), text_color=color.white, text_size=size.small)

// --- Bollinger Bands Visuals ---Z
p_bb_basis = plot(bb_basis, title="BB Basis", color=color.new(#ffffff, 50), linewidth=1)
p_bb_upper = plot(bb_upper, title="BB Upper", color=color.new(#4caf4f, 45), linewidth=2)
p_bb_lower = plot(bb_lower, title="BB Lower", color=color.new(#ff5252, 45), linewidth=2)
fill(p_bb_upper, p_bb_lower, color=color.new(#423645, 65))

//D=================================================================Z
// DASHBOARD: WATERMARK LOGO (Bottom-Right)
//D=================================================================Z
var table watermarkTable = table.new(position.bottom_right, 1, 1, bgcolor=color.rgb(0,0,0,80), border_color=color.rgb(0,50,137), border_width=1)
if barstate.islast
    table.cell(watermarkTable, 0, 0, "⚡ Dskyz (DAFE) AI Adaptive Regime - Pro", text_color=color.rgb(96,8,118), text_size=size.normal)

// --- ALERTS ---Z
alertcondition(long_condition, title="Long Signal Alert", message="Enhanced Strategy Long Signal")
alertcondition(short_condition, title="Short Signal Alert", message="Enhanced Strategy Short Signal")