ملٹی فلٹرڈ RSI مومنٹم کنفرمیشن ٹریڈنگ اسٹریٹجی

RSI ATR supertrend SMA EMA RMA WMA
تخلیق کی تاریخ: 2025-05-22 10:28:45 آخر میں ترمیم کریں: 2025-05-22 10:28:45
کاپی: 1 کلکس کی تعداد: 422
2
پر توجہ دیں
319
پیروکار

ملٹی فلٹرڈ RSI مومنٹم کنفرمیشن ٹریڈنگ اسٹریٹجی ملٹی فلٹرڈ RSI مومنٹم کنفرمیشن ٹریڈنگ اسٹریٹجی

جائزہ

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

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

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

اس حکمت عملی کا بنیادی منطق تین اہم تکنیکی اشارے کے ہم آہنگی پر مبنی ہے۔ سب سے پہلے ، آر ایس آئی کی حرکیات کا پتہ لگانے کا طریقہ کار۔ حکمت عملی 14 سائیکل آر ایس آئی کا استعمال کرتی ہے ، جس میں 70 کو اوور بلڈ سطح کے طور پر مقرر کیا گیا ہے ، اور 30 کو اوور سیل سطح کے طور پر۔ کثیر سر والے داخلے کے ل the ، نظام آر ایس آئی کو 30 سے نیچے سے اوپر کی طرف سے عبور کرنے کا پتہ لگاتا ہے ، جس سے اوور سیل حالت سے بائٹ کی حرکیات میں تبدیلی کی نشاندہی ہوتی ہے۔ خالی سر والے داخلے کے ل the ، نظام آر ایس آئی کو 70 سے اوپر سے نیچے کی طرف سے عبور کرنے کا پتہ لگاتا ہے ، جس سے بائٹ کی حیثیت سے بائٹ کی حرکیات میں تبدیلی کی نشاندہی ہوتی ہے۔

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

حکمت عملی ایک اختیاری سپر ٹرینڈ فلٹر بھی پیش کرتی ہے ، جب اس کا آغاز ہوتا ہے تو ، کثیر سر والے داخلے کو سپر ٹرینڈ کی عروج کی سمت کے ساتھ سیدھا ہونا ضروری ہے ، اور خالی سر والے داخلے کو گرنے والے رجحان کے ساتھ سیدھا ہونا ضروری ہے۔ متحرک اے ٹی آر اسٹاپ سسٹم تحفظ کی سطح کو موجودہ مارکیٹ میں اتار چڑھاؤ کے مطابق ایڈجسٹ کرتا ہے ، اسٹاپ اور منافع کے اہداف کا حساب لگانے کے لئے 3.5x اے ٹی آر ضارب کا استعمال کرتا ہے ، یا ایک مقررہ 0.5٪ اسٹاپ کا اختیار فراہم کرتا ہے ، جس میں رسک ریٹرن کو 1.5: 1 پر سیٹ کیا جاتا ہے۔

طاقت کا تجزیہ

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

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

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

خطرے کا تجزیہ

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

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

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

اصلاح کی سمت

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

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

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

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

خلاصہ کریں۔

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

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

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

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © nioboi

// Best settings already at default. 
// Use at BTCUSDT 5m chart
// strategy properties: start with 100 usdt capital, set order size to be 20 usdt
// for indicator use (buy sell signals only), rightclick on chart and disable "Trades On Chart"

//@version=6
strategy("Volume FIltered RSI Buy/Sell Strategy", overlay=true, process_orders_on_close=true, commission_value=0.055, initial_capital=100, currency=currency.USDT, pyramiding=1)

// =========================================
// Input Groups
// =========================================
string rsi_group = "RSI"
string atr_sl_finder_group = "ATR SL Finder"
string trade_execution_group = "Strategy Execution"
string supertrend_group = "Supertrend Filter"
string range_filter_group = "Range Detector Filter"

// =========================================
// RSI Calculation
// =========================================
rsi_ob = input.int(70, "Overbought Level", group=rsi_group)
rsi_os = input.int(30, "Oversold Level", group=rsi_group)
rsiLengthInput = input.int(14, minval=1, title="RSI Length", group=rsi_group)
rsiSourceInput = input.source(close, "Source", group=rsi_group)

change = ta.change(rsiSourceInput)
up = ta.rma(math.max(change, 0), rsiLengthInput)
down = ta.rma(-math.min(change, 0), rsiLengthInput)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))

rsi_can_long = rsi[1] < rsi_os and rsi >= rsi_os
rsi_can_short = rsi[1] > rsi_ob and rsi <= rsi_ob

// =========================================
// Candle Body Conditions
// =========================================
isBullCandle = close > open and (math.abs(close - open) > (high - low) * 0.5)
isBearCandle = close < open and (math.abs(close - open) > (high - low) * 0.5)

// =========================================
// Volume Filter
// =========================================
has_volume = volume >= ta.sma(volume, 14)

// Initial can_long and can_short
can_long = rsi_can_long and isBullCandle and has_volume
can_short = rsi_can_short and isBearCandle and has_volume

// =========================================
// Supertrend Filter
// =========================================
useSupertrendFilter = input.bool(false, "Use Supertrend Filter", group=supertrend_group)
st_tf = input.timeframe("", "Supertrend Timeframe", group=supertrend_group)
atrPeriod = input.int(10, "ATR Length", minval=1, group=supertrend_group)
factor = input.float(3.0, "Factor", minval=0.01, step=0.01, group=supertrend_group)

[supertrendVal, directionVal] = request.security(syminfo.tickerid, st_tf, ta.supertrend(factor, atrPeriod))

if useSupertrendFilter
    can_long := can_long and directionVal < 0 and close > supertrendVal
    can_short := can_short and directionVal > 0 and close < supertrendVal

// =========================================
// ATR SL Finder © Veryfid
// =========================================
atrlength = input.int(title='Length', defval=14, minval=1, group=atr_sl_finder_group)
smoothing = input.string(title='Smoothing', defval='RMA', options=['RMA','SMA','EMA','WMA'], group=atr_sl_finder_group)
m = input(3.5, 'Multiplier', group=atr_sl_finder_group)
src1 = high
src2 = low

ma_function(source, length) =>
    if smoothing == 'RMA'
        ta.rma(source, length)
    else
        if smoothing == 'SMA'
            ta.sma(source, length)
        else
            if smoothing == 'EMA'
                ta.ema(source, length)
            else
                ta.wma(source, length)

x = ma_function(ta.tr(true), atrlength) * m + src1 // SHORT SL
x2 = src2 - ma_function(ta.tr(true), atrlength) * m // LONG SL

p1 = plot(x, title="ATR Short Stop Loss", color=#ffffff18)
p2 = plot(x2, title="ATR Long Stop Loss", color=#ffffff18)

// =========================================
// Strategy Execution
// =========================================
tradeDirection = input.string("Both", "Trade Direction", ["Long Only","Short Only","Both"], group=trade_execution_group)
risk_reward_ratio = input.float(1.5, "Risk Reward Ratio", group=trade_execution_group)
exit_strategy = input.string("Fixed Percent", "Exit Strategy", ["ATR","Fixed Percent"], group=trade_execution_group)
SLPercent = input.float(0.5, "Stoploss Percent (%)", group=trade_execution_group)

enterLong = can_long and (tradeDirection == "Long Only" or tradeDirection == "Both")
enterShort = can_short and (tradeDirection == "Short Only" or tradeDirection == "Both")

var bool plotMarkers_long = false
var float sl_long = na
var float tp2_long = na
var float entryPrice_long = na

var bool plotMarkers_short = false
var float sl_short = na
var float tp2_short = na
var float entryPrice_short = na

if exit_strategy == "ATR"
    // Long Entries
    if enterLong and strategy.position_size == 0
        entryPrice_long := close
        sl_long := x2
        risk = entryPrice_long - sl_long
        tp2_long := entryPrice_long + (risk_reward_ratio * risk)
        strategy.entry("Long", strategy.long)
        strategy.exit("Exit Long", "Long", limit=tp2_long, stop=sl_long)
    // Short Entries
    if enterShort and strategy.position_size == 0
        entryPrice_short := close
        sl_short := x
        risk = sl_short - entryPrice_short
        tp2_short := entryPrice_short - (risk_reward_ratio * risk)
        strategy.entry("Short", strategy.short)
        strategy.exit("Exit Short", "Short", limit=tp2_short, stop=sl_short)

if exit_strategy == "Fixed Percent"
    // Long Entries
    if enterLong and strategy.position_size == 0
        entryPrice_long := close
        sl_long := close * (1 - SLPercent / 100)
        risk = entryPrice_long - sl_long
        tp2_long := entryPrice_long + (risk_reward_ratio * risk)
        strategy.entry("Long", strategy.long)
        strategy.exit("Exit Long", "Long", limit=tp2_long, stop=sl_long)
    // Short Entries
    if enterShort and strategy.position_size == 0
        entryPrice_short := close
        sl_short := close * (1 + SLPercent / 100)
        risk = sl_short - entryPrice_short
        tp2_short := entryPrice_short - (risk_reward_ratio * risk)
        strategy.entry("Short", strategy.short)
        strategy.exit("Exit Short", "Short", limit=tp2_short, stop=sl_short)

// Entry Visual Flags
if strategy.position_size == 0
    plotMarkers_long := false
    plotMarkers_short := false
if strategy.position_size > 0
    plotMarkers_long := true
    plotMarkers_short := false
else if strategy.position_size < 0
    plotMarkers_long := false
    plotMarkers_short := true

// SL and TP Lines
longEntryMarker = plot(plotMarkers_long ? entryPrice_long : na, "Entry Marker L", color=na)
longSLMarker = plot(plotMarkers_long ? sl_long : na, "SL Marker L", color=#ff000050, linewidth=1, style=plot.style_linebr)
longTP2Marker = plot(plotMarkers_long ? tp2_long : na, "TP2 Marker L", color=#1100ff50, linewidth=1, style=plot.style_linebr)

plotshape(enterLong and strategy.position_size == 0, "BUY", shape.triangleup, location.belowbar, color.green, text="BUY", size=size.small, textcolor=color.green)
plotshape(enterShort and strategy.position_size == 0, "SELL", shape.triangledown, location.abovebar, color.red, text="SELL", size=size.small, textcolor=color.red)

shortEntryMarker = plot(plotMarkers_short ? entryPrice_short : na, "Entry Marker S", color=na)
shortSLMarker = plot(plotMarkers_short ? sl_short : na, "SL Marker S", color=#ff000050, linewidth=1, style=plot.style_linebr)
shortTP2Marker = plot(plotMarkers_short ? tp2_short : na, "TP2 Marker S", color=#1100ff50, linewidth=1, style=plot.style_linebr)

// SL and TP Fills
fill(plot1=longEntryMarker, plot2=longSLMarker, title="Long SL BG Fill", color=#b2283320)
fill(plot1=longEntryMarker, plot2=longTP2Marker, title="Long TP BG Fill", color=#08998120)
fill(plot1=shortEntryMarker, plot2=shortSLMarker, title="Short SL BG Fill", color=#b2283320)
fill(plot1=shortEntryMarker, plot2=shortTP2Marker, title="Short TP BG Fill", color=#08998120)

// Supertrend Plots (Only show if using supertrend filter)
upTrend = plot(useSupertrendFilter ? (directionVal < 0 ? supertrendVal : na) : na, "Up Trend", color=color.new(color.green,0), style=plot.style_linebr)
downTrend = plot(useSupertrendFilter ? (directionVal < 0 ? na : supertrendVal) : na, "Down Trend", color=color.new(color.red,0), style=plot.style_linebr)
bodyMiddle = plot(useSupertrendFilter ? (barstate.isfirst ? na : (open + close) / 2) : na, "Body Middle", display=display.none)

fill(bodyMiddle, upTrend,   color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red,   90), fillgaps=false)