اتار چڑھاؤ کے موافق ہیکن اسچ اے ٹی آر ٹریلنگ اسٹاپ ٹرینڈ ٹریڈنگ حکمت عملی

ATR EMA HEIKIN ASHI Trailing Stop TREND FOLLOWING volatility STOP LOSS
تخلیق کی تاریخ: 2025-08-18 17:33:13 آخر میں ترمیم کریں: 2025-08-18 17:33:13
کاپی: 0 کلکس کی تعداد: 283
2
پر توجہ دیں
319
پیروکار

اتار چڑھاؤ کے موافق ہیکن اسچ اے ٹی آر ٹریلنگ اسٹاپ ٹرینڈ ٹریڈنگ حکمت عملی اتار چڑھاؤ کے موافق ہیکن اسچ اے ٹی آر ٹریلنگ اسٹاپ ٹرینڈ ٹریڈنگ حکمت عملی

جائزہ

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

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

اس حکمت عملی کا بنیادی اصول کئی اہم تکنیکی اجزاء کے تعاون پر مبنی ہے:

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

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

  3. EMA کراس سگنل پیدا: داخلہ اور باہر نکلنے کے سگنل ہیکناش قیمت اور اشاریہ منتقل اوسط ((EMA) کے مابین تعامل سے اخذ کیے جاتے ہیں۔ ان دونوں اجزاء کے مابین کراسنگ کے واقعات کا استعمال معروضی طور پر متحرک تبدیلیوں کی شناخت کرنے کے لئے کیا جاتا ہے ، جس سے ممکنہ طور پر کثیر جہتی داخلہ یا باہر نکلنے کے سگنل ملتے ہیں۔

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

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

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

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

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

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

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

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

  5. بصری آراء اور نگرانیانٹیگریٹڈ انفارمیشن ٹیبل اور بصری اشارے ریئل ٹائم پالیسی کی حیثیت اور کلیدی ڈیٹا پوائنٹس فراہم کرتے ہیں ، جس سے فوری تشخیص اور نگرانی میں مدد ملتی ہے ، اور فیصلہ سازی کی صلاحیت میں اضافہ ہوتا ہے۔

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

  7. صرف کثیر حکمت عملی ڈیزائناس کے علاوہ ، اس نے کہا: “یہ ایک بہت بڑا فائدہ ہے ، خاص طور پر کچھ کریپٹو کرنسیوں کی طرح طویل مدتی منفی منڈیوں کے لئے۔”

اسٹریٹجک رسک

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

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

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

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

  5. واحد تکنیکی اشارے پر انحصاریہ حکمت عملی بنیادی طور پر اے ٹی آر اور ای ایم اے کے اشارے پر انحصار کرتی ہے ، بنیادی عوامل یا دیگر تکنیکی اشارے کو مدنظر نہیں رکھتی ہے ، اور اس سے مارکیٹ کے اہم موڑ سے محروم ہوسکتا ہے۔

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

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

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

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

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

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

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

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

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

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

  8. مشین لرننگ انٹیگریشن: پیرامیٹرز کے انتخاب کو بہتر بنانے یا بہترین انٹری / آؤٹ پٹ پوائنٹس کی پیش گوئی کرنے کے لئے مشین لرننگ ٹکنالوجی کی تلاش ، حکمت عملی کی کارکردگی کو مزید بڑھا سکتی ہے اور اس میں ذہنی مداخلت کو کم کیا جاسکتا ہے۔

خلاصہ کریں۔

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

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

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

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

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

//@version=6
strategy(title="Mutanabby_AI | ATR+ | ")  // Ensures realistic execution

// 📊 INPUT PARAMETERS
//=============================================================================
a = input.int(1, title="🔧 Key Value (Sensitivity)", minval=1, maxval=10, 
              tooltip="Lower = More signals, Higher = Fewer signals")
c = input.int(10, title="📈 ATR Period", minval=1, maxval=500,
              tooltip="Period for ATR calculation")

// 🕯️ HEIKIN ASHI METHOD SELECTION
//=============================================================================
ha_method = input.string("Manual Calculation", title="🕯️ Heikin Ashi Method", 
                         options=["Manual Calculation", "ticker.heikinashi()", "Regular Candles"], 
                         tooltip="Manual = Most reliable, ticker.heikinashi = Good, Regular = Standard OHLC")

// 🛡️ STOP LOSS SETTINGS
//=============================================================================
use_stop_loss = input.bool(false, title="🛡️ Enable Stop Loss", 
                           tooltip="Enable stop loss at entry price level")
stop_loss_type = input.string("Percentage", title="📊 Stop Loss Type", 
                               options=["Percentage", "Fixed Points"], 
                               tooltip="Choose stop loss calculation method")
stop_loss_percent = input.float(2.0, title="📉 Stop Loss %", minval=0.1, maxval=50.0, step=0.1,
                                 tooltip="Stop loss percentage below entry price")
stop_loss_points = input.float(10.0, title="📉 Stop Loss Points", minval=0.1, step=0.1,   tooltip="Stop loss in price points below entry price")



// Date condition
date_condition = true

// 🎨 VISUAL SETTINGS
//=============================================================================
show_signals = input.bool(true, title="🎯 Show Buy/Sell Signals")
show_trailing_stop = input.bool(true, title="📈 Show ATR Trailing Stop")
show_stop_loss = input.bool(true, title="🛡️ Show Stop Loss Line")
show_bar_colors = input.bool(true, title="🎨 Color Bars")
show_position_info = input.bool(true, title="📊 Show Position Info")

// 🧮 HEIKIN ASHI CALCULATIONS
//=============================================================================

// METHOD 1: MANUAL HEIKIN ASHI CALCULATION (MOST RELIABLE)
//=============================================================================
// Manual HA calculation - most transparent and reliable
var float ha_open_manual = na
ha_close_manual = (open + high + low + close) / 4
ha_open_manual := na(ha_open_manual[1]) ? (open + close) / 2 : (ha_open_manual[1] + ha_close_manual[1]) / 2
ha_high_manual = math.max(high, math.max(ha_open_manual, ha_close_manual))
ha_low_manual = math.min(low, math.min(ha_open_manual, ha_close_manual))

// METHOD 2: TICKER.HEIKINASHI() (GOOD ALTERNATIVE)
//=============================================================================
// Get Heikin Ashi data via ticker.heikinashi() - non-repainting
ha_ticker = ticker.heikinashi(syminfo.tickerid)
[ha_open_ticker, ha_high_ticker, ha_low_ticker, ha_close_ticker] =   request.security(ha_ticker, timeframe.period, [open[1], high[1], low[1], close[1]],  lookahead=barmerge.lookahead_on)  // Use confirmed bars to prevent repainting

// METHOD 3: REGULAR CANDLES
//=============================================================================
// Regular OHLC data
ha_open_regular = open
ha_high_regular = high
ha_low_regular = low
ha_close_regular = close

// SELECT METHOD BASED ON USER INPUT
//=============================================================================
src = ha_method == "Manual Calculation" ? ha_close_manual : 
      ha_method == "ticker.heikinashi()" ? ha_close_ticker : ha_close_regular

source_open = ha_method == "Manual Calculation" ? ha_open_manual : 
              ha_method == "ticker.heikinashi()" ? ha_open_ticker : ha_open_regular
              
source_high = ha_method == "Manual Calculation" ? ha_high_manual : 
              ha_method == "ticker.heikinashi()" ? ha_high_ticker : ha_high_regular
              
source_low = ha_method == "Manual Calculation" ? ha_low_manual : 
             ha_method == "ticker.heikinashi()" ? ha_low_ticker : ha_low_regular

// 📊 ATR TRAILING STOP CALCULATION
//=============================================================================
// Calculate True Range using selected method
tr1 = source_high - source_low
tr2 = math.abs(source_high - src[1])
tr3 = math.abs(source_low - src[1])
tr = math.max(tr1, math.max(tr2, tr3))

// ATR calculation
xATR = ta.sma(tr, c)
nLoss = a * xATR

// ATR Trailing Stop logic
var float xATRTrailingStop = na
xATRTrailingStop := if src > nz(xATRTrailingStop[1], 0) and src[1] > nz(xATRTrailingStop[1], 0)
    math.max(nz(xATRTrailingStop[1]), src - nLoss)
else if src < nz(xATRTrailingStop[1], 0) and src[1] < nz(xATRTrailingStop[1], 0)
    math.min(nz(xATRTrailingStop[1]), src + nLoss)
else if src > nz(xATRTrailingStop[1], 0)
    src - nLoss
else
    src + nLoss

// Position state tracking
var int pos = na
pos := if src[1] < nz(xATRTrailingStop[1], 0) and src > nz(xATRTrailingStop[1], 0)
    1
else if src[1] > nz(xATRTrailingStop[1], 0) and src < nz(xATRTrailingStop[1], 0)
    -1
else
    nz(pos[1], 0)

// 🎯 SIGNAL GENERATION
//=============================================================================
// EMA for crossover detection
ema_val = ta.ema(src, 1)

// Crossover conditions
above = ta.crossover(ema_val, xATRTrailingStop)
below = ta.crossover(xATRTrailingStop, ema_val)

// Buy and sell signals
buy_signal = src > xATRTrailingStop and above
sell_signal = src < xATRTrailingStop and below

// Trend direction
is_uptrend = src > xATRTrailingStop
is_downtrend = src < xATRTrailingStop

// 🛡️ STOP LOSS CALCULATION
//=============================================================================
var float entry_price = na
var float stop_loss_level = na

// Calculate stop loss level
calculate_stop_loss(entry_price_val) =>
    if stop_loss_type == "Percentage"
        entry_price_val * (1 - stop_loss_percent / 100)
    else
        entry_price_val - stop_loss_points

// 📈 LONG ONLY STRATEGY LOGIC
//=============================================================================
var bool in_long_position = false

// Entry condition: Buy signal when not in position
long_entry = buy_signal and date_condition and not in_long_position

// Exit conditions - CRITICAL: Use real prices for stop loss, not HA prices
atr_exit = sell_signal and date_condition and in_long_position
stop_loss_hit = use_stop_loss and in_long_position and low <= stop_loss_level  // Uses real low price

// Combined exit condition
long_exit = atr_exit or stop_loss_hit

// Execute trades - Orders execute at REAL market prices
if long_entry
    strategy.entry("LONG", strategy.long, comment="🚀 LONG")
    in_long_position := true
    entry_price := close  // REAL entry price, not HA price
    stop_loss_level := use_stop_loss ? calculate_stop_loss(entry_price) : na

if long_exit
    exit_reason = stop_loss_hit ? "🛡️ STOP LOSS" : "💰 ATR EXIT"
    strategy.close("LONG", comment=exit_reason)
    in_long_position := false
    entry_price := na
    stop_loss_level := na

// 🎨 VISUAL ELEMENTS
//=============================================================================
// Trailing stop line color
stop_color = pos == 1 ? color.green : pos == -1 ? color.red : color.blue

// Plot ATR Trailing Stop
plot(show_trailing_stop ? xATRTrailingStop : na, 
     color=stop_color, 
     linewidth=2, 
     title="ATR Trailing Stop")

// Plot Stop Loss Level
plot(show_stop_loss and use_stop_loss and in_long_position ? stop_loss_level : na,
     color=color.new(color.red, 0), 
     linewidth=2, 
     style=plot.style_linebr,
     title="Stop Loss Level")

// Plot buy/sell signals
plotshape(show_signals and buy_signal, 
          title="Buy Signal", 
          text="BUY", 
          style=shape.labelup, 
          location=location.belowbar,
          color=color.new(color.green, 0), 
          textcolor=color.white, 
          size=size.small)

plotshape(show_signals and sell_signal, 
          title="Sell Signal", 
          text="SELL", 
          style=shape.labeldown, 
          location=location.abovebar,
          color=color.new(color.red, 0), 
          textcolor=color.white, 
          size=size.small)

// Plot stop loss hit signal
plotshape(show_signals and stop_loss_hit, 
          title="Stop Loss Hit", 
          text="SL", 
          style=shape.labeldown, 
          location=location.abovebar,
          color=color.new(color.orange, 0), 
          textcolor=color.white, 
          size=size.small)

// Bar coloring
barcolor(show_bar_colors ? (is_uptrend ? color.new(color.green, 70) : 
         is_downtrend ? color.new(color.red, 70) : na) : na)

// Position status background
bgcolor(show_position_info and strategy.position_size > 0 ?  color.new(color.green, 95) : show_position_info and strategy.position_size == 0 ?   color.new(color.gray, 98) : na,   title="Position Status")

// Entry price line - shows REAL entry price
plot(show_position_info and strategy.position_size > 0 ? strategy.position_avg_price : na,
     color=color.new(color.blue, 0), 
     linewidth=1, 
     style=plot.style_linebr, 
     title="Entry Price")

// 📊 INFORMATION TABLE
//=============================================================================
if show_position_info and barstate.islast
    var table info_table = table.new(position.top_right, 3, 11, 
                                      bgcolor=color.white, 
                                      border_width=1,
                                      border_color=color.gray,
                                      frame_width=1,
                                      frame_color=color.black)
    
    // Table headers
    table.cell(info_table, 0, 0, "Mutanabby_AI | Manual HA | ATR | SL", text_color=color.white, bgcolor=color.blue, text_size=size.small)
    table.cell(info_table, 1, 0, "", text_color=color.white, bgcolor=color.blue)
    table.cell(info_table, 2, 0, "", text_color=color.white, bgcolor=color.blue)
    
    // Strategy info
    table.cell(info_table, 0, 1, "HA Method:", text_color=color.rgb(10, 10, 10), text_size=size.small)
    method_color = ha_method == "Manual Calculation" ? color.green : 
                   ha_method == "ticker.heikinashi()" ? color.blue : color.gray
    table.cell(info_table, 1, 1, ha_method, text_color=method_color, text_size=size.small)
    
    table.cell(info_table, 0, 2, "Key Value:", text_color=color.rgb(10, 10, 10), text_size=size.small)
    table.cell(info_table, 1, 2, str.tostring(a), text_color=color.blue, text_size=size.small)
    
    table.cell(info_table, 0, 3, "ATR Period:", text_color=color.rgb(2, 2, 2), text_size=size.small)
    table.cell(info_table, 1, 3, str.tostring(c), text_color=color.blue, text_size=size.small)
    
    table.cell(info_table, 0, 4, "Stop Loss:", text_color=color.rgb(3, 3, 3), text_size=size.small)
    table.cell(info_table, 1, 4, use_stop_loss ? "ON" : "OFF", 
               text_color=use_stop_loss ? color.green : color.gray, text_size=size.small)
    
    table.cell(info_table, 0, 5, "Position:", text_color=color.rgb(3, 3, 3), text_size=size.small)
    table.cell(info_table, 1, 5, strategy.position_size > 0 ? "LONG" : "NONE", 
               text_color=strategy.position_size > 0 ? color.green : color.gray, text_size=size.small)
    
    table.cell(info_table, 0, 6, "Trend:", text_color=color.rgb(0, 0, 0), text_size=size.small)
    table.cell(info_table, 1, 6, is_uptrend ? "UP" : "DOWN", 
               text_color=is_uptrend ? color.green : color.red, text_size=size.small)
    
    table.cell(info_table, 0, 7, "Current Price:", text_color=color.black, text_size=size.small)
    table.cell(info_table, 1, 7, str.tostring(close, "#.##"), text_color=color.black, text_size=size.small)
    
    table.cell(info_table, 0, 8, "Trailing Stop:", text_color=color.black, text_size=size.small)
    table.cell(info_table, 1, 8, str.tostring(xATRTrailingStop, "#.##"), text_color=color.blue, text_size=size.small)
    
    // Show stop loss level if enabled and in position
    if use_stop_loss and in_long_position
        table.cell(info_table, 0, 9, "Stop Loss:", text_color=color.black, text_size=size.small)
        table.cell(info_table, 1, 9, str.tostring(stop_loss_level, "#.##"), text_color=color.red, text_size=size.small)
    else
        table.cell(info_table, 0, 9, "Stop Loss:", text_color=color.black, text_size=size.small)
        table.cell(info_table, 1, 9, "N/A", text_color=color.gray, text_size=size.small)
    
    table.cell(info_table, 0, 10, "Last Signal:", text_color=color.black, text_size=size.small)
    signal_text = buy_signal ? "BUY" : sell_signal ? "SELL" : stop_loss_hit ? "STOP LOSS" : "NONE"
    signal_color = buy_signal ? color.green : sell_signal ? color.red : stop_loss_hit ? color.orange : color.gray
    table.cell(info_table, 1, 10, signal_text, text_color=signal_color, text_size=size.small)

// 🚨 ALERTS
//=============================================================================
// Alert conditions
alertcondition(buy_signal, title="🚀 Mutanabby_AI | ATR+ LONG Entry", 
               message="Mutanabby_AI | ATR+ : BUY signal at {{close}}")

alertcondition(sell_signal, title="💰 Mutanabby_AI | ATR+ LONG Exit", 
               message="Mutanabby_AI | ATR+ : SELL signal at {{close}}")

alertcondition(stop_loss_hit, title="🛡️ Mutanabby_AI | ATR+ Stop Loss Hit", 
               message="Mutanabby_AI | ATR+ : STOP LOSS hit at {{close}}")

alertcondition(buy_signal or sell_signal or stop_loss_hit, title="🔔 Mutanabby_AI | ATR+ Any Signal", 
               message="Mutanabby_AI| ATR+ : {{ticker}} - {{close}} - Signal: {{strategy.position_size > 0 ? 'EXIT' : 'ENTRY'}}")

//=============================================================================
// 📝 STRATEGY NOTES:
//
// 🎯 OPTIMAL IMPLEMENTATION for realistic backtesting:
// 📈 Uses manual HA calculation for transparency and reliability
// 💰 Orders execute at REAL market prices (not synthetic HA prices)  
// 🛡️ Stop loss uses real market prices for accurate risk management
// 🔧 Multiple HA methods available for comparison and validation
// ⚡ Added fill_orders_on_standard_ohlc=true for extra protection
// 
// 🎯 METHOD COMPARISON:
// 🥇 Manual Calculation: Most reliable, transparent, no external dependencies
// 🥈 ticker.heikinashi(): Good alternative, uses confirmed bars to prevent repainting
// 🥉 Regular Candles: Standard OHLC for comparison purposes
//
// 💡 BEST PRACTICES IMPLEMENTED:
// ✅ Always run on regular candlestick charts (not native HA charts)
// ✅ Use confirmed/historical HA values to prevent repainting
// ✅ Execute all orders at real market prices
// ✅ Stop loss based on real prices, not synthetic HA prices
// ✅ Entry price tracking uses actual fill prices
// ✅ Transparent calculation methods for verification
//
// 🚨 AVOID:
// ❌ Running strategies directly on TradingView's native HA charts
// ❌ Using current bar HA values (causes repainting)
// ❌ Stop loss based on HA prices instead of real prices
//=============================================================================