ڈائنامک ٹرینڈ لائن بریک تھرو مقداری تجارتی حکمت عملی: کثیر سطحی منافع کا ہدف اور وقت کی اصلاح کا ماڈل

VWAP 趋势线 突破交易 支撑位 阻力位 多层次获利 时间过滤器 量化交易
تخلیق کی تاریخ: 2025-06-23 11:31:05 آخر میں ترمیم کریں: 2025-06-23 11:31:05
کاپی: 7 کلکس کی تعداد: 318
2
پر توجہ دیں
319
پیروکار

ڈائنامک ٹرینڈ لائن بریک تھرو مقداری تجارتی حکمت عملی: کثیر سطحی منافع کا ہدف اور وقت کی اصلاح کا ماڈل ڈائنامک ٹرینڈ لائن بریک تھرو مقداری تجارتی حکمت عملی: کثیر سطحی منافع کا ہدف اور وقت کی اصلاح کا ماڈل

جائزہ

متحرک ٹرینڈ لائن کو توڑنے کی مقدار کی تجارت کی حکمت عملی ایک دن کے تاجروں کے لئے ڈیزائن کی گئی ایک ٹرینڈ لائن کو توڑنے کی حکمت عملی ہے جو معاونت اور مزاحمت کی سطح پر مبنی ہے۔ حکمت عملی متحرک طور پر مارکیٹ میں اہم معاونت اور مزاحمت کی سطح کی شناخت کرتی ہے ، اور جب قیمت ان اہم مقامات کو توڑتی ہے تو اس کی حرکیات کا استعمال کرتے ہوئے تجارت کرتی ہے۔ حکمت عملی متحرک ٹرینڈ لائن میپنگ ٹکنالوجی کو اپناتی ہے ، جس میں تصدیق شدہ منطق اور ٹائم فلٹرنگ کا امتزاج ہوتا ہے ، تاکہ تجارتی سگنل کے معیار اور وشوسنییتا کو یقینی بنایا جاسکے۔ خاص طور پر ، حکمت عملی کو ایک مخصوص تجارتی وقت کے اندر اندر انجام دیا جاتا ہے (امریکی مشرقی وقت 9:30 سے 13:00 بجے تک) تاکہ تجارتی کارکردگی کو بہتر بنایا جاسکے اور وقت کی کمی کے اثرات کو کم کیا جاسکے۔

اس حکمت عملی کے بنیادی افعال میں شامل ہیں: متحرک حمایت اور مزاحمت کی رجحان لائن کی شناخت ، بریک کی تصدیق کی منطق ، حقیقی وقت کے چارٹ مارکنگ ، کثیر سطح کے منافع کے اہداف ((0.75R ، 1.5R اور 3.0R ضرب) ، اور وقت پر مبنی خود کار طریقے سے باہر نکلنے کا طریقہ ((120 کالم چارٹ کے بعد ، تقریبا 2 گھنٹے) ۔ مجموعی طور پر ڈیزائن کا تصور یہ ہے کہ اعلی امکانات کے ساتھ تجارت کے مواقع کی نشاندہی کی جائے ، جبکہ سخت خطرے کے انتظام کے اقدامات کو نافذ کیا جائے۔

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

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

  1. حمایت اور مزاحمت کی شناخت: بلندیوں اور نچلی سطحوں کے محور ((pivot) فنکشن کا استعمال کرتے ہوئے مارکیٹ میں اہم موڑ کی شناخت کریں۔ لمبائی پیرامیٹرز ((length = 9) کی ترتیب کے ذریعہ ، حکمت عملی نسبتا important اہم معاونت اور مزاحمت کی شناخت کرنے کے قابل ہے۔

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

  3. بریکنگ تصدیقحکمت عملی نہ صرف قیمتوں کے سادہ کراسنگ پر انحصار کرتی ہے بلکہ اس میں تصدیق کی منطق بھی شامل ہے (confirmBars = 2) ، جس میں قیمتوں کو توڑنے کے بعد کچھ وقت کے لئے توڑنے کی سطح سے اوپر رہنے کی ضرورت ہوتی ہے (بڑھتے ہوئے توڑنے کے لئے) یا نیچے (بڑھتے ہوئے توڑنے کے لئے) ، جس سے جعلی توڑنے کا خطرہ کم ہوجاتا ہے۔

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

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

  6. کثیر جہتی منافع بخش حکمت عملی: سیڑھیوں پر مبنی منافع کے اہداف کا استعمال کرتے ہوئے ، 0.75R ، 1.5R اور 3.0R کے خطرے سے متعلق منافع کے تناسب کی پوزیشنوں پر منافع قائم کیا گیا ہے ، جس میں 30٪ ، 50٪ اور 100٪ پوزیشنوں کو صاف کیا گیا ہے ، اس طریقہ کار سے جب رجحان جاری رہتا ہے تو کچھ منافع میں اضافہ ہوتا رہتا ہے۔

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

  8. ٹائم آؤٹ میکانزماگر تجارت 120 کالم (تقریبا 2 گھنٹے) تک جاری رہتی ہے تو ، حکمت عملی خود بخود صفائی کرتی ہے ، جس سے طویل عرصے تک پوزیشن رکھنے والے کو وقت کی کمی کا خطرہ لاحق ہوتا ہے۔

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

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

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

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

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

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

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

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

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

  8. VWAP حوالہ جاتاس حکمت عملی میں ٹریڈنگ کے فیصلوں کے لئے زیادہ سیاق و سباق اور تصدیق کے عوامل فراہم کرنے کے لئے اضافی حوالہ اشارے کے طور پر حجم سے متعلق وزن کی اوسط قیمت (VWAP) کو شامل کیا گیا ہے۔

اسٹریٹجک رسک

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

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

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

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

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

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

  6. کثیر سطح کے فوائد کا مقررہ تناسب: مقررہ منافع کے ضارب ((0.75R، 1.5R، 3.0R) تمام مارکیٹ کے حالات پر لاگو نہیں ہوسکتے ہیں۔ ان سطحوں کو اتار چڑھاؤ یا اے ٹی آر کی حرکیات کے مطابق ایڈجسٹ کرنے پر غور کیا جاسکتا ہے۔

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

  8. وقت سے باہر نکلنا بہت جلد ہو سکتا ہے: فکسڈ 120 کالم کے باہر نکلنے کا طریقہ کار کچھ مضبوط رجحانات میں قبل از وقت صفائی کا سبب بن سکتا ہے۔ باہر نکلنے کے وقت کو رجحان کی طاقت کے اشارے کی متحرک ایڈجسٹمنٹ کے ساتھ مل کر غور کیا جاسکتا ہے۔

اصلاح کی سمت

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

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

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

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

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

  5. ریورس ٹیسٹ منطق: مارکیٹ میں ریورس ٹیسٹنگ میکانزم کا اضافہ ، جس میں تیزی سے قیمتوں میں تیزی سے قیمتوں میں تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے تیزی سے بڑھتی ہوئی.

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

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

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

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

خلاصہ کریں۔

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

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

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2025-06-15 00:00:00
end: 2025-06-22 00:00:00
period: 4m
basePeriod: 4m
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/


//@version=5
strategy("R&D v3 Fixed", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// === Settings ===
length = 9
confirmBars = 2
riskAmount = 0.7

// === Support & Resistance Trendlines ===
swingHigh = ta.pivothigh(high, length, length)
swingLow = ta.pivotlow(low, length, length)

var float resLine = na
var float supLine = na

if not na(swingHigh)
    resLine := swingHigh
if not na(swingLow)
    supLine := swingLow

plot(not na(resLine) ? resLine : na, color=color.red, linewidth=2, title="Resistance")
plot(not na(supLine) ? supLine : na, color=color.blue, linewidth=2, title="Support")

// === VWAP ===
vwap = ta.vwap
plot(vwap, color=color.orange,title="vwap")

// === Time Filter (9:30am to 1:00pm EST) ===
startTime = timestamp("America/New_York", year, month, dayofmonth, 9, 30)
endTime   = timestamp("America/New_York", year, month, dayofmonth, 13, 0)
inSession = time >= startTime and time <= endTime
bgcolor(inSession ? color.new(color.gray, 90) : na)

// === Breakout Conditions ===
breakAbove = not na(resLine) and ta.crossover(close, resLine)
breakBelow = not na(supLine) and ta.crossunder(close, supLine)

confirmUp = breakAbove and ta.barssince(breakAbove) < confirmBars and close > resLine
confirmDown = breakBelow and ta.barssince(breakBelow) < confirmBars and close < supLine

// === One Trade at a Time
var bool inTrade = false
if strategy.position_size == 0
    inTrade := false
if strategy.position_size != 0
    inTrade := true

// === Entry Logic ===
if confirmUp and inSession and not inTrade
    strategy.entry("Breakout Long", strategy.long)

if confirmDown and inSession and not inTrade
    strategy.entry("Breakout Short", strategy.short)

// === Entry Bar Tracking for Time Exit ===
var int tradeStartBar = na
if strategy.position_size == 0
    tradeStartBar := na
if strategy.position_size != 0 and na(tradeStartBar)
    tradeStartBar := bar_index

exitAfter120 = not na(tradeStartBar) and (bar_index - tradeStartBar >= 120)

// === Stop Loss and Take Profit Logic ===
if strategy.position_size > 0
    entryPrice = strategy.position_avg_price
    stopPrice = supLine  // Corrected: Stop at support for long
    strategy.exit("TP1", from_entry="Breakout Long", qty_percent=30, limit=entryPrice + riskAmount * 0.75)
    strategy.exit("TP2", from_entry="Breakout Long", qty_percent=50, limit=entryPrice + riskAmount * 1.5)
    strategy.exit("TP3", from_entry="Breakout Long", qty_percent=100, limit=entryPrice + riskAmount * 3.0)
    strategy.exit("Stop", from_entry="Breakout Long", stop=stopPrice, qty_percent=100)
    if exitAfter120
        strategy.close("Breakout Long", comment="Time Exit Long")

if strategy.position_size < 0
    entryPrice = strategy.position_avg_price
    stopPrice = resLine  // Corrected: Stop at resistance for short
    strategy.exit("TP1", from_entry="Breakout Short", qty_percent=30, limit=entryPrice - riskAmount * 0.75)
    strategy.exit("TP2", from_entry="Breakout Short", qty_percent=50, limit=entryPrice - riskAmount * 1.5)
    strategy.exit("TP3", from_entry="Breakout Short", qty_percent=100, limit=entryPrice - riskAmount * 3.0)
    strategy.exit("Stop", from_entry="Breakout Short", stop=stopPrice, qty_percent=100)
    if exitAfter120
        strategy.close("Breakout Short", comment="Time Exit Short")

// === Entry Labels ===
showLongEntry = confirmUp and strategy.position_size == 0 and inSession
showShortEntry = confirmDown and strategy.position_size == 0 and inSession

plotshape(showLongEntry, title="Long Entry", location=location.belowbar, color=color.green, style=shape.labelup, text="🟢", size=size.small)
plotshape(showShortEntry, title="Short Entry", location=location.abovebar, color=color.red, style=shape.labeldown, text="🔴", size=size.small)