بیل مارکیٹ کے ماحول میں اعلی تعدد قیمت کی اصلاح کے نیچے چننے کی حکمت عملی کا اطلاق اور اصلاح

RSI ATR SMA MA Risk-Reward Ratio volatility BULL MARKET
تخلیق کی تاریخ: 2025-07-14 10:15:29 آخر میں ترمیم کریں: 2025-07-14 10:15:29
کاپی: 2 کلکس کی تعداد: 234
2
پر توجہ دیں
319
پیروکار

بیل مارکیٹ کے ماحول میں اعلی تعدد قیمت کی اصلاح کے نیچے چننے کی حکمت عملی کا اطلاق اور اصلاح بیل مارکیٹ کے ماحول میں اعلی تعدد قیمت کی اصلاح کے نیچے چننے کی حکمت عملی کا اطلاق اور اصلاح

جائزہ

ہائی فریکوئینسی پرائس ڈپ ڈپلیکیٹ حکمت عملی ایک تکنیکی اشارے پر مبنی مقداری تجارتی نظام ہے جو خاص طور پر بیل مارکیٹ کے ماحول میں قیمت کی واپسی کے لئے ٹریڈنگ کے مواقع فراہم کرتا ہے۔ یہ حکمت عملی پائن اسکرپٹ وی 6 کا استعمال کرتے ہوئے دوبارہ تعمیر کرنے کے لئے 2020 میں Coinrule کی طرف سے جاری کردہ “Buy The Dips in Bull Market” حکمت عملی کی ایک مکمل اصلاح اور دوبارہ تحریر ہے۔ بٹ کوائن کے دو سال سے زیادہ کے گھنٹوں کے اعداد و شمار کے گہرے تجزیے کے ذریعے ، بہتر ورژن نے اصل حکمت عملی کے مقابلے میں 312.6٪ اضافی آمدنی فراہم کی اور 74.8٪ جیت کی شرح حاصل کی۔

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

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

یہ حکمت عملی ایک کثیر شرائط کے فیصلے کے نظام کا استعمال کرتی ہے، جس میں بنیادی طور پر مندرجہ ذیل بنیادی منطق شامل ہیں:

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

  1. آر ایس آئی اوور سیل کی شرائط: آر ایس آئی اشارے کنفیگریٹڈ حد سے نیچے گر گیا ((ڈیفالٹ 45)
  2. بیل مارکیٹ کی ساخت کی تصدیق: طویل مدتی حرکت پذیر اوسط ((150 سائیکل) درمیانی مدتی حرکت پذیر اوسط ((40 سائیکل) کے نیچے ہے ، جس سے مجموعی طور پر تیزی کی نشاندہی ہوتی ہے
  3. تاریخ کی حد: ٹرانزیکشن ایک مخصوص ریٹرننگ مدت کے اندر اندر ہوتا ہے

آؤٹ پٹ منطق: جب مندرجہ ذیل دونوں شرائط ایک ساتھ ملیں تو حکمت عملی فلیٹ ہوجاتی ہے:

  1. قیمتوں کی بحالی: موجودہ قیمتوں میں تیزی سے چلنے والی اوسط ((15 سائیکل) اوپر کی طرف منتقل
  2. اوسط لائن لائن: تیزی سے چلنے والی اوسط پر آہستہ چلنے والی اوسط کو گھسیٹیں ، رجحان کی تصدیق کریں

آپشن کے ساتھ خالی ٹرانزیکشنز: جب فعال ہو تو ، حکمت عملی مخالف منطق کا استعمال کرتے ہوئے خالی سر تجارت بھی کرسکتی ہے:

  1. خالی سر داخلہ: آر ایس آئی اوور خرید ((ڈیفالٹ 55 سے زیادہ) کے ساتھ ساتھ نیچے کی مارکیٹ کی ساخت
  2. خالی سر: قیمتیں تیزی سے چلنے والی اوسط سے نیچے گر گئیں ، اور نیچے کی اوسط لائن کے ساتھ

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

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

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

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

  3. اصلاح شدہ پیرامیٹرز کا مجموعہ

    • آر ایس آئی سائیکل: 14 تک بڑھایا گیا (پہلے ورژن سے زیادہ قابل اعتماد)
    • RSI خرید سگنل: 45 کو بہتر بنایا گیا ((35 سے بڑھایا گیا) ، جعلی سگنل کو کم کیا گیا
    • فاسٹ ایم اے: 15 سائیکلوں تک کم کریں (( 9 سائیکلوں سے) ، ردعمل کی رفتار میں اضافہ کریں
    • سست رفتار ایم اے: 40 سائیکلوں میں کمی ((50 سائیکلوں سے) ، بہتر رجحانات کا پتہ لگانا
    • طویل مدتی ایم اے: 150 سائیکلوں تک کم ((200 سائیکلوں سے) ، بیل مارکیٹ کی ساخت کو بہتر طور پر شناخت کریں
  4. دو طرفہ تجارت کی صلاحیت: حکمت عملی میں اختیاری ہیڈ ٹریڈنگ کی خصوصیات ہیں جو اسے مختلف مارکیٹ کے ماحول میں اپنانے کے قابل بناتی ہیں ، نہ کہ صرف ایک ہی سمت میں تجارت تک محدود ہیں۔

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

اسٹریٹجک رسک

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

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

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

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

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

اصلاح کی سمت

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

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

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

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

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

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

خلاصہ کریں۔

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

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

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

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

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

// === DESCRIPTION ===
// Buy The Dips Bull Market Strategy - Optimized
// Modified strategy based on the original 2020 strategy from Coinrule
// Optimized parameters based on 2+ years of BTC hourly data analysis
// Performance improvement: 312.6% better returns with 74.8% win rate
// Enters long when RSI is oversold and we're in a bull market structure
// Exits when price recovers above fast MA and fast MA > slow MA
// Quant Trading Pro
//@version=6
strategy(title="High Freq Buy The Dips Bull Market [Quant Trading]", 
         shorttitle="High Freq Buy The Dips BUll Market", 
         overlay=true,
         initial_capital=1000,
         default_qty_type=strategy.percent_of_equity,
         default_qty_value=100,
         commission_type=strategy.commission.percent,
         commission_value=0.1,
         slippage=3,
         margin_long=0,
         margin_short=0)

// === INPUT PARAMETERS ===

// RSI Settings
lengthRSI = input.int(14, "RSI Period", minval=1, maxval=50, group="📊 RSI Settings")
rsiBuySignal = input.int(45, "RSI Buy Signal", minval=20, maxval=50, group="📊 RSI Settings")

// Moving Average Settings  
maFastLength = input.int(15, "Fast MA Length", minval=1, maxval=50, group="📈 Moving Averages")
maSlowLength = input.int(40, "Slow MA Length", minval=10, maxval=100, group="📈 Moving Averages")
maLongLength = input.int(150, "Long MA Length", minval=50, maxval=300, group="📈 Moving Averages")

// Trade Settings
allowShortTrades = input.bool(false, "Allow Short Trades?", group="🚫 Short Trades")

// Risk Management - ATR Based
enableATRRisk = input.bool(true, "Enable ATR Risk Management", group="🛡️ Risk Management")
atrLength = input.int(14, "ATR Period", minval=1, maxval=50, group="🛡️ Risk Management")
atrMultiplier = input.float(2.0, "ATR Stop Loss Multiplier", minval=0.5, maxval=5.0, step=0.1, group="🛡️ Risk Management")
riskRewardRatio = input.float(2.0, "Risk Reward Ratio", minval=1.0, maxval=10.0, step=0.1, group="🛡️ Risk Management")

// Optional Percentage-based Risk Management
usePercentageRisk = input.bool(false, "Use Percentage Instead of ATR", group="🛡️ Risk Management")
stopLossPercent = input.float(5.0, "Stop Loss (%)", minval=1.0, maxval=20.0, step=0.5, group="🛡️ Risk Management")
takeProfitPercent = input.float(10.0, "Take Profit (%)", minval=2.0, maxval=50.0, step=0.5, group="🛡️ Risk Management")

// === 1️⃣ CALCULATIONS ===

// RSI Calculation
rsiValue = ta.rsi(close, lengthRSI)

// Moving Averages
maFast = ta.sma(close, maFastLength)
maSlow = ta.sma(close, maSlowLength)
maLong = ta.sma(close, maLongLength)

// ATR Calculation for Risk Management
atrValue = ta.atr(atrLength)

// === 2️⃣ ENTRY & EXIT LOGIC ===

// Long Entry Conditions
rsiOversold = rsiValue < rsiBuySignal
bullMarketStructure = maLong < maSlow  // Long MA below slow MA indicates bullish structure
longCondition = rsiOversold and bullMarketStructure 

// Long Exit Conditions
priceRecovery = close > maFast
maAlignment = maFast > maSlow
longExitCondition = priceRecovery and maAlignment 

// Short Entry Conditions (reverse logic)
rsiOverbought = rsiValue > (100 - rsiBuySignal)  // If RSI buy signal is 35, short when RSI > 65
bearMarketStructure = maLong > maSlow  // Long MA above slow MA indicates bearish structure
shortCondition = rsiOverbought and bearMarketStructure and allowShortTrades 

// Short Exit Conditions (reverse logic)
priceDecline = close < maFast
maAlignmentBear = maFast < maSlow
shortExitCondition = priceDecline and maAlignmentBear and allowShortTrades 

// === 3️⃣ TRADE EXECUTIONS ===

// Long Trades
if longCondition
    strategy.entry("Long", strategy.long)

// Long Exits
if longExitCondition
    strategy.close("Long")

// Short Trades (if enabled)
if shortCondition
    strategy.entry("Short", strategy.short)

// Short Exits
if shortExitCondition
    strategy.close("Short")

// ATR-Based Risk Management (if enabled)
if enableATRRisk and not usePercentageRisk
    // Calculate ATR-based stop loss and take profit levels
    longStopLoss = close - (atrValue * atrMultiplier)
    longTakeProfit = close + (atrValue * atrMultiplier * riskRewardRatio)
    
    shortStopLoss = close + (atrValue * atrMultiplier)
    shortTakeProfit = close - (atrValue * atrMultiplier * riskRewardRatio)
    
    // Long position risk management
    strategy.exit("Long Exit", from_entry="Long", 
                  stop=longStopLoss,
                  limit=longTakeProfit)
    
    // Short position risk management
    if allowShortTrades
        strategy.exit("Short Exit", from_entry="Short",
                      stop=shortStopLoss,
                      limit=shortTakeProfit)

// Percentage-Based Risk Management (Alternative)
else if enableATRRisk and usePercentageRisk
    strategy.exit("Long Exit", from_entry="Long", 
                  stop=strategy.position_avg_price * (1 - stopLossPercent / 100),
                  limit=strategy.position_avg_price * (1 + takeProfitPercent / 100))
    
    if allowShortTrades
        strategy.exit("Short Exit", from_entry="Short",
                      stop=strategy.position_avg_price * (1 + stopLossPercent / 100),
                      limit=strategy.position_avg_price * (1 - takeProfitPercent / 100))

// === 4️⃣ VISUALIZATIONS ===

// Moving Averages - ensure they're properly connected to price data
plot(maFast, "Fast MA", color=color.new(color.purple, 0), linewidth=2, display=display.all)
plot(maSlow, "Slow MA", color=color.new(color.orange, 0), linewidth=2, display=display.all)
plot(maLong, "Long MA", color=color.new(color.blue, 0), linewidth=3, display=display.all)

// Entry/Exit Signals - ensure they're anchored to bars
//plotshape(longCondition, title="Long Entry", location=location.belowbar, 
//          color=color.new(color.green, 0), style=shape.triangleup, size=size.small)
//plotshape(longExitCondition, title="Long Exit", location=location.abovebar, 
//          color=color.new(color.red, 0), style=shape.triangledown, size=size.small)

// Short signals (if enabled)
//plotshape(shortCondition, title="Short Entry", location=location.abovebar, 
//          color=color.new(color.red, 0), style=shape.triangledown, size=size.small)
//plotshape(shortExitCondition, title="Short Exit", location=location.belowbar, 
//          color=color.new(color.green, 0), style=shape.triangleup, size=size.small)

// Risk Management Visualization
var float longSL = na
var float longTP = na
var float shortSL = na
var float shortTP = na

// Set risk levels only when entering new positions
if longCondition and enableATRRisk
    if not usePercentageRisk
        longSL := close - (atrValue * atrMultiplier)
        longTP := close + (atrValue * atrMultiplier * riskRewardRatio)
    else
        longSL := close * (1 - stopLossPercent / 100)
        longTP := close * (1 + takeProfitPercent / 100)
        
if shortCondition and enableATRRisk
    if not usePercentageRisk
        shortSL := close + (atrValue * atrMultiplier)
        shortTP := close - (atrValue * atrMultiplier * riskRewardRatio)
    else
        shortSL := close * (1 + stopLossPercent / 100)
        shortTP := close * (1 - takeProfitPercent / 100)

// Clear levels when positions are closed
if strategy.position_size == 0
    longSL := na
    longTP := na
    shortSL := na
    shortTP := na

// Plot risk levels only when in position
plot(strategy.position_size > 0 ? longSL : na, "Long Stop Loss", color=color.new(color.red, 0), style=plot.style_linebr, linewidth=2)
plot(strategy.position_size > 0 ? longTP : na, "Long Take Profit", color=color.new(color.green, 0), style=plot.style_linebr, linewidth=2)
plot(strategy.position_size < 0 ? shortSL : na, "Short Stop Loss", color=color.new(color.red, 50), style=plot.style_linebr, linewidth=2)
plot(strategy.position_size < 0 ? shortTP : na, "Short Take Profit", color=color.new(color.green, 50), style=plot.style_linebr, linewidth=2)