ملٹی پیریڈ مطلب ریورژن ٹرینڈ بریک آؤٹ ٹریڈنگ سسٹم

EMA RSI ATR MACD MFI VAH VAL POC Wyckoff MEAN REVERSION TREND FOLLOWING Swing Trading
تخلیق کی تاریخ: 2025-04-28 13:37:08 آخر میں ترمیم کریں: 2025-04-28 13:41:36
کاپی: 0 کلکس کی تعداد: 367
2
پر توجہ دیں
319
پیروکار

ملٹی پیریڈ مطلب ریورژن ٹرینڈ بریک آؤٹ ٹریڈنگ سسٹم ملٹی پیریڈ مطلب ریورژن ٹرینڈ بریک آؤٹ ٹریڈنگ سسٹم

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

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

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

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

اس حکمت عملی کے بنیادی اصول چار اہم تجارتی طریقوں کے تعاون پر مبنی ہیں:

  1. وائیکوف تجزیہاس جزو میں چار اہم مراحل کی نشاندہی کی گئی ہے - جمع کرنے کا مرحلہ ، عروج کا مرحلہ ، تقسیم کا مرحلہ اور کمی کا مرحلہ۔ اسٹریٹجی نے “چھلانگ” کے انداز ((فاسٹ بریک کے بعد تیزی سے الٹ) اور “پریشر” کے انداز ((فاسٹ بریک) جیسے خاص شکلوں کا بھی پتہ لگایا۔ یہ مراحل قیمت اور حجم کے تعلقات کے ذریعہ بیان کیے گئے ہیں ، جو تاجروں کو ادارہ کے فنڈز کے بہاؤ کی پیروی کرنے میں مدد کرتے ہیں۔

  2. قیمت گرافک تجزیہ: اس جزو نے مارکیٹ کی شکل / حجم کی شکل کا ایک آسان ورژن حاصل کیا ، جس میں کنٹرول پوائنٹس (POC) ، ویلیو ایریا ہائی پوائنٹس (VAH) اور ویلیو ایریا لو پوائنٹس (VAL) کا حساب کتاب کیا گیا ہے تاکہ قیمتوں کی اہم سرگرمیوں کا دائرہ کار قائم کیا جاسکے۔ ان اہم سطحوں کی بصری نمائندگی سے ممکنہ معاونت اور مزاحمت کے علاقوں کی شناخت میں مدد ملتی ہے۔

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

  4. رجحانات کی پیروی: یہ جزو درمیانی اور طویل مدتی دشاتمک قیمتوں کی نقل و حرکت پر قبضہ کرتا ہے ، جس میں رجحان کی سمت اور طاقت کی تصدیق کے لئے متعدد متحرک اوسط ((9, 21, 50, 200 EMA) کا استعمال کیا جاتا ہے ، میکڈ تجزیہ حرکیات کی تصدیق اور رجحان کی طاقت کے لئے استعمال کیا جاتا ہے ، اور حالیہ قیمتوں کی ساخت کے تجزیے کے ذریعہ اعلی ٹائم فریم رجحانات کی مستقل مزاجی کو حاصل کیا جاتا ہے۔

یہ چاروں اجزاء ایک دوسرے کی تکمیل کرتے ہیں اور تجارتی سگنل پیدا کرنے کے لئے مل کر کام کرتے ہیں۔ نظام پیچیدہ سگنل مجموعہ کا طریقہ استعمال کرتا ہے ، جس میں حتمی تجارتی سگنل پیدا کرنے کے لئے متعدد نظاموں کی تصدیق کی ضرورت ہوتی ہے ، جس سے جعلی سگنل کا امکان کم ہوجاتا ہے۔

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

کثیر دورانیہ اوسط قیمت رجعت رجحان توڑنے والے ٹریڈنگ سسٹم میں درج ذیل نمایاں فوائد ہیں:

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

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

  3. اداروں کی مالی بہاؤ میں یکسانیت: ویکوف تجزیہ کے ذریعہ ، حکمت عملی کا مقصد اداروں کے فنڈز کے بہاؤ سے ہم آہنگ ہونا ہے ، جو طویل مدتی کامیاب تجارت کے لئے ضروری ہے۔ یہ جزو تاجروں کو بڑے فنڈز کے جمع اور تقسیم کے مراحل کی نشاندہی کرنے میں مدد کرتا ہے ، جس سے تجارت کی کامیابی کی شرح میں اضافہ ہوتا ہے۔

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

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

اسٹریٹجک رسک

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

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

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

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

  4. عملدرآمد میں تاخیر کے اثرات: حکمت عملی کی متعدد تصدیق کی درخواستوں سے خاص طور پر تیزی سے اتار چڑھاؤ والے بازاروں میں داخلے کے نقطہ کی تاخیر ہوسکتی ہے۔ اس سے کچھ رجحانات کو یاد کیا جاسکتا ہے یا اس سے کم قیمت پر مارکیٹ میں داخل ہوسکتا ہے۔

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

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

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

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

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

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

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

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

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

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

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

خلاصہ کریں۔

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

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

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

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-04-28 00:00:00
end: 2025-04-26 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Wyckoff Advanced Swing Strategy by TIAMATCRYPTO", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Main strategy settings
enableWyckoff = input.bool(true, "Enable Wyckoff")
enablePriceMap = input.bool(true, "Enable Price Map Profile")
enableMeanReversion = input.bool(true, "Enable Mean Reversion")
enableTrendFollowing = input.bool(true, "Enable Trend Following")

// TP/SL settings
useAutoTPSL = input.bool(true, "Use Auto TP/SL")
profitFactor = input.float(2.5, "Profit Factor (ATR multiple)")
stopLossFactor = input.float(1.5, "Stop Loss Factor (ATR multiple)")

// Swing Trading Parameters
minHoldingDays = input.int(3, "Minimum Holding Period (days)")
maxHoldingDays = input.int(20, "Maximum Holding Period (days)")
useWeekdayFilter = input.bool(true, "Filter Trading Days")
useTrailingStop = input.bool(true, "Use Trailing Stop")
trailingStopAtrMult = input.float(2.0, "Trailing Stop (ATR multiple)")

// Alternative Exit Rules
useExitByRSI = input.bool(true, "Exit by RSI")
exitLongRSI = input.int(70, "Exit Long when RSI")
exitShortRSI = input.int(30, "Exit Short when RSI")

// General Parameters
atrPeriod = input.int(14, "ATR Period")
rsiPeriod = input.int(14, "RSI Period")
volPeriod = input.int(20, "Volume MA Period")
emaFastPeriod = input.int(9, "EMA Fast Period")
emaSlowPeriod = input.int(21, "EMA Slow Period")
emaMediumPeriod = input.int(50, "EMA Medium Period")
emaLongPeriod = input.int(200, "EMA Long Period")

// Indicators
atr = ta.atr(atrPeriod)
rsi = ta.rsi(close, rsiPeriod)
volMA = ta.sma(volume, volPeriod)
emaFast = ta.ema(close, emaFastPeriod)
emaSlow = ta.ema(close, emaSlowPeriod)
emaMedium = ta.ema(close, emaMediumPeriod)
emaLong = ta.ema(close, emaLongPeriod)
macd = ta.ema(close, 12) - ta.ema(close, 26)
macdSignal = ta.ema(macd, 9)

// Weekday Filters (1 = Monday, 5 = Friday)
isGoodEntryDay = useWeekdayFilter ? (dayofweek != 5 and dayofweek != 1) : true  // Not on Monday and Friday
isGoodExitDay = useWeekdayFilter ? (dayofweek != 1 and dayofweek != 5) : true   // Not on Monday and Friday

// ===================== Wyckoff Method =====================
accumulationPhase = false
markupPhase = false
distributionPhase = false
markdownPhase = false
spring = false

if enableWyckoff
    // Define support and resistance
    support = ta.lowest(low, 10)
    resistance = ta.highest(high, 10)

    // Detect Spring (fake downward breakout)
    spring := low[1] < support[2] and close > support[1]

    // Detect Upthrust (fake upward breakout)
    upthrust = high[1] > resistance[2] and close < resistance[1]

    // Wyckoff Market Phases
    accumulationPhase := volume > volMA and rsi < 40 and ta.falling(high, 5) and close > open
    markupPhase := emaFast > emaSlow and emaSlow > emaMedium and volume > volMA and rsi > 50
    distributionPhase := volume > volMA and rsi > 60 and ta.rising(low, 5) and close < open
    markdownPhase := emaFast < emaSlow and emaSlow < emaMedium and volume > volMA and rsi < 50

// ===================== Price Map Profile =====================
lookbackPeriod = 30
highestPrice = ta.highest(high, lookbackPeriod)
lowestPrice = ta.lowest(low, lookbackPeriod)

valueAreaHigh = highestPrice - (highestPrice - lowestPrice) * 0.15
valueAreaLow = lowestPrice + (highestPrice - lowestPrice) * 0.15
pointOfControl = (valueAreaHigh + valueAreaLow) / 2

// Plot Price Map Profile
plot(enablePriceMap ? pointOfControl : na, "POC", color.purple, 1)
plot(enablePriceMap ? valueAreaHigh : na, "VAH", color.blue, 1)
plot(enablePriceMap ? valueAreaLow : na, "VAL", color.blue, 1)

// ===================== Mean Reversion =====================
meanReversionBuy = false
meanReversionSell = false

if enableMeanReversion
    // Optimized Bollinger Bands for swing trading
    basisBB = ta.sma(close, 20)
    devBB = ta.stdev(close, 20) * 2
    upperBB = basisBB + devBB
    lowerBB = basisBB - devBB

    // Enhanced Mean Reversion Conditions
    lowerBBHit = ta.crossunder(close, lowerBB) or (close < lowerBB and close[1] < lowerBB)
    upperBBHit = ta.crossover(close, upperBB) or (close > upperBB and close[1] > upperBB)

    // RSI divergence for better timing
    rsiLow = ta.lowest(rsi, 5)
    priceLow = ta.lowest(low, 5)
    rsiHigh = ta.highest(rsi, 5)
    priceHigh = ta.highest(high, 5)

    bullishDivergence = low < priceLow and rsi > rsiLow
    bearishDivergence = high > priceHigh and rsi < rsiHigh

    // Mean Reversion Swing Trading Signals
    meanReversionBuy := lowerBBHit and rsi < 30 and bullishDivergence
    meanReversionSell := upperBBHit and rsi > 70 and bearishDivergence

// ===================== Trend Following =====================
trendFollowingBuy = false
trendFollowingSell = false

if enableTrendFollowing
    // Strong Trend Conditions
    strongUptrend = emaFast > emaSlow and emaSlow > emaMedium and emaMedium > emaLong
    strongDowntrend = emaFast < emaSlow and emaSlow < emaMedium and emaMedium < emaLong

    // Simulated multi-day trend confirmation
    recentHigherHigh = high > ta.highest(high[1], 5)
    recentLowerLow = low < ta.lowest(low[1], 5)

    // MACD Filters
    macdRising = macd > macd[1] and macd[1] > macd[2]
    macdFalling = macd < macd[1] and macd[1] < macd[2]

    // Stronger Filters for Swing Trading
    trendFollowingBuy := strongUptrend and macd > macdSignal and macdRising and recentHigherHigh
    trendFollowingSell := strongDowntrend and macd < macdSignal and macdFalling and recentLowerLow

// ===================== Combine Signals =====================
wyckoffBuy = enableWyckoff and spring and accumulationPhase
wyckoffSell = enableWyckoff and distributionPhase
mrBuy = enableMeanReversion and meanReversionBuy
mrSell = enableMeanReversion and meanReversionSell
tfBuy = enableTrendFollowing and trendFollowingBuy
tfSell = enableTrendFollowing and trendFollowingSell

// Combine all strategies
buySignal = (wyckoffBuy or mrBuy or tfBuy) and isGoodEntryDay
sellSignal = (wyckoffSell or mrSell or tfSell) and isGoodEntryDay

// Add Candle Confirmation for better entries - full candle above/below EMA
buyConfirmation = close > open and close > emaMedium
sellConfirmation = close < open and close < emaMedium

// Track holding days
var int daysInTrade = 0
daysInTrade := strategy.position_size != 0 ? daysInTrade + 1 : 0

// Time-Based Exit
exitLongByTime = strategy.position_size > 0 and (daysInTrade >= maxHoldingDays or (daysInTrade >= minHoldingDays and isGoodExitDay))
exitShortByTime = strategy.position_size < 0 and (daysInTrade >= maxHoldingDays or (daysInTrade >= minHoldingDays and isGoodExitDay))

// Exit by RSI
exitLongByRSI = useExitByRSI and strategy.position_size > 0 and rsi >= exitLongRSI and daysInTrade >= minHoldingDays
exitShortByRSI = useExitByRSI and strategy.position_size < 0 and rsi <= exitShortRSI and daysInTrade >= minHoldingDays

// Trading logic - Swing Trading adjusted with TP/SL optional
if buySignal and buyConfirmation and strategy.position_size <= 0
    strategy.cancel_all()
    strategy.entry("Long", strategy.long)

    if useAutoTPSL
        strategy.exit("TP/SL Long", "Long", profit = atr * profitFactor, loss = atr * stopLossFactor)

if sellSignal and sellConfirmation and strategy.position_size >= 0
    strategy.cancel_all()
    strategy.entry("Short", strategy.short)

    if useAutoTPSL
        strategy.exit("TP/SL Short", "Short", profit = atr * profitFactor, loss = atr * stopLossFactor)

// Trailing Stop if enabled and no fixed TP/SL
if useTrailingStop and not useAutoTPSL and strategy.position_size != 0
    longTrailPrice = high - atr * trailingStopAtrMult
    shortTrailPrice = low + atr * trailingStopAtrMult
    if strategy.position_size > 0
        strategy.exit("Trailing Stop Long", "Long", trail_price=longTrailPrice)
    else if strategy.position_size < 0
        strategy.exit("Trailing Stop Short", "Short", trail_price=shortTrailPrice)