اسٹاکسٹکس اور کینڈل سٹک پیٹرن پر مبنی خودکار مارکیٹ الٹ جانے والی تجارتی حکمت عملی

ATR Candlestick Patterns Stochastic Oscillator risk management Reversal Trading
تخلیق کی تاریخ: 2025-03-03 10:03:52 آخر میں ترمیم کریں: 2025-03-03 10:03:52
کاپی: 4 کلکس کی تعداد: 484
2
پر توجہ دیں
319
پیروکار

اسٹاکسٹکس اور کینڈل سٹک پیٹرن پر مبنی خودکار مارکیٹ الٹ جانے والی تجارتی حکمت عملی اسٹاکسٹکس اور کینڈل سٹک پیٹرن پر مبنی خودکار مارکیٹ الٹ جانے والی تجارتی حکمت عملی

جائزہ

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

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

یہ حکمت عملی دو بنیادی تکنیکی اصولوں پر مبنی ہے: ٹوٹ پھوٹ کی شناخت اور رجحانات کی تصدیق فلٹرنگ.

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

  • کثیر سر سگنل: ہتھوڑا تار ((Hammer) ، الٹا ہتھوڑا تار ((Inverted Hammer) ، کثیر سر نگلنے کی شکل ((Bullish Engulfing) اور کثیر سر شروع ستارے نیچے ((Tweezer Bottom)
  • خلائی سگنل: ہینگ لائن ((Hanging Man) ، میٹور لائن ((Shooting Star) ، خلائی نگلنے کی شکل ((Bearish Engulfing) اور خلائی آغاز ستارہ ٹاپ ((Tweezer Top)

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

ٹرانزیکشن کی لاجسٹک مندرجہ ذیل ہے:

  1. ملٹی ہیڈ سگنل: جب اوور سیل زون ((bearZone) میں بریک آؤٹ کی شکل کی نشاندہی کی جاتی ہے تو ، سسٹم ملٹی ہیڈ پوزیشن میں جاتا ہے
  2. خالی سر سگنل: جب اوور بائی زون (bullZone) میں بھوک لگانے والا بھنڈار کی شکل کی نشاندہی کی جاتی ہے تو ، سسٹم خالی پوزیشن میں جاتا ہے

خطرے کے انتظام کے لئے ، حکمت عملی میں اے ٹی آر پر مبنی متحرک اسٹاپ نقصان کا طریقہ کار شامل ہے:

  • کثیر سر تجارت: اسٹاپ = داخلہ قیمت + (ATR × 1.5) ، اسٹاپ = داخلہ قیمت - (ATR × 1.0)
  • خالی سر تجارت: اسٹاپ = انٹری قیمت - (ATR × 1.5) ، اسٹاپ = انٹری قیمت + (ATR × 1.0)

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

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

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

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

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

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

  4. بصری ٹریڈنگ سگنلحکمت عملی خود کار طریقے سے چارٹ پر ٹریڈنگ سگنل کو نشان زد کرتی ہے ، جیسے “HAM” (بڑے پیمانے پر) ، “STAR” (میٹرو لائن) ، اور اسی طرح ، تاجر کو مارکیٹ کی حالت کو بصری طور پر پہچاننے کی اجازت دیتا ہے ، جس سے بیک اپ تجزیہ اور ریئل ٹائم مانیٹرنگ کی سہولت ملتی ہے۔

  5. فنڈ مینجمنٹ انٹیگریشنحکمت عملی: 10٪ اکاؤنٹ کے حقوق کا استعمال کرتے ہوئے ہر ٹرانزیکشن کے لئے فنڈ کی تقسیم کے طور پر، ضرورت کے مطابق ایڈجسٹ کیا جاسکتا ہے، مکمل فنڈ مینجمنٹ کی کارکردگی کو پورا کرنے کے لئے، زیادہ سے زیادہ تجارت اور فنڈ کے خطرات سے بچنے کے لئے.

  6. کمیشن کی لاگت پر غوراسٹریٹجی بلٹ ان کمیشن کا حساب لگایا گیا ہے (ڈیفالٹ 0.1٪) ، جس سے واپسی کے نتائج کو حقیقی تجارتی ماحول سے قریب تر کیا جاسکتا ہے ، اور اس سے تاجروں کو حکمت عملی کی کارکردگی کا اندازہ لگانے کے دوران تجارت کی لاگت کو پورا کرنے میں مدد ملتی ہے۔

اسٹریٹجک رسک

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

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

  2. پیرامیٹرز کو بہتر بنانے کا جالحل: آؤٹ آف سیمپل ٹیسٹنگ کا استعمال کرتے ہوئے پیرامیٹرز کی استحکام کی توثیق کریں تاکہ ضرورت سے زیادہ فٹ ہونے سے بچا جاسکے۔

  3. سگنل جامحل: سگنل کی تصدیق کے طریقہ کار کو شامل کریں ، جیسے کہ دو مسلسل K لائنوں کی تصدیق کی ضرورت ہے ، یا تجارت کے وقفے کی حد میں اضافہ کریں۔

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

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

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

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

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

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

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

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

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

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

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

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

خلاصہ کریں۔

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

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

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

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

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

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © tradingbauhaus

//@version=6
strategy("Bauhaus Reversal Master", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10, commission_type=strategy.commission.percent, commission_value=0.1)

// Yo! Let's set some user controls
atrLen = input.int(14, title="ATR Period for Risk")
profitTarget = input.float(1.5, title="Profit Target (ATR x)")
stopLoss = input.float(1.0, title="Stop Loss (ATR x)")
trendLen = input.int(14, "Trend Lookback", minval=2)
thresh = input.float(80, "Reversal Threshold", minval=0, maxval=100)
smoothPeriod = input.float(20, "Smoothing Warmup", minval=1)

// Candlestick toggles because we love options
bullStuff = "Bullish Vibes"
bearStuff = "Bearish Blues"
hammerOn = input.bool(true, "Hammer Time", group=bullStuff, inline="b1")
invHammerOn = input.bool(true, "Upside-Down Hammer", group=bullStuff, inline="b2")
bullEngulfOn = input.bool(true, "Bullish Munch", group=bullStuff, inline="b3")
tweezerBotOn = input.bool(true, "Bottom Tweezers", group=bullStuff, inline="b4")
hangManOn = input.bool(true, "Hanging Dude", group=bearStuff, inline="r1")
shootStarOn = input.bool(true, "Falling Star", group=bearStuff, inline="r2")
bearEngulfOn = input.bool(true, "Bearish Gobble", group=bearStuff, inline="r3")
tweezerTopOn = input.bool(true, "Top Tweezers", group=bearStuff, inline="r4")

// Trend magic
var float smoothK = 0.0
alphaSmooth = 2 / (smoothPeriod + 1)
kTrend = ta.stoch(close, close, close, trendLen)
smoothK := kTrend > 50 ? smoothK + (100 - smoothK) * alphaSmooth : kTrend < 50 ? smoothK + (0 - smoothK) * alphaSmooth : kTrend
bullZone = kTrend >= thresh and smoothK >= thresh
bearZone = kTrend <= (100 - thresh) and smoothK <= (100 - thresh)

// Candle math because we’re nerds
redCandle = close < open
greenCandle = close > open
candleTop = math.max(open, close)
candleBot = math.min(open, close)
fullRange = high - low
bodySize = candleTop - candleBot
upperWickP = ((high - candleTop) / fullRange) * 100
lowerWickP = ((candleBot - low) / fullRange) * 100
bodyP = (bodySize / fullRange) * 100
isDoji = math.round_to_mintick(close) == math.round_to_mintick(open)

// Bullish signals, let’s catch that bounce
hammerSig = hammerOn and (lowerWickP > (bodyP * 2) and bodyP < 50 and upperWickP < 2 and not isDoji) and bearZone
invHammerSig = invHammerOn and (upperWickP > (bodyP * 2) and bodyP < 50 and lowerWickP < 2 and not isDoji) and bearZone
bullEngulfSig = bullEngulfOn and redCandle[1] and greenCandle and (bodySize > (bodySize[1] / 2)) and (open < close[1]) and candleTop > candleTop[1] and bearZone[1]
tweezerBotSig = tweezerBotOn and (math.round_to_mintick(low) - math.round_to_mintick(low[1]) == 0) and greenCandle and redCandle[1] and bearZone[1]

// Bearish signals, time to drop
shootStarSig = shootStarOn and (upperWickP > (bodyP * 2) and bodyP < 50 and lowerWickP < 2 and not isDoji) and bullZone
hangManSig = hangManOn and (lowerWickP > (bodyP * 2) and bodyP < 50 and upperWickP < 2 and not isDoji) and bullZone
bearEngulfSig = bearEngulfOn and greenCandle[1] and redCandle and (bodySize > (bodySize[1] / 2)) and (open > close[1]) and candleBot < candleBot[1] and bullZone[1]
tweezerTopSig = tweezerTopOn and (math.round_to_mintick(high) - math.round_to_mintick(high[1]) == 0) and redCandle and greenCandle[1] and bullZone[1]

// Risk management, keep the cash safe
atrVal = ta.atr(atrLen)
longProfit = close + atrVal * profitTarget
longStop = close - atrVal * stopLoss
shortProfit = close - atrVal * profitTarget
shortStop = close + atrVal * stopLoss

// Let’s trade, baby!
if hammerSig or invHammerSig or bullEngulfSig or tweezerBotSig
    strategy.entry("GoLong", strategy.long)
    strategy.exit("LongExit", "GoLong", limit=longProfit, stop=longStop)

if shootStarSig or hangManSig or bearEngulfSig or tweezerTopSig
    strategy.entry("GoShort", strategy.short)
    strategy.exit("ShortExit", "GoShort", limit=shortProfit, stop=shortStop)

// Slap some labels on this chart
if hammerSig
    label.new(bar_index, low, "HAM", color=color(na), textcolor=color.green, style=label.style_label_up, size=size.tiny)
if invHammerSig
    label.new(bar_index, low, "INV", color=color(na), textcolor=color.green, style=label.style_label_up, size=size.tiny)
if bullEngulfSig
    label.new(bar_index, low, "BULL", color=color(na), textcolor=color.green, style=label.style_label_up, size=size.tiny)
if tweezerBotSig
    label.new(bar_index, low, "TWZB", color=color(na), textcolor=color.green, style=label.style_label_up, size=size.tiny)
if shootStarSig
    label.new(bar_index, high, "STAR", color=color(na), textcolor=color.red, style=label.style_label_down, size=size.tiny)
if hangManSig
    label.new(bar_index, high, "HANG", color=color(na), textcolor=color.red, style=label.style_label_down, size=size.tiny)
if bearEngulfSig
    label.new(bar_index, high, "BEAR", color=color(na), textcolor=color.red, style=label.style_label_down, size=size.tiny)
if tweezerTopSig
    label.new(bar_index, high, "TWZT", color=color(na), textcolor=color.red, style=label.style_label_down, size=size.tiny)