تجارتی حکمت عملی کے بعد ملٹی انڈیکیٹر انٹیگریٹڈ ٹرینڈ

EMA RSI ADX OBV ATR 趋势跟踪 突破形态 背离 风险管理 交易时段 量价关系
تخلیق کی تاریخ: 2025-04-10 15:37:00 آخر میں ترمیم کریں: 2025-04-10 15:37:00
کاپی: 0 کلکس کی تعداد: 326
2
پر توجہ دیں
319
پیروکار

تجارتی حکمت عملی کے بعد ملٹی انڈیکیٹر انٹیگریٹڈ ٹرینڈ تجارتی حکمت عملی کے بعد ملٹی انڈیکیٹر انٹیگریٹڈ ٹرینڈ

جائزہ

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

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

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

  1. رجحانات کی تصدیق کے نظام: تیزی سے EMA ((50 سائیکل) اور سست EMA ((200 سائیکل) کے کراس اور پوزیشن تعلقات کا استعمال کرتے ہوئے مارکیٹ کے اہم رجحان کی سمت کا تعین کریں۔ جب تیزی سے EMA سست EMA کے اوپر ہوتا ہے تو ، اوپر کی طرف رجحان کی تصدیق ہوتی ہے۔ اس کے برعکس ، نیچے کی طرف رجحان کی تصدیق ہوتی ہے۔

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

  3. ملٹی لیول تصدیق میکانزماس کے علاوہ ، اس نے “آئی اسٹرینج” نامی ایک سمارٹ سگنلنگ سسٹم تیار کیا ہے ، جس میں پانچ اہم مارکیٹ عوامل کا مجموعی طور پر جائزہ لیا گیا ہے۔

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

  5. ترسیل کی تصدیققیمتوں میں تبدیلی کی حمایت کرنے کے لئے مارکیٹ میں کافی شرکت کو یقینی بنانے کے لئے 20 سیکنڈ کے اوسط سے 1.5 گنا زیادہ لین دین کی ضرورت ہے۔

  6. شناخت سے انحراف: قیمتوں میں RSI اور ADX کے مابین انحراف کا پتہ لگانا ، جو رجحان کے ممکنہ الٹ ہونے کا ابتدائی انتباہی اشارہ ہے۔

  7. ہنگامہ خیز مارکیٹ فلٹرنگ: ADX اور RSI کے ساتھ قیمتوں میں اتار چڑھاو کی حد کا مجموعہ تجزیہ کرکے ، زلزلے کی مارکیٹوں کی نشاندہی کریں اور ان سے بچیں۔

  8. ٹرانزیکشن سیشن کی اصلاح: مخصوص ٹریڈنگ کے اوقات ((UTC + 7 ٹائم زون میں 14: 00-23: 00) کے اندر تجارت پر پابندی ، اہم مارکیٹ کے فعال اوقات کے مطابق ، سگنل کے معیار کو بہتر بنائیں۔

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

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

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

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

  3. اونچائی فلٹریشن سسٹم: متعدد شرائط کے ذریعے فلٹرنگ ((رجحان کی سمت ، طاقت کی تصدیق ، ٹرانزیکشن کی مقدار کی توثیق ، K لائن کی شکل ، ٹرانزیکشن کا وقت وغیرہ) ، بہت سارے کم معیار کے سگنل کو مؤثر طریقے سے فلٹر کرتا ہے ، جس سے تجارتی سگنل کی وشوسنییتا میں نمایاں اضافہ ہوتا ہے۔

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

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

  6. شکل اور اشارے کا مجموعہ: روایتی تکنیکی تجزیہ میں K لائن کی شکلوں کو ((سگھلنا ، کراس اسٹار ، سوئنگ لائن) کو جدید تکنیکی اشارے کے ساتھ جوڑیں ، ان کی لمبائی لیں ، اور ایک دوسرے کی تصدیق کریں۔

  7. انتباہی نظام سے انحرافاس حکمت عملی کی پیش گوئی کو RSI اور ADX کے مابین قیمتوں کے انحراف کا پتہ لگانے اور ممکنہ رجحان کی کمزوری یا آنے والے الٹ کے اشارے کی پیشگی نشاندہی کرکے بڑھا دیا گیا ہے۔

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

اسٹریٹجک رسک

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

خلاصہ کریں۔

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

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

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

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

//@version=5
strategy("TUONG HA GBP M15 Trend Strategy NHIEU CHI BAO TICH HOP", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// === INPUTS ===
emaFastLen = input.int(50, "EMA Fast", minval=10, maxval=200, step=5)
emaSlowLen = input.int(200, "EMA Slow", minval=50, maxval=500, step=10)
rsiLen = input.int(14, "RSI Length")
adsLen = input.int(14, "ADX Length")
adxThreshold = input.int(20, "ADX Threshold")
atrLen = input.int(14, "ATR Length")
rrRatio = input.float(2.0, "Risk-Reward Ratio", step=0.1)
trailOffset = input.float(1.5, "Trailing Stop ATR Multiplier", step=0.1)
volumeMultiplier = input.float(1.5, "Volume Multiplier Threshold", step=0.1)

// === SESSIONS (London + New York in VN Time UTC+7) ===
startHour = 14
endHour = 23
inSession = (hour >= startHour and hour <= endHour)

// === INDICATORS ===
emaFast = ta.ema(close, emaFastLen)
emaSlow = ta.ema(close, emaSlowLen)
rsi = ta.rsi(close, rsiLen)
at = ta.atr(atrLen)

// === CUSTOM ADX FUNCTION ===
upMove = high - high[1]
downMove = low[1] - low
plusDM = (upMove > downMove and upMove > 0) ? upMove : 0
minusDM = (downMove > upMove and downMove > 0) ? downMove : 0
trur = ta.tr(true)
plusDI = 100 * ta.rma(plusDM, adsLen) / ta.rma(trur, adsLen)
minusDI = 100 * ta.rma(minusDM, adsLen) / ta.rma(trur, adsLen)
adx = 100 * ta.rma(math.abs(plusDI - minusDI) / (plusDI + minusDI), adsLen)

// === OBV TREND ===
obv = ta.cum(close > close[1] ? volume : close < close[1] ? -volume : 0)
obvTrend = obv > obv[1]

// === VOLUME FILTER ===
avgVol = ta.sma(volume, 20)
highVol = volume > avgVol * volumeMultiplier

// === SIDEWAY DETECTION ===
rng = ta.highest(high, 20) - ta.lowest(low, 20)
rngCloseRatio = close != 0 ? (rng / close) : na
sideway = na(rngCloseRatio) ? false : (rngCloseRatio < 0.003 and adx < adxThreshold and (rsi > 45 and rsi < 55))

// === ENGULFING ===
bullishEngulf = close[1] < open[1] and close > open and close > open[1] and open < close[1]
bearishEngulf = close[1] > open[1] and close < open and close < open[1] and open > close[1]

// === DOJI AND PIN BAR ===
doji = math.abs(open - close) <= (high - low) * 0.1
pinBar = (high - math.max(open, close)) > 2 * math.abs(open - close) and (math.min(open, close) - low) < (high - low) * 0.25

// === AI SIGNALS ENHANCED ===
aiStrength = 0
aiStrength := aiStrength + (emaFast > emaSlow ? 1 : 0)
aiStrength := aiStrength + (obvTrend ? 1 : 0)
aiStrength := aiStrength + (adx > adxThreshold ? 1 : 0)
aiStrength := aiStrength + (bullishEngulf ? 1 : 0)
aiStrength := aiStrength + (ta.crossover(ta.ema(close, 5), ta.ema(close, 21)) ? 1 : 0)
aiSignalLong = aiStrength >= 4

aioStrengthS = 0
aioStrengthS := aioStrengthS + (emaFast < emaSlow ? 1 : 0)
aioStrengthS := aioStrengthS + (not obvTrend ? 1 : 0)
aioStrengthS := aioStrengthS + (adx > adxThreshold ? 1 : 0)
aioStrengthS := aioStrengthS + (bearishEngulf ? 1 : 0)
aioStrengthS := aioStrengthS + (ta.crossunder(ta.ema(close, 5), ta.ema(close, 21)) ? 1 : 0)
aiSignalShort = aioStrengthS >= 4

// === HIGHS AND LOWS DETECTION ===
highestHigh = ta.highest(high, 50)
lowestLow = ta.lowest(low, 50)
plot(highestHigh, title="Highest High", color=color.fuchsia, linewidth=1, style=plot.style_line)
plot(lowestLow, title="Lowest Low", color=color.teal, linewidth=1, style=plot.style_line)

// === RSI DIVERGENCE ===
priceHigherHigh = high > high[1] and high[1] > high[2]
rsiLowerHigh = rsi < rsi[1] and rsi[1] > rsi[2]
shortDiv = priceHigherHigh and rsiLowerHigh

priceLowerLow = low < low[1] and low[1] < low[2]
rsiHigherLow = rsi > rsi[1] and rsi[1] < rsi[2]
longDiv = priceLowerLow and rsiHigherLow

// === ADX DIVERGENCE ===
priceHigherHighADX = high > high[1] and high[1] > high[2]
adxLowerHigh = adx < adx[1] and adx[1] > adx[2]
adxBearishDiv = priceHigherHighADX and adxLowerHigh

priceLowerLowADX = low < low[1] and low[1] < low[2]
adxHigherLow = adx > adx[1] and adx[1] < adx[2]
adxBullishDiv = priceLowerLowADX and adxHigherLow

// === CONDITIONS ===
trendUp = emaFast > emaSlow
trendDn = emaFast < emaSlow

longCond = trendUp and rsi > 50 and obvTrend and adx > adxThreshold and bullishEngulf and aiSignalLong and inSession and not sideway and highVol and (pinBar or doji or longDiv or adxBullishDiv)
shortCond = trendDn and rsi < 50 and not obvTrend and adx > adxThreshold and bearishEngulf and aiSignalShort and inSession and not sideway and highVol and (pinBar or doji or shortDiv or adxBearishDiv)

// === ENTRY + SL/TP + TRAILING ===
longSL = close - at
longTP = close + at * rrRatio
shortSL = close + at
shortTP = close - at * rrRatio

plotshape(longCond, location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, title="Buy Signal")
plotshape(shortCond, location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, title="Sell Signal")

if (longCond)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long TP/SL", from_entry="Long", stop=longSL, limit=longTP, trail_points=at * trailOffset, trail_offset=at * trailOffset)
    label.new(bar_index, high, "Buy", style=label.style_label_up, color=color.green, textcolor=color.white, size=size.normal)
    alert("Long Signal!", alert.freq_once_per_bar)

if (shortCond)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short TP/SL", from_entry="Short", stop=shortSL, limit=shortTP, trail_points=at * trailOffset, trail_offset=at * trailOffset)
    label.new(bar_index, low, "Sell", style=label.style_label_down, color=color.red, textcolor=color.white, size=size.normal)
    alert("Short Signal!", alert.freq_once_per_bar)

// === PLOTS ===
plot(emaFast, color=color.orange, title="EMA Fast")
plot(emaSlow, color=color.blue, title="EMA Slow")
bgcolor(sideway ? color.new(color.gray, 90) : na)

// === COLORING BARS ===
barcolor(longCond ? color.new(color.green, 0) : shortCond ? color.new(color.red, 0) : na)