ملٹی فیکٹر اڈاپٹیو سوئنگ ٹریڈنگ کی حکمت عملی: موونگ ایوریج کراس اوور اور بولنگر بینڈ آسکیلیشن پر مبنی رسک ریٹرن ریشو آپٹیمائزیشن سسٹم

EMA WMA RSI SMA VWAP HEIKIN ASHI ATR Pivot Points VOLUME
تخلیق کی تاریخ: 2025-08-11 09:05:39 آخر میں ترمیم کریں: 2025-08-11 09:05:39
کاپی: 2 کلکس کی تعداد: 217
2
پر توجہ دیں
319
پیروکار

ملٹی فیکٹر اڈاپٹیو سوئنگ ٹریڈنگ کی حکمت عملی: موونگ ایوریج کراس اوور اور بولنگر بینڈ آسکیلیشن پر مبنی رسک ریٹرن ریشو آپٹیمائزیشن سسٹم ملٹی فیکٹر اڈاپٹیو سوئنگ ٹریڈنگ کی حکمت عملی: موونگ ایوریج کراس اوور اور بولنگر بینڈ آسکیلیشن پر مبنی رسک ریٹرن ریشو آپٹیمائزیشن سسٹم

جائزہ

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

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

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

  1. Heikin Ashi کی تبدیلیحکمت عملی: سب سے پہلے معیاری K لائن کو Heikin Ashi گراف میں تبدیل کریں تاکہ مارکیٹ میں شور کم ہو اور رجحان کی سمت کو اجاگر کیا جاسکے۔ Heikin Ashi حساب کتاب کا فارمولا مندرجہ ذیل ہے:

    • HA_ اختتامی قیمت = (اوپننگ قیمت + اعلی ترین قیمت + کم ترین قیمت + اختتامی قیمت) / 4
    • HA_ افتتاحی قیمت = پچھلے HA کٹ کا ((ابتدائی قیمت + اختتامی قیمت) / 2
    • HA_ سب سے زیادہ قیمت = max ((سب سے زیادہ قیمت، max ((HA_ افتتاحی قیمت، HA_ اختتامی قیمت))
    • HA_ کم از کم قیمت = min ((کم از کم قیمت، min ((HA_ افتتاحی قیمت، HA_ اختتامی قیمت))
  2. ایک سے زیادہ چلتی اوسط کا تجزیہاس حکمت عملی میں 34 مختلف اقسام کی متحرک اوسط کی حساب کتاب کی گئی ہے:

    • 34 دورانیہ ای ایم اے
    • 34 دورانیہ WMA (وزنی متحرک اوسط)
    • 34 دورانیہ SMA (سادہ منتقل اوسط)
    • 34 دورانیہ وی ڈبلیو ایم اے ان چاروں حرکت پذیر اوسط کی اوسط قیمتوں کے اہم حوالہ جات کے طور پر استعمال کی جاتی ہے۔
  3. دو موڈ ٹریڈنگ منطق

    • RSI ماڈل: آر ایس آئی کی 3 سائیکل ای ایم اے اور 10 سائیکل ای ایم اے کے کراس کو ابتدائی سگنل کے طور پر استعمال کریں ، اور اس کے ساتھ اعلی درجے کی تجارت کی تصدیق کریں۔ جب قیمت منتقل اوسط سے کم ہو اور آر ایس آئی اشارے اوور سیل کراس کو اوپر دکھائے تو ایک خرید سگنل پیدا ہوتا ہے۔ جب قیمت منتقل اوسط سے زیادہ ہو اور آر ایس آئی اشارے اوور سیل کراس کو نیچے دکھائے تو ایک فروخت سگنل پیدا ہوتا ہے۔
    • شارٹ لائن موڈ: 34 سائیکل ای ایم اے اور 34 سائیکل ڈبلیو ایم اے کی کراسنگ کو ابتدائی سگنل کے طور پر استعمال کیا جاتا ہے ، اور پھر قیمت کے حوالہ اعلی یا کم سے تجاوز کرکے تجارت کی سمت کی تصدیق کی جاتی ہے۔
  4. اسٹیٹس مینجمنٹ نظامحکمت عملی: ٹریڈنگ کی حیثیت کو ٹریک کرنے اور ان کا انتظام کرنے کے لئے اسٹیٹ متغیرات ((“NEUTRAL” ، “WAIT_ENTRY” ، “BUY” ، “SELL”) کا استعمال کریں تاکہ بار بار تجارت اور جعلی سگنل سے بچا جاسکے۔

  5. ذہین سٹاپ نقصان اور منافع کے اہداف

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

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

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

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

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

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

  4. اسٹیٹس مینجمنٹ کو کم کرنے کے لئے: اسٹیٹس ویریبلز کے ذریعے ٹریکنگ اسٹیٹس کا سراغ لگانا اور ان کا انتظام کرنا ، مارکیٹ میں بار بار داخل ہونے اور باہر جانے سے بچنا ، ٹرانزیکشن لاگت اور جذباتی اتار چڑھاؤ کو کم کرنا۔

  5. Heikin Ashi ہموار کرناٹرانسفارمرز کے لئے ، یہ ایک بہت ہی آسان طریقہ ہے: مارکیٹ کے شور کو کم کرنے اور رجحانات کو واضح کرنے کے لئے ہیکن آشی ٹکنالوجی کا استعمال کریں ، جس سے مارکیٹ کے حقیقی موڑ کی شناخت میں مدد ملے گی۔

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

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

اسٹریٹجک رسک

اس حکمت عملی کے ڈیزائن کے باوجود ، مندرجہ ذیل ممکنہ خطرات موجود ہیں:

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

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

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

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

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

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

کوڈ کے گہرے تجزیے کے مطابق ، ممکنہ اصلاحات یہ ہیں:

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

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

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

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

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

  6. ٹرانسمیشن کی تصدیق کے لئے بہتر شرائط: موجودہ حکمت عملی میں سادہ ٹرانزیکشن کی حد کا استعمال کیا گیا ہے ((1.5x 20 سیکنڈ اوسط) ، زیادہ پیچیدہ ٹرانزیکشن پیٹرن کی شناخت پر غور کیا جاسکتا ہے ، جیسے ٹرانزیکشن رجحانات کی مستقل مزاجی یا اچانک ٹرانزیکشن کی خصوصیات۔

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

  8. ریٹرننگ سائیکل کی اصلاح: مختلف ہلچل کے جائزہ لینے کے دوروں کی مکمل جانچ پڑتال کریں اور مختلف مارکیٹ کے حالات میں کارکردگی کا سب سے مستحکم پیرامیٹرز کی ترتیب تلاش کریں۔

خلاصہ کریں۔

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

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

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

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

//@version=6
strategy("Cnagda Fixed Swing SL & RR 1:3", overlay=true, max_boxes_count=500, max_labels_count=500)
input_strategy = input.string("RSI", "Trade Logic", options=["RSI", "Scalp"])
swing_lookback = input.int(34, "Swing Lookback", minval=5)
rr_multiple = input.int(3, "Risk Reward Multiple", minval=1)

// --- Heikin Ashi Calculation ---
ha_close = (open + high + low + close) / 4
var float ha_open = na
if bar_index == 0
    ha_open := (open + close) / 2
else
    ha_open := (ha_open[1] + ha_close[1]) / 2
ha_high = math.max(high, math.max(ha_open, ha_close))
ha_low = math.min(low, math.min(ha_open, ha_close))

// --- MA/Signal Logic on Heikin Ashi ---
ma1 = ta.ema(ha_close, 34)
ma2 = ta.wma(ha_close, 34)
wma34 = ta.wma(ha_close, 34)
ema34 = ta.ema(ha_close, 34)
sma34 = ta.sma(ha_close, 34)
vwma34 = ta.vwma(ha_close, 34)
ma_sum = (not na(wma34) ? wma34 : 0) + (not na(vwma34) ? vwma34 : 0) + (not na(ema34) ? ema34 : 0) + (not na(sma34) ? sma34 : 0)
ma_avg = ma_sum / 4

// --- Scalp/Swing Logic ---
buySignal = ta.crossover(ma1, ma2)
sellSignal = ta.crossunder(ma1, ma2)
var string scalp_state = "NEUTRAL"
var float refHigh = na
var float refLow = na
if buySignal or sellSignal
    refHigh := ha_high
    refLow := ha_low
    scalp_state := "WAIT_ENTRY"
if (scalp_state == "WAIT_ENTRY" or scalp_state == "SELL") and not na(refHigh) and ha_close > refHigh
    scalp_state := "BUY"
if (scalp_state == "WAIT_ENTRY" or scalp_state == "BUY") and not na(refLow) and ha_close < refLow
    scalp_state := "SELL"
if scalp_state == "BUY" and ha_close < ma_avg
    scalp_state := "NEUTRAL"
    refHigh := na
    refLow := na
if scalp_state == "SELL" and ha_close > ma_avg
    scalp_state := "NEUTRAL"
    refHigh := na
    refLow := na

// --- RSI Logic ---
rsi_val = ta.rsi(ha_close, 14)
rsi_ema_3 = ta.ema(rsi_val, 3)
rsi_ema_10 = ta.ema(rsi_val, 10)
high_vol = volume > ta.sma(volume, 20) * 1.5
bar_is_high = high_vol
prev_bar_is_high = high_vol[1]
any_high_bar = bar_is_high or prev_bar_is_high
_base_rsi_cross_bull = ta.crossover(rsi_ema_3, rsi_ema_10) and any_high_bar
_base_rsi_cross_bear = ta.crossunder(rsi_ema_3, rsi_ema_10) and any_high_bar
rsi_cross_bull = _base_rsi_cross_bull and (ha_close < ma_avg)
rsi_cross_bear = _base_rsi_cross_bear and (ha_close > ma_avg)

// ENTRY LOGIC
var float rsi_signal_high = na
var float rsi_signal_low = na
var int rsi_signal_bar = na
var string rsi_entry_state = ""

if rsi_cross_bull
    rsi_signal_high := high
    rsi_signal_low := na
    rsi_signal_bar := bar_index
    rsi_entry_state := "WAIT ENTRY"
else if rsi_cross_bear
    rsi_signal_low := low
    rsi_signal_high := na
    rsi_signal_bar := bar_index
    rsi_entry_state := "WAIT ENTRY"
else if not na(rsi_signal_bar)
    if not na(rsi_signal_high)
        if close > rsi_signal_high and bar_index > rsi_signal_bar
            rsi_entry_state := "BUY"
            rsi_signal_high := na
            rsi_signal_bar := na
        else
            rsi_entry_state := "WAIT ENTRY"
    else if not na(rsi_signal_low)
        if close < rsi_signal_low and bar_index > rsi_signal_bar
            rsi_entry_state := "SELL"
            rsi_signal_low := na
            rsi_signal_bar := na
        else
            rsi_entry_state := "WAIT ENTRY"
    else
        rsi_entry_state := ""
else
    rsi_entry_state := ""

// --- Swing High/Low (Stoploss reference) ---
swingLow  = ta.pivotlow(ha_low, swing_lookback, swing_lookback)
swingHigh = ta.pivothigh(ha_high, swing_lookback, swing_lookback)

// -- Entry/Exit conditions --
long_condition  = input_strategy == "RSI" ? (rsi_entry_state == "BUY" and rsi_entry_state[1] != "BUY") : (scalp_state == "BUY" and scalp_state[1] != "BUY")
short_condition = input_strategy == "RSI" ? (rsi_entry_state == "SELL" and rsi_entry_state[1] != "SELL") : (scalp_state == "SELL" and scalp_state[1] != "SELL")
exit_long_condition  = input_strategy == "RSI" ? (rsi_entry_state == "SELL" and rsi_entry_state[1] != "SELL") : (scalp_state == "SELL" and scalp_state[1] != "SELL")
exit_short_condition = input_strategy == "RSI" ? (rsi_entry_state == "BUY" and rsi_entry_state[1] != "BUY") : (scalp_state == "BUY" and scalp_state[1] != "BUY")

// --- Final Entry & SL/Target (NO TRAIL) ---
var float sl_long = na
var float sl_short = na
var float tg_long = na
var float tg_short = na

if long_condition and not na(swingLow)
    sl_long := swingLow         // SL = last swing low after entry candle close
    entry_price = close
    risk = entry_price - sl_long
    tg_long := entry_price + (risk * rr_multiple)
    strategy.entry("Long", strategy.long)
    strategy.exit("Long_SL", from_entry="Long", stop=sl_long, limit=tg_long)

if short_condition and not na(swingHigh)
    sl_short := swingHigh      // SL = last swing high after entry candle close
    entry_price = close
    risk = sl_short - entry_price
    tg_short := entry_price - (risk * rr_multiple)
    strategy.entry("Short", strategy.short)
    strategy.exit("Short_SL", from_entry="Short", stop=sl_short, limit=tg_short)

if exit_long_condition
    strategy.close("Long")
if exit_short_condition
    strategy.close("Short")

// --- Visuals (optional, for clarity) ---
barcolor(long_condition ? color.green : short_condition ? color.red : na)
plot(ma_avg, "MA Avg", color=color.blue, linewidth=2)