
متحرک جھکاؤ ڈبل چلتی اوسط تنگ بینڈ توڑنے کی مقدار کی تجارت کی حکمت عملی ایک اعلی درجے کی تجارتی نظام ہے جو اولیور ویلیز کے اصولوں پر مبنی ہے ، جس میں تکنیکی تجزیہ اور متحرک تجارت کے بنیادی عناصر شامل ہیں۔ یہ حکمت عملی بنیادی طور پر قلیل مدتی (20 دور) اور طویل مدتی (200 دور) سادہ چلتی اوسط (ایس ایم اے) کے مابین تعلقات کا استعمال کرتی ہے ، جس میں قیمت کی حرکیات ، اتار چڑھاؤ اور زوال کی شکل شامل ہوتی ہے ، جس میں تنگ بینڈ کے علاقوں میں اعلی امکانات کے ساتھ توڑنے والے تجارتی مواقع کی تلاش کی جاتی ہے۔ اس حکمت عملی کی بنیادی خصوصیت یہ ہے کہ اس تنگ بینڈ کے علاقوں میں جہاں منتقل اوسط قریب سے وابستہ ہے ، اس میں مضبوط سمت کے ساتھ “عظیم ستون” اور رنگین سگنل کی نشاندہی کی جاتی ہے ، جبکہ اس میں پہلے سے طے شدہ خطرے سے فائدہ اٹھانے والے منافع کی شرح کو روکنے اور روکنے کی سطح کا استعمال کیا جاتا ہے۔
اس حکمت عملی کا بنیادی اصول مندرجہ ذیل اہم عوامل پر مبنی ہے:
ڈبل منتقل اوسط نظامحکمت عملی: تجارتی فریم ورک بنانے کے لئے 20 پیریڈ ایس ایم اے اور 200 پیریڈ ایس ایم اے کا استعمال کریں۔ نظام ممکنہ تجارتی سگنل کی تلاش کرتا ہے جب ان دونوں اوسط لائنوں کا فاصلہ نسبتا small چھوٹا ہوتا ہے ((تنگ بینڈ کی حالت ، فرق 1.5٪ سے کم ہے) ۔
اوسط لکیری اسکیلپنگ کی تصدیقحکمت عملی: مارکیٹ میں کافی حرکیات کو یقینی بنانے کے لئے 20 سائیکل SMA کے زاویہ کا حساب لگانے کے ذریعے ((انٹرسٹریکٹو فنکشن کا استعمال کرتے ہوئے حساب کتاب کریں) ، اور صرف اس وقت داخلہ پر غور کریں جب زاویہ 30 ڈگری سے زیادہ ہو۔
انٹری سگنل کی قسم:
رسک مینجمنٹ فریم ورک:
مارکیٹ کی حالت کا فیصلہحکمت عملی: مارکیٹ کی حالت کا اندازہ لگانے کے لئے دو مساوی لائنوں کے درمیان نسبتا فاصلے کا حساب لگائیں:
کثیر سر داخلے کی شرائط: تنگ بینڈ کی حالت + موثر سلپ + ایس ایم اے 20 سے زیادہ اختتامی قیمت + ایس ایم اے 20 ایس ایم اے 200 سے زیادہ + ہاتھی دانت کی شکل۔ خالی سر داخلہ کی شرائط کی ضرورت ہے: تنگ بینڈ کی حالت + مؤثر سلپٹی + ایس ایم اے 20 سے کم بند ہونے کی قیمت + ایس ایم اے 20 ایس ایم اے 200 سے کم + ہاتھی ستون کی شکل۔
کوڈ کے گہرے تجزیے سے پتہ چلتا ہے کہ اس حکمت عملی کے درج ذیل اہم فوائد ہیں:
ایک سے زیادہ توثیق کا طریقہ کاراس حکمت عملی میں متعدد جہتوں کی تصدیق کے عوامل شامل ہیں ، جیسے مساوی لکیری تعلقات ، مساوی لکیری سلائیڈ ، قیمت کی پوزیشن اور خاص گرنے والی شکلیں ، جو ناقص معیار کے سگنل کو مؤثر طریقے سے فلٹر کرتی ہیں ، اور تجارت کے معیار کو بہتر بناتی ہیں۔
مارکیٹ کے حالات کو اپنانےاس حکمت عملی کے ذریعہ ، مارکیٹ کے بہترین حالات میں مواقع کی تلاش کی جاسکتی ہے ، اور پہلے سے ہی وسیع تر رجحانات میں اعلی اور کم کا تعاقب کرنے سے گریز کیا جاسکتا ہے۔
متحرک خطرے کے انتظام: اے ٹی آر کو اتار چڑھاؤ کی پیمائش کے آلے کے طور پر استعمال کریں ، اس بات کو یقینی بنائیں کہ اسٹاپ نقصان اور منافع کے اہداف کو موجودہ مارکیٹ میں اتار چڑھاؤ کی متحرکات کے مطابق ایڈجسٹ کیا جاسکے ، نہ کہ مقررہ پوائنٹس کا استعمال کریں۔
درجہ بندی کی حکمت عملیاس حکمت عملی کے دو مرحلے ہیں: منافع کا کچھ حصہ اور منافع کا حتمی حصہ۔ اس سے منافع کا کچھ حصہ فائدہ مند حالات میں لاک کرنے کی ضمانت ملتی ہے ، اور یہ کہ تمام رجحانات کو جلد ہی چھوڑ کر کوئی بڑا رجحان ضائع نہیں ہوتا ہے۔
اسمارٹ بیعانہ نظام: رنگین تبدیلی کے اشارے کے ذریعے پوزیشنوں کو بڑھانے کے مواقع فراہم کریں ، جس سے ایک ہی رجحان میں زیادہ سے زیادہ دو پوزیشنوں میں اضافہ کیا جاسکے ، سرمایہ کے استعمال کی کارکردگی کو بہتر بنایا جاسکے۔
موبائل سٹاپ نقصان تحفظجب قیمت پہلے منافع بخش ہدف تک پہنچ جاتی ہے تو ، اسٹاپ نقصان کو خود بخود نقصان کے توازن کی طرف منتقل کیا جاتا ہے ، “صفر خطرہ” کی تجارت کو یقینی بناتا ہے ، اور اس سے حاصل ہونے والے منافع کی حفاظت ہوتی ہے۔
بصری معاون: حکمت عملی واضح بصری اشارے اور ڈیش بورڈ فراہم کرتی ہے ، جس سے تاجروں کو بصری طور پر سگنل اور مارکیٹ کی حالت کی شناخت کرنے میں مدد ملتی ہے ، جس سے فیصلہ سازی کا عمل آسان ہوجاتا ہے۔
قیمتوں کے رویے اور تکنیکی اشارے کا مجموعہاولیور ویلیز کی قیمتوں کے رویے کے فلسفے کو روایتی تکنیکی اشارے کے ساتھ جوڑ کر ایک زیادہ مستحکم تجارتی نظام تیار کیا گیا ہے۔
اس حکمت عملی کے معقول ڈیزائن کے باوجود ، مندرجہ ذیل ممکنہ خطرات اور چیلنجز موجود ہیں:
پیرامیٹر کی حساسیت: حکمت عملی کی کارکردگی کا انحصار بڑے پیمانے پر اہم پیرامیٹرز کی ترتیب پر ہوتا ہے جیسے ایس ایم اے کا دورانیہ ، اے ٹی آر کی لمبائی اور رسک ریٹرن ریٹ۔ مختلف مارکیٹوں اور ٹائم فریموں میں مختلف پیرامیٹرز کے مختلف مجموعے کی ضرورت ہوسکتی ہے ، جس میں کافی حد تک تاریخی بازیافت اور اصلاح کی ضرورت ہوتی ہے۔
جعلی دراندازی کا خطرہ: تنگ بینڈ والے علاقوں میں ہونے والی بریگزٹ کبھی کبھی فرضی بریگزٹ ہوتی ہیں ، خاص طور پر کم اتار چڑھاؤ والے بازار کے ماحول میں۔ اگرچہ حکمت عملی میں ہاتھی کے ستون کا استعمال فرضی بریگزٹ کو کم کرنے کی ضرورت ہے ، لیکن اس سے مکمل طور پر گریز نہیں کیا جاسکتا ہے۔
سلائڈ پوائنٹس اور عملدرآمد کا خطرہ: ریئل اسٹیٹ ٹریڈنگ میں ، خاص طور پر جب زیادہ اتار چڑھاؤ ہوتا ہے تو ، اس کے نتیجے میں اصل داخلے کی قیمت مثالی قیمت سے متضاد ہوسکتی ہے ، جس سے مجموعی طور پر رسک ریٹرن ڈھانچے پر اثر پڑتا ہے۔
فنڈ مینجمنٹ چیلنج: 10٪ فنڈز کا استعمال کرتے ہوئے اور دو بار جمع کرنے کی اجازت دی گئی ہے ، جو لگاتار نقصانات یا مارکیٹ میں شدید اتار چڑھاؤ کی صورت میں زیادہ خطرہ لاحق ہوسکتا ہے۔
اوسط سے زیادہ انحصاراسٹریٹجی بنیادی طور پر ایس ایم اے کے ذریعہ رجحان کی سمت پر انحصار کرتی ہے ، لیکن وقفے وقفے سے اتار چڑھاؤ والی مارکیٹوں میں ، اوسط لائنیں اکثر کراس ہوسکتی ہیں ، جس سے بہت زیادہ غلط سگنل پیدا ہوتے ہیں۔
مارکیٹ کے فلٹر کا فقدانحکمت عملی کو مختلف میکرو مارکیٹ کے حالات (جیسے اعلی اتار چڑھاؤ یا کم اتار چڑھاؤ ، بیل یا ریچھ کا بازار) کے لئے ایڈجسٹ نہیں کیا گیا ہے ، جو مارکیٹ کے کچھ مراحل میں خراب کارکردگی کا مظاہرہ کرسکتی ہے۔
فنڈز کا منحنی خطوطچونکہ حکمت عملی نے پوزیشنوں کو بڑھانے کی اجازت دی ہے ، لہذا رجحان کے اچانک الٹ جانے پر بڑے اکاؤنٹ کی واپسی کا سبب بن سکتا ہے ، خاص طور پر جب مارکیٹ دو بار پوزیشنوں میں اضافے کے بعد الٹ جاتی ہے۔
حل میں شامل ہیں: اضافی مارکیٹ کے ماحول کے فلٹرز کو شامل کرنا ، فنڈ مینجمنٹ تناسب کو ایڈجسٹ کرنا ، مختلف مارکیٹ کے حالات کے مطابق پیرامیٹرز کو متحرک طور پر ایڈجسٹ کرنا ، اور سگنل کی تصدیق کے لئے دوسرے تکنیکی اشارے شامل کرنے پر غور کرنا۔
کوڈ تجزیہ کی بنیاد پر ، اس حکمت عملی کو مندرجہ ذیل سمتوں میں بہتر بنایا جاسکتا ہے۔
متحرک تنگ بینڈ کی حد: موجودہ حکمت عملی میں ایک مقررہ 1.5٪ اور 2٪ کا استعمال تنگ بینڈ اور وسیع بینڈ کے فیصلے کی حد کے طور پر کیا جاتا ہے۔ ان حدوں کو تاریخی اتار چڑھاؤ کی شرح کی نقل و حرکت کے مطابق ایڈجسٹ کرنے پر غور کیا جاسکتا ہے ، تاکہ حکمت عملی مختلف مارکیٹ کے حالات کے مطابق بہتر طور پر ڈھال سکے۔ اصلاح کی وجوہات: مختلف مارکیٹوں اور ٹائم فریموں میں مختلف اتار چڑھاؤ کی خصوصیات ہیں ، اور مقررہ حدیں کافی لچکدار نہیں ہوسکتی ہیں۔
یکساں نظام میں اضافہاس کے بجائے ، آپ کو ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر ایک بار پھر
اسکیلپنگ کی اصلاح: موجودہ جھکاؤ کا حساب لگانا نسبتا simple آسان ہے ، اور زیادہ مستحکم سمت اشارہ حاصل کرنے کے لئے لکیری رجعت جھکاؤ یا کثیر الاضلاع جھکاؤ میں تبدیلی کا استعمال کرنے پر غور کیا جاسکتا ہے۔ اصلاح کی وجہ: ایک نقطہ جھکاؤ کا حساب لگانا مختصر مدت کے اتار چڑھاؤ سے متاثر ہوتا ہے ، اور اس میں بہتری لگانے سے سمت کے فیصلے کی استحکام میں اضافہ ہوتا ہے۔
ٹرانسمیشن کی تصدیق: انٹری سگنل میں ٹرانزیکشن کی مقدار کی شرائط میں اضافہ کریں ، جیسے “ہاتھی کا ستون” کی ضرورت ہوتی ہے جس کے ساتھ اوسط سے زیادہ ٹرانزیکشن کی مقدار ہوتی ہے۔ اصلاح کی وجہ: ٹرانزیکشن کی مقدار قیمت میں تبدیلی کی تاثیر کا ایک اہم تصدیق کنندہ ہے ، جس سے جعلی توڑ کو نمایاں طور پر کم کیا جاسکتا ہے۔
متحرک رسک ریٹرن: مارکیٹ میں اتار چڑھاؤ یا اے ٹی آر فی صد کے مطابق متحرک ایڈجسٹمنٹ رسک ریٹرن ، کم اتار چڑھاؤ والے بازاروں میں زیادہ آر آر کا استعمال کریں ، اعلی اتار چڑھاؤ والے بازاروں میں زیادہ محتاط ترتیب استعمال کریں۔ اصلاح کی وجہ: مختلف اتار چڑھاؤ والے ماحول میں منافع کی صلاحیت مختلف ہوتی ہے ، متحرک ایڈجسٹمنٹ ہر تجارت کی متوقع آمدنی کو بہتر بناسکتی ہے۔
زیادہ سے زیادہ شرط لگانے کے لئے: موجودہ پوزیشننگ کی شرائط زیادہ نرم ہیں ، لہذا رجحان کی طاقت کی تصدیق یا صرف اس وقت پوزیشن لگانے پر غور کیا جاسکتا ہے جب قیمت اہم حمایت / مزاحمت کی پوزیشن پر واپس آجائے۔ اصلاح کی وجہ: سخت پوزیشننگ کی شرائط اضافی پوزیشنوں کی کامیابی کی شرح کو بڑھا سکتی ہیں اور مجموعی طور پر خطرہ کو کم کرسکتی ہیں۔
مارکیٹ ماحول فلٹرنگ: میکرو مارکیٹ کے ماحول کے فلٹرز کو شامل کریں ، جیسے اتار چڑھاؤ کے اشارے (جیسے VIX) یا رجحان کی طاقت کے اشارے ، غیر منفعتی مارکیٹ کے ماحول میں تجارت کو کم یا معطل کریں۔ اصلاح کی وجہ: مارکیٹ کے مختلف مراحل میں حکمت عملی کی کارکردگی میں بہت زیادہ فرق ہے ، ماحولیاتی فلٹرز غیر منفعتی حالات میں تجارت سے بچ سکتے ہیں۔
نقصانات کو روکنے کے لئے حکمت عملی کو اپنانے: مارکیٹ کے ڈھانچے پر مبنی موافقت پذیر اسٹاپ نقصان کی حکمت عملی تیار کریں ، جیسے کہ ابتدائی اونچائی ، اتار چڑھاؤ کی فیصد یا قیمت کی ساخت کو متحرک اسٹاپ نقصان کے حوالہ نقطہ کے طور پر استعمال کریں۔ اصلاح کی وجہ: مقررہ اے ٹی آر ضارب کی روک تھام کبھی کبھی مارکیٹ کی ساخت سے اچھی طرح سے مماثل نہیں ہوسکتی ہے ، موافقت پذیر طریقہ کار اصل قیمت کی طرز عمل کے لئے موزوں ہے۔
متحرک جھکاؤ ڈبل منتقل اوسط تنگ بینڈ توڑنے کی مقدار کی تجارت کی حکمت عملی ایک جامع تجارتی نظام ہے جو تکنیکی تجزیہ کے متعدد عناصر کو جوڑتا ہے ، جو تاجروں کو مارکیٹ میں حصہ لینے کا ایک منظم طریقہ فراہم کرتا ہے جس میں داخلہ کی واضح طور پر وضاحت کی گئی شرائط ، کثیر سطح کے تصدیق کے میکانزم اور ایک بہتر خطرے کے انتظام کا فریم ورک شامل ہے۔ یہ حکمت عملی بنیادی تکنیکی تجزیہ کے تصورات جیسے SMA ، ATR اور قیمت کے عمل پر مبنی ہے ، لیکن اولیور ویلیز کے طریقہ کار کے ذریعہ ان عناصر کو ایک واضح تجارتی نظام میں ضم کرتا ہے۔
حکمت عملی کا بنیادی فائدہ یہ ہے کہ وہ متحرک اوسط کے تنگ علاقوں میں اعلی امکانات کے مواقع کی نشاندہی کرنے اور مخصوص قیمتوں کے نمونوں جیسے “ہاتھیوں کے ستون” اور “رنگ کی تبدیلی” کے ذریعہ سگنل کی تاثیر کی تصدیق کرنے کے قابل ہے۔ اس کے ساتھ ہی ، ایک بہتر خطرے کے انتظام کا ڈھانچہ فنڈز کی حفاظت اور منافع کی حفاظت کو یقینی بناتا ہے۔
تاہم ، اس حکمت عملی کو پیرامیٹرز کی حساسیت ، جھوٹے توڑنے کے خطرے اور فنڈ مینجمنٹ کے چیلنجوں کا بھی سامنا کرنا پڑتا ہے۔ حکمت عملی کی استحکام اور لچک کو مزید بہتر بنانے کے لئے ، تنگ بینڈ کی کھاد کو بہتر بنانے ، اوسط لائن کے نظام کو بڑھانے ، اسکیلپنگ میں بہتری ، حجم کی تصدیق ، متحرک رسک ریٹرن ریٹرن کو نافذ کرنے ، انعقاد کی شرائط کو بہتر بنانے ، مارکیٹ کے ماحول کو فلٹر کرنے اور نقصان کی روک تھام کی حکمت عملی کو اپنانے میں مزید بہتری لانا۔
مجموعی طور پر ، یہ ایک معقول ، منطقی اور واضح طور پر ڈیزائن کردہ مقدار کی تجارت کی حکمت عملی ہے جو کسی حد تک تجارتی تجربے والے سرمایہ کاروں کے لئے موزوں ہے ، خاص طور پر وہ جو تکنیکی تجزیہ اور منظم تجارتی طریقوں کو ترجیح دیتے ہیں۔ مناسب پیرامیٹرز کی اصلاح اور خطرے کے انتظام کے ساتھ ، اس حکمت عملی میں مارکیٹ کے مختلف ماحول میں مستحکم تجارتی کارکردگی حاصل کرنے کی صلاحیت ہے۔
/*backtest
start: 2024-05-13 00:00:00
end: 2025-05-12 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Oliver Velez Advanced Strategy v2", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, pyramiding=2, calc_on_order_fills=true, calc_on_every_tick=true)
// === INPUTS ===
smaLen1 = input.int(20, title="SMA Short")
smaLen2 = input.int(200, title="SMA Long")
atrLen = input.int(14, title="ATR Length")
rr1 = input.float(2.5, title="RR for Partial Profit", step=0.1)
rr2 = input.float(4.0, title="RR for Final Profit", step=0.1)
// === INDICATORS ===
sma20 = ta.sma(close, smaLen1)
sma200 = ta.sma(close, smaLen2)
atr = ta.atr(atrLen)
angle = math.atan(sma20 - sma20[1]) * 180 / math.pi
// === STATES ===
isNarrow = math.abs(sma20 - sma200) / sma200 < 0.015
isWide = math.abs(sma20 - sma200) / sma200 >= 0.02
validSlope = angle > 30
// === CANDLE PATTERNS ===
elephant_long = close > open and (close - open) > 1.5 * atr and high > high[1]
elephant_short = close < open and (open - close) > 1.5 * atr and low < low[1]
color_change_long = close > open and close[1] < open[1]
color_change_short = close < open and close[1] > open[1]
// === LONG ENTRY ===
long_primary = isNarrow and validSlope and close > sma20 and sma20 > sma200 and elephant_long
long_add = isNarrow and color_change_long and close > sma20
long_entry_price = close
long_stop = math.min(low, close - 2 * atr)
long_risk = long_entry_price - long_stop
long_tp1 = long_entry_price + rr1 * long_risk
long_tp2 = long_entry_price + rr2 * long_risk
// === SHORT ENTRY ===
short_primary = isNarrow and validSlope and close < sma20 and sma20 < sma200 and elephant_short
short_add = isNarrow and color_change_short and close < sma20
short_entry_price = close
short_stop = math.max(high, close + 2 * atr)
short_risk = short_stop - short_entry_price
short_tp1 = short_entry_price - rr1 * short_risk
short_tp2 = short_entry_price - rr2 * short_risk
// === LONG EXECUTION ===
if (long_primary)
strategy.entry("Long Entry", strategy.long, comment="Elephant Bar Long")
strategy.exit("Long TP1", from_entry="Long Entry", limit=long_tp1, stop=long_stop)
strategy.exit("Long TP2", from_entry="Long Entry", qty_percent=50, limit=long_tp2)
if (long_add)
strategy.entry("Long Add", strategy.long, comment="Color Change Long")
strategy.exit("Add TP1", from_entry="Long Add", limit=long_tp1, stop=long_stop)
strategy.exit("Add TP2", from_entry="Long Add", qty_percent=50, limit=long_tp2)
// === SHORT EXECUTION ===
if (short_primary)
strategy.entry("Short Entry", strategy.short, comment="Elephant Bar Short")
strategy.exit("Short TP1", from_entry="Short Entry", limit=short_tp1, stop=short_stop)
strategy.exit("Short TP2", from_entry="Short Entry", qty_percent=50, limit=short_tp2)
if (short_add)
strategy.entry("Short Add", strategy.short, comment="Color Change Short")
strategy.exit("Short TP1 Add", from_entry="Short Add", limit=short_tp1, stop=short_stop)
strategy.exit("Short TP2 Add", from_entry="Short Add", qty_percent=50, limit=short_tp2)
// === BREAKEVEN CHECK ===
var float breakeven_price = na
long_breakeven_trigger = high >= long_tp1
short_breakeven_trigger = low <= short_tp1
breakeven_price := long_breakeven_trigger or short_breakeven_trigger ? close : breakeven_price
// === ALERTS ===
alertcondition(long_primary, title="Long Elephant", message="Elephant Bar Long Entry Triggered!")
alertcondition(long_add, title="Color Change Long", message="Color Change Long Entry Triggered!")
alertcondition(long_breakeven_trigger, title="Long Breakeven", message="Move SL to Breakeven for Long")
alertcondition(short_primary, title="Short Elephant", message="Elephant Bar Short Entry Triggered!")
alertcondition(short_add, title="Color Change Short", message="Color Change Short Entry Triggered!")
alertcondition(short_breakeven_trigger, title="Short Breakeven", message="Move SL to Breakeven for Short")
// === PLOTTING ===
plot(sma20, color=color.orange, title="SMA 20")
plot(sma200, color=color.blue, title="SMA 200")
bgcolor(isNarrow ? color.new(color.green, 85) : na)
plotshape(long_primary, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small, text="E")
plotshape(long_add, style=shape.circle, location=location.belowbar, color=color.lime, size=size.tiny, text="A")
plotshape(short_primary, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small, text="E")
plotshape(short_add, style=shape.circle, location=location.abovebar, color=color.maroon, size=size.tiny, text="A")
// === DASHBOARD ===
var label dash = na
label.delete(dash)
dash := label.new(x=bar_index, y=high, text=
"Oliver Velez Strategy\n" +
"SMA 20 Slope: " + str.tostring(angle, "#.##") + "°\n" +
"State: " + (isNarrow ? "NARROW" : "WIDE") + "\n" +
"Last Entry: " + (long_primary ? "Long E-Bar" : long_add ? "Long Add" : short_primary ? "Short E-Bar" : short_add ? "Short Add" : "None") + "\n" +
"Breakeven: " + (breakeven_price != na ? str.tostring(breakeven_price, "#.##") : "No"), style=label.style_label_left, color=color.new(color.black, 85), textcolor=color.white)