ٹرینڈ مومنٹم کو-ویٹڈ رسک مینجمنٹ مقداری تجارتی حکمت عملی

EMA RSI ATR R:R TP SL
تخلیق کی تاریخ: 2025-06-17 13:08:21 آخر میں ترمیم کریں: 2025-06-17 13:08:21
کاپی: 0 کلکس کی تعداد: 267
2
پر توجہ دیں
319
پیروکار

ٹرینڈ مومنٹم کو-ویٹڈ رسک مینجمنٹ مقداری تجارتی حکمت عملی ٹرینڈ مومنٹم کو-ویٹڈ رسک مینجمنٹ مقداری تجارتی حکمت عملی

جائزہ

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

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

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

  1. رجحانات کی شناخت

    • 50 دن اور 200 دن کے اشاریہ منتقل اوسط ((EMA) کا استعمال کرتے ہوئے مارکیٹ کے رجحانات کی سمت کا تعین کرنا
    • جب 50 دن کا ای ایم اے > 200 دن کا ای ایم اے ہے تو ، اس کو اوپر کی طرف جانے والے رجحان کے طور پر پہچانا جاتا ہے ، صرف زیادہ کرنے کی اجازت ہے
    • جب 50 دن کا EMA < 200 دن کا EMA ، تو اسے نیچے کی طرف رجحان کے طور پر پہچانا جاتا ہے اور صرف خالی کرنے کی اجازت دی جاتی ہے
  2. داخلے کی شرائط کا فیصلہ

    • رجحان کی تصدیق کے بعد ، قیمت کے 50 ویں EMA کے قریب واپسی کا انتظار کریں (ATR کے پہلے سے طے شدہ ضرب سے زیادہ فاصلے پر نہیں)
    • بڑھتے ہوئے رجحان میں ، RSI کے اوور سیل زون (ڈیفالٹ 45 سے نیچے) میں گرنے کا انتظار کریں اور پھر اس کے خلاف مزاحمت کریں ، جس سے زیادہ کرنے کا اشارہ ملتا ہے۔
    • نیچے کی سمت میں ، RSI کو اوور بائڈ زون (ڈیفالٹ 70 سے اوپر) تک پہنچنے کا انتظار کریں اور پھر نیچے کی طرف جانے کا انتظار کریں
  3. رسک مینجمنٹ

    • اے ٹی آر پر مبنی متحرک اسٹاپ ، مارکیٹ میں اتار چڑھاؤ کے مطابق اسٹاپ فاصلے کو ایڈجسٹ کرنا
    • ہر ٹرانزیکشن کا خطرہ اکاؤنٹ فنڈز کے 1٪ پر مقرر کیا گیا ہے (مستحکم) ، پوزیشن کے سائز کے عین مطابق حساب سے
    • اسٹاپ نقصان کی پوزیشن کو داخلہ قیمت میں اضافے اور کمی ((ATR × 1.5) کے طور پر مقرر کیا گیا ہے ، اس بات کو یقینی بنانا کہ اسٹاپ نقصان بے ترتیب اتار چڑھاؤ سے متحرک نہیں ہوتا ہے
  4. منافع کی اصلاح

    • وقفے وقفے سے منافع کی حکمت عملی کا استعمال: جب 2.1:1 کا رسک ٹو ریٹرن ریٹرن حاصل کیا جائے تو ، 50٪ پوزیشن کو فلیٹ کرنے سے منافع کو لاک کیا جاتا ہے
    • باقی 50٪ پوزیشنوں کو اے ٹی آر پر مبنی فالو اپ نقصان کے ساتھ بند کیا گیا تاکہ منافع میں مزید اضافہ کیا جاسکے
    • جب رجحان الٹ جاتا ہے (میری لائن تعلقات تبدیل ہوجاتے ہیں) ، تو اس رجحان کے خاتمے سے بڑے پیمانے پر واپسی سے بچنے کے لئے غیر منقولہ پوزیشنوں کو مجبور کرنا

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

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

اس حکمت عملی کے درج ذیل نمایاں فوائد ہیں۔

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

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

  3. فنڈ مینجمنٹ کو بہتر بنانا: مرحلہ وار منافع کا طریقہ کار ((50٪ پوزیشن 2.1R پر منافع حاصل کرتی ہے ، باقی کا استعمال کرتے ہوئے تعاقب میں کمی) اس توازن کو حاصل کرتا ہے جو منافع کو یقینی بناتا ہے اور رجحان کو پکڑنے میں زیادہ سے زیادہ فائدہ اٹھاتا ہے۔ کوڈ میںlong_tp1_hitاورlong_trail_stopاس عمل کو درست طریقے سے کنٹرول کرنے والی متغیرات۔

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

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

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

اسٹریٹجک رسک

اس حکمت عملی کے متعدد فوائد کے باوجود ، اس میں ممکنہ خطرات بھی شامل ہیں:

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

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

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

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

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

اصلاح کی سمت

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

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

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

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

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

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

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

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

خلاصہ کریں۔

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

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

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

یہ حکمت عملی ایک ٹھوس بنیادی فریم ورک فراہم کرتی ہے جو انفرادی خطرے کی ترجیحات اور مارکیٹ کی تفہیم کے مطابق مزید تخصیص اور اصلاح کے قابل ہے۔

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

//@version=5
strategy("Crypto Swing Trading Strategy (1-5 Day)", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0, calc_on_every_tick=false, calc_on_order_fills=false)

// ============================================================================
// STRATEGY INPUTS
// ============================================================================

// Trend Filter Settings
ema_fast_length = input.int(50, title="Fast EMA Length", minval=1, group="Trend Filter")
ema_slow_length = input.int(200, title="Slow EMA Length", minval=1, group="Trend Filter")

// RSI Settings
rsi_length = input.int(14, title="RSI Length", minval=1, group="Momentum")
rsi_oversold = input.int(45, title="RSI Oversold Level", minval=1, maxval=50, group="Momentum")
rsi_overbought = input.int(70, title="RSI Overbought Level", minval=50, maxval=99, group="Momentum")

// ATR Settings
atr_length = input.int(14, title="ATR Length", minval=1, group="Risk Management")
atr_stop_mult = input.float(1.5, title="ATR Stop Loss Multiplier", minval=0.1, step=0.1, group="Risk Management")
atr_trail_mult = input.float(1.0, title="ATR Trailing Stop Multiplier", minval=0.1, step=0.1, group="Risk Management")

// Risk Management
risk_per_trade = input.float(1.0, title="Risk Per Trade (%)", minval=0.1, maxval=5.0, step=0.1, group="Risk Management")
reward_ratio = input.float(2.1, title="Initial Take Profit Ratio (R:R)", minval=1.0, step=0.1, group="Risk Management")

// Strategy Settings
pullback_distance = input.float(1.0, title="Max Distance from 50 EMA for Pullback (ATR)", minval=0.1, step=0.1, group="Entry Conditions")
enable_shorts = input.bool(true, title="Enable Short Trades", group="Strategy Settings")
enable_longs = input.bool(true, title="Enable Long Trades", group="Strategy Settings")

// ============================================================================
// INDICATOR CALCULATIONS
// ============================================================================

// Moving Averages
ema_fast = ta.ema(close, ema_fast_length)
ema_slow = ta.ema(close, ema_slow_length)

// RSI
rsi = ta.rsi(close, rsi_length)

// ATR
atr = ta.atr(atr_length)

// ============================================================================
// TREND IDENTIFICATION
// ============================================================================

// Primary trend based on EMA relationship
uptrend = ema_fast > ema_slow
downtrend = ema_fast < ema_slow

// ============================================================================
// ENTRY CONDITIONS
// ============================================================================

// Long Entry Conditions
long_trend_ok = uptrend and enable_longs
long_pullback = math.abs(close - ema_fast) <= (pullback_distance * atr) and close < ema_fast[1]
long_rsi_oversold = rsi[1] < rsi_oversold
long_rsi_recovery = rsi > rsi_oversold and rsi[1] <= rsi_oversold
long_entry_condition = long_trend_ok and long_pullback and long_rsi_oversold and long_rsi_recovery

// Short Entry Conditions  
short_trend_ok = downtrend and enable_shorts
short_pullback = math.abs(close - ema_fast) <= (pullback_distance * atr) and close > ema_fast[1]
short_rsi_overbought = rsi[1] > rsi_overbought
short_rsi_decline = rsi < rsi_overbought and rsi[1] >= rsi_overbought
short_entry_condition = short_trend_ok and short_pullback and short_rsi_overbought and short_rsi_decline

// ============================================================================
// POSITION SIZING
// ============================================================================

// Calculate position size based on risk per trade and ATR stop distance
calculate_position_size(entry_price, stop_price, risk_percent) =>
    risk_amount = strategy.equity * (risk_percent / 100)
    stop_distance = math.abs(entry_price - stop_price)
    position_size = stop_distance > 0 ? risk_amount / stop_distance : 0
    position_size

// ============================================================================
// STRATEGY VARIABLES
// ============================================================================

var float long_entry_price = na
var float long_stop_price = na
var float long_tp1_price = na
var float long_trail_stop = na
var bool long_tp1_hit = false

var float short_entry_price = na
var float short_stop_price = na
var float short_tp1_price = na
var float short_trail_stop = na
var bool short_tp1_hit = false

// ============================================================================
// LONG TRADE MANAGEMENT
// ============================================================================

// Long Entry
if long_entry_condition and strategy.position_size == 0
    long_entry_price := close
    long_stop_price := close - (atr_stop_mult * atr)
    long_tp1_price := close + (reward_ratio * (close - long_stop_price))
    long_trail_stop := long_stop_price
    long_tp1_hit := false
    
    // Calculate position size
    pos_size = calculate_position_size(long_entry_price, long_stop_price, risk_per_trade)
    strategy.entry("Long", strategy.long, qty=pos_size)
    strategy.exit("Long Stop", "Long", stop=long_stop_price)

// Long TP1 Management (Take 50% profit at 2:1 R:R)
if strategy.position_size > 0 and not long_tp1_hit and high >= long_tp1_price
    long_tp1_hit := true
    strategy.close("Long", qty_percent=50, comment="TP1 - 50%")
    // Move stop to breakeven
    long_trail_stop := long_entry_price
    strategy.cancel("Long Stop")

// Long Trailing Stop (for remaining 50% position)
if strategy.position_size > 0 and long_tp1_hit
    // Calculate new trailing stop
    highest_since_tp1 = ta.highest(high, 1)
    new_trail_stop = highest_since_tp1 - (atr_trail_mult * atr)
    
    // Only move stop up, never down
    if new_trail_stop > long_trail_stop
        long_trail_stop := new_trail_stop
    
    // Exit on trailing stop or trend reversal
    if close <= long_trail_stop or not uptrend
        strategy.close("Long", comment=not uptrend ? "Trend Reversal" : "Trailing Stop")

// ============================================================================
// SHORT TRADE MANAGEMENT
// ============================================================================

// Short Entry
if short_entry_condition and strategy.position_size == 0
    short_entry_price := close
    short_stop_price := close + (atr_stop_mult * atr)
    short_tp1_price := close - (reward_ratio * (short_stop_price - close))
    short_trail_stop := short_stop_price
    short_tp1_hit := false
    
    // Calculate position size
    pos_size = calculate_position_size(short_entry_price, short_stop_price, risk_per_trade)
    strategy.entry("Short", strategy.short, qty=pos_size)
    strategy.exit("Short Stop", "Short", stop=short_stop_price)

// Short TP1 Management (Take 50% profit at 2:1 R:R)
if strategy.position_size < 0 and not short_tp1_hit and low <= short_tp1_price
    short_tp1_hit := true
    strategy.close("Short", qty_percent=50, comment="TP1 - 50%")
    // Move stop to breakeven
    short_trail_stop := short_entry_price
    strategy.cancel("Short Stop")

// Short Trailing Stop (for remaining 50% position)
if strategy.position_size < 0 and short_tp1_hit
    // Calculate new trailing stop
    lowest_since_tp1 = ta.lowest(low, 1)
    new_trail_stop = lowest_since_tp1 + (atr_trail_mult * atr)
    
    // Only move stop down, never up
    if new_trail_stop < short_trail_stop
        short_trail_stop := new_trail_stop
    
    // Exit on trailing stop or trend reversal
    if close >= short_trail_stop or not downtrend
        strategy.close("Short", comment=not downtrend ? "Trend Reversal" : "Trailing Stop")

// ============================================================================
// PLOTTING
// ============================================================================

// Plot EMAs
plot(ema_fast, title="EMA 50", color=color.blue, linewidth=2)
plot(ema_slow, title="EMA 200", color=color.red, linewidth=2)

// Color background based on trend
bgcolor(uptrend ? color.new(color.green, 95) : downtrend ? color.new(color.red, 95) : na, title="Trend Background")

// Plot RSI levels (scaled to price for visualization)
hline(rsi_overbought, title="RSI Overbought", color=color.red, linestyle=hline.style_dashed)
hline(rsi_oversold, title="RSI Oversold", color=color.green, linestyle=hline.style_dashed)

// Plot entry signals
plotshape(long_entry_condition, title="Long Entry", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.normal)
plotshape(short_entry_condition, title="Short Entry", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.normal)

// Plot stop losses and targets for current position
plot(strategy.position_size > 0 ? long_trail_stop : na, title="Long Trailing Stop", color=color.red, style=plot.style_stepline, linewidth=2)
plot(strategy.position_size < 0 ? short_trail_stop : na, title="Short Trailing Stop", color=color.red, style=plot.style_stepline, linewidth=2)

plot(strategy.position_size > 0 and not long_tp1_hit ? long_tp1_price : na, title="Long TP1", color=color.green, style=plot.style_cross, linewidth=2)
plot(strategy.position_size < 0 and not short_tp1_hit ? short_tp1_price : na, title="Short TP1", color=color.green, style=plot.style_cross, linewidth=2)

// ============================================================================
// INFORMATION DISPLAY (Using Labels instead of Table)
// ============================================================================

// Display key information using labels on the last bar
if barstate.islast
    // Create info label with key metrics
    trend_text = uptrend ? "UP" : downtrend ? "DOWN" : "SIDE"
    position_text = strategy.position_size > 0 ? "LONG" : strategy.position_size < 0 ? "SHORT" : "NONE"
    
    info_text = "Trend: " + trend_text + "\nRSI: " + str.tostring(math.round(rsi, 1)) + "\nATR: " + str.tostring(math.round(atr, 2)) + "\nPosition: " + position_text
    
    label.new(bar_index, high + atr, info_text, 
              color=uptrend ? color.new(color.green, 80) : downtrend ? color.new(color.red, 80) : color.new(color.gray, 80),
              textcolor=color.white, style=label.style_label_down, size=size.normal)

// ============================================================================
// ALERTS
// ============================================================================

// Alert conditions
alertcondition(long_entry_condition, title="Long Entry Signal", message="LONG: Swing trading signal for {{ticker}} at {{close}}")
alertcondition(short_entry_condition, title="Short Entry Signal", message="SHORT: Swing trading signal for {{ticker}} at {{close}}")
alertcondition(strategy.position_size > 0 and long_tp1_hit, title="Long TP1 Hit", message="LONG TP1: First target hit for {{ticker}} at {{close}}")
alertcondition(strategy.position_size < 0 and short_tp1_hit, title="Short TP1 Hit", message="SHORT TP1: First target hit for {{ticker}} at {{close}}")

// ============================================================================
// STRATEGY SUMMARY
// ============================================================================

// This strategy implements the full swing trading approach described in the document:
// 1. Trend filtering using 50/200 EMA (only trade with the trend)
// 2. RSI momentum for entry timing (buy oversold in uptrend, sell overbought in downtrend)
// 3. ATR-based position sizing and stop losses (volatility-adjusted risk management)
// 4. Partial profit taking at 2:1 R:R (50% of position)
// 5. Trailing stops for remaining position using ATR
// 6. Trend reversal exits (close all when trend changes)
//
// Key Features:
// - Configurable parameters for different market conditions
// - Risk management with consistent 1% risk per trade
// - Visual indicators for trend, signals, and trade management
// - Information table showing key metrics
// - Alert system for automated notifications
//
// Recommended for: BTC, ETH, XRP on daily timeframes
// Holding period: 1-5 days typical