اتار چڑھاؤ اور والیوم کمپوزٹ انڈیکس کا رجحان مندرجہ ذیل حکمت عملی

SMA FIBONACCI volatility VOLUME TREND FOLLOWING REVERSAL PATTERN
تخلیق کی تاریخ: 2025-05-26 13:20:39 آخر میں ترمیم کریں: 2025-05-26 13:20:39
کاپی: 0 کلکس کی تعداد: 378
2
پر توجہ دیں
319
پیروکار

اتار چڑھاؤ اور والیوم کمپوزٹ انڈیکس کا رجحان مندرجہ ذیل حکمت عملی اتار چڑھاؤ اور والیوم کمپوزٹ انڈیکس کا رجحان مندرجہ ذیل حکمت عملی

جائزہ

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

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

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

  1. حجم تجزیہ: سادہ منتقل اوسط ((SMA) کا استعمال کرتے ہوئے تجارت کی اوسط مقدار ((vol_ma) کا حساب لگائیں ، اور موجودہ تجارت کی مقدار کو اوسط سے موازنہ کریں ، جس سے فی صد اشارے ((vol_percent = volume / vol_ma * 100) }} حاصل ہو۔

  2. اتار چڑھاؤ کی شرح کا حسابقیمتوں میں اتار چڑھاؤ کی مقدار کی پیمائش کرنے کے لئے ، K لائن میں اضافے اور اختتامی قیمتوں کے تناسب کا حساب لگائیں (تذبذب = (اعلی - کم) / قریبی * 100) ۔

  3. کمپوزڈ انڈیکس تعمیر: تجارت کے حجم کا فیصد اتار چڑھاؤ کی شرح کے ساتھ مل کر ایک جامع اشارے ((volatility_index = volume * volatility) پیدا کرتا ہے ، جو ایک ہی وقت میں تجارت کے حجم اور قیمت میں اتار چڑھاؤ کی دوہری غیر معمولی عکاسی کرتا ہے۔

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

  5. متحرک کمی: index_threshold_magnification کے ساتھ طویل مدتی اوسط لائن کی ضرب کے ذریعے متحرک فلٹرنگ کی تعمیر مارکیٹ شور کو فلٹر کرنے کے لئے۔

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

  7. سگنل کی پیداوار

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

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

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

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

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

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

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

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

  7. پیرامیٹرز کے لئے مرضی کے مطابق: متعدد سایڈست پیرامیٹرز (vol_length ، index_short_length ، index_long_length ، وغیرہ) کی فراہمی ، جس سے تاجروں کو مختلف مارکیٹ کی خصوصیات اور ذاتی خطرے کی ترجیحات کے مطابق اپنی مرضی کے مطابق ترتیبات کی اجازت دی جاتی ہے۔

اسٹریٹجک رسک

  1. پیرامیٹر کی حساسیت کا خطرہیہ حکمت عملی متعدد پیرامیٹرز کی ترتیبات پر انحصار کرتی ہے ، جیسے تجارت کی اوسط لمبائی ((vol_length) ، اشاریہ اوسط لمبائی ((index_short_length ، index_long_length) وغیرہ۔ پیرامیٹرز کا غلط انتخاب ممکنہ طور پر ضرورت سے زیادہ فٹ ہونے یا سگنل کی تاخیر کا سبب بن سکتا ہے۔ حل: تاریخی پس منظر کی اصلاح کریں ، مختلف مارکیٹ کے حالات میں مستحکم کارکردگی کا مظاہرہ کرنے والے پیرامیٹرز کا مجموعہ تلاش کریں ، اور کسی خاص مدت کے اعداد و شمار کو زیادہ سے زیادہ بہتر بنانے سے گریز کریں۔

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

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

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

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

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

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

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

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

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

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

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

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

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

  8. متعلقہ فلٹرکثیر اثاثہ ٹریڈنگ کے منظر نامے میں ، متعلقہ تجزیہ ماڈیول کو شامل کریں ، ایک ہی وقت میں متعدد انتہائی متعلقہ اثاثوں پر ایک ہی سمت پوزیشن قائم کرنے سے گریز کریں ، اور سسٹم کے خطرے کو کم کریں۔

خلاصہ کریں۔

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

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

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2024-05-26 00:00:00
end: 2025-05-25 00:00:00
period: 2h
basePeriod: 2h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/

//@version=6
strategy("Volume and Volatility Ratio Indicator-WODI", overlay=false)

// === 用户自定义参数 ===
vol_length = input(48, title="交易量均线长度")  // 交易量均线长度
index_short_length = input(13, title="指数短均线长度")  // 交易量均线长度
index_long_length = input(26, title="指数均线长度")  // 交易量均线长度
index_magnification = input(2, title="指数均线敏感度")  // 调整指数倍率
index_threshold_magnification = input(200, title="指数阈值百分比")  // 交易量/波动率指数阈值
lookback_bars = input(3, title="K线形态检测长度")  // 形态检测 K 线数量

reversal_s = input.bool(title = "反转策略", defval = false, group="Position")
stopLossFib = input.float(title="止损斐波那契", defval=0, options=[0, 0.127, 0.236, 0.382, 0.5, 0.618, 0.692, 0.786, 1, 1.272, 1.414, 1.618, 2.272, 2.414, 2.618, 3, 3.414, 3.618, 4, 4.236, 4.272, 4.414, 5], group="Position")
takeProfitFib = input.float(title="止盈斐波那契", defval=1.618, options=[0, 0.127, 0.236, 0.382, 0.5, 0.618, 0.692, 0.786, 1, 1.272, 1.414, 1.618, 2.272, 2.414, 2.618, 3, 3.414, 3.618, 4, 4.236, 4.272, 4.414, 5], group="Position")


// === 计算交易量均线 ===
vol_ma = ta.sma(volume, vol_length)

// === 计算当前交易量为平均交易量的百分比 ===
vol_percent = volume / vol_ma * 100

// === 计算波动率(当前 K 线振幅) ===
volatility = (high - low) / close * 100


// === 计算交易量/波动率指数 ===
new_module = ((volume*volume)/volatility) //新算法,不好用
volatility_index =  volume*volatility //

// === 计算指数平均值,用平均值做触发阈值 ===
index_short_ma = ta.sma(volatility_index, index_short_length)
index_long_ma = ta.sma(volatility_index, index_long_length)

index_threshold_magnification_auto = index_long_ma * index_threshold_magnification /100

// === 计算前 lookback_bars 根 K 线的指数趋势 ===
is_reversal_pattern = false
is_reversal_pattern_s = false

for i = 1 to lookback_bars
    if volatility_index[1] > volatility_index[2] and (volatility_index[1] > volatility_index[0] or volume[1] > volume[0])and close[i+1] > close[i] and close[1] < close[0] and volume > vol_ma  and volatility_index > index_threshold_magnification_auto and ((open[1] - close[1] < close[1] - low[1]) or (open[0] - close[0] < close[0] - low[0]))
        if i >= lookback_bars 
            is_reversal_pattern := true
    else if i < lookback_bars
        break
        
for i = 1 to lookback_bars
    if volatility_index[1] > volatility_index[2] and (volatility_index[1] > volatility_index[0] or volume[1] > volume[0])and close[i+1] < close[i] and close[1] > close[0] and volume > vol_ma and volatility_index > index_threshold_magnification_auto and ((close[1] - open[1] < high[1] - close[1]) or (close[0] - open[0] < high[0] - close[0]))
        if i >= lookback_bars 
            is_reversal_pattern_s := true
    else if i < lookback_bars
        break


// === 绘制指标 ===
//plot(vol_ma, color=color.rgb(158, 161, 170), linewidth = 1, title="交易量均线")
//plot(index_short_ma * index_magnification, color=color.gray, linewidth = 1, title="指数短均线")
//plot(index_long_ma * index_magnification, color=#2ad7f6, linewidth = 1, title="指数长均线")
plot(index_threshold_magnification_auto, color=color.rgb(238, 66, 193), linewidth = 1, title="波动率阈值")

// === 交易量柱状图(高亮大于均值的交易量) ===
bar_color = volume > vol_ma ? (is_reversal_pattern? #bc2af6 : (is_reversal_pattern_s? #f22a2a : color.rgb(77, 231, 255, 37))) : color.rgb(120, 123, 134, 70)
plot(volatility_index*2, style=plot.style_columns, color=bar_color, title="交易量柱状图")
plot(volume, style=plot.style_stepline, color=#00000055, title="交易量")



// === 反转做多策略 ===
var float stop_loss = na
var float take_profit = na

if is_reversal_pattern and (reversal_s ? strategy.position_size >= 0 : strategy.position_size <= 0)
    bearish_low = low[1] < low[0]? low[1] : low [0]// 形态最低点
    bearish_high = high[lookback_bars] > high[0] ? high[lookback_bars] : high[0]// 形态最高点
    bearish_range = bearish_high - bearish_low  // 形态振幅

    // === 计算止损 (SL) 和止盈 (TP) ===
    stop_loss := reversal_s ? bearish_high + (bearish_range * stopLossFib) : bearish_low - (bearish_range * stopLossFib) //止损斐波那契
    take_profit := reversal_s ?  bearish_high - (bearish_range * takeProfitFib) : bearish_low + (bearish_range * takeProfitFib) //止盈斐波那契
    is_reversal_pattern := false
    strategy.entry(reversal_s ? "short" : "Long", reversal_s ? strategy.short : strategy.long)


if is_reversal_pattern_s and (reversal_s ? strategy.position_size <= 0 : strategy.position_size >= 0)
    bearish_low = low[lookback_bars] < low[0] ? low[lookback_bars] : low[0]// 形态低点
    bearish_high =  high[1] > high[0]? high[1] : high [0]// 形态高点
    bearish_range = bearish_high - bearish_low  // 形态振幅

    // === 计算止损 (SL) 和止盈 (TP) ===
    stop_loss := reversal_s ? bearish_low - (bearish_range * stopLossFib) : bearish_high + (bearish_range * stopLossFib) //止损斐波那契
    take_profit := reversal_s ? bearish_low + (bearish_range * takeProfitFib) : bearish_high - (bearish_range * takeProfitFib) //止盈斐波那契
    is_reversal_pattern_s := false
    strategy.entry(reversal_s ? "Long" : "short",  reversal_s ? strategy.long : strategy.short)


// === 止损 (SL) 和止盈 (TP) ===
if low[0] < stop_loss and strategy.position_size >= 0
    strategy.close("Long", qty_percent = 100)

if high[0] > take_profit and strategy.position_size >= 0
    strategy.close("Long", qty_percent = 100)

if high[0] > stop_loss and strategy.position_size <= 0
    strategy.close("short", qty_percent = 100)
    
if low[0] < take_profit and strategy.position_size <= 0
    strategy.close("short", qty_percent = 100)