کثیر ماڈل موم بتی پیٹرن مجموعہ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-17 15:53:06
ٹیگز:

img

جائزہ

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

اصول

اس حکمت عملی کا بنیادی منطق کئی موم بتی پیٹرن کی شناخت کے قوانین کی تعمیر اور پھر ان قوانین کو یکجا کرکے تجارتی سگنل پیدا کرنا ہے.

سب سے پہلے، یہ موم بتی کے جسم کے سائز، کھلی قیمت، بند قیمت وغیرہ جیسے موم بتی کی خصوصیات کی وضاحت کرنے کے لئے کچھ بنیادی متغیرات کی وضاحت کرتا ہے.

پھر بندش کی قیمت اور افتتاحی قیمت کے درمیان تعلقات کی بنیاد پر، یہ 3 قسم کے ٹریڈنگ بار کی وضاحت کرتا ہے: 1 بڑھنے کے لئے، -1 گرنے کے لئے اور 0 کوئی تبدیلی نہیں.

اس بنیاد پر، 3 موم بتی پیٹرن کی شناخت کے قوانین تعمیر کر رہے ہیں:

  1. نگلنے کا نمونہ: موجودہ موم بتی پچھلی موم بتی کو نگل جاتی ہے ، خرید یا فروخت کے سگنل پیدا کرتی ہے۔

  2. حرامی پیٹرن: پچھلی موم بتی موجودہ موم بتی کو نگل جاتی ہے، خریدنے یا فروخت کرنے کے سگنل پیدا کرتی ہے۔

  3. ہارامی کراس پیٹرن: ہارامی اور ڈوجی کا امتزاج ، خرید یا فروخت کے سگنل پیدا کرنا۔

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

تجارتی منطق پہلے موجودہ پوزیشن کی جانچ کرتی ہے۔ اگر سگنل کی سمت سے متصادم ہے تو ، یہ پہلے موجودہ پوزیشن بند کردے گی ، پھر سگنل کے مطابق نئی پوزیشن کھول دے گی۔

فوائد

  • مجموعہ استحکام کو بڑھا دیتا ہے۔ واحد نمونہ مخصوص مارکیٹ کے حالات کا شکار ہے۔ مجموعہ قابل اعتماد کو بہتر بنا سکتا ہے۔

  • تصدیق سے درستگی میں اضافہ ہوتا ہے۔ مختلف نمونوں میں ایک دوسرے کی تصدیق ہوتی ہے۔ غلط سگنل سے بچا جا سکتا ہے۔

  • لچک۔ صارفین آزادانہ طور پر ماڈلز کو جوڑ سکتے ہیں اور مارکیٹ کی مختلف حرکیات کے لئے پیرامیٹرز کو ایڈجسٹ کرسکتے ہیں۔

  • خطرہ کنٹرول۔ سٹاپ نقصان اور پوزیشن ہینڈلنگ منطق خطرات کو مؤثر طریقے سے منظم کرتی ہے۔

خطرات

  • پیچیدگی۔ زیادہ پیرامیٹرز کا مطلب زیادہ پیچیدگی ہے۔ غلط امتزاج کارکردگی کو کمزور کرسکتا ہے۔

  • پیرامیٹر ٹیوننگ کے لیے مہارت کی ضرورت ہوتی ہے۔ مناسب پیٹرن پیرامیٹرز کو کیسے ترتیب دیا جائے اس کے لیے تجربہ کی ضرورت ہوتی ہے۔

  • ایک طرفہ ہولڈنگ کا خطرہ۔ لمبا یا مختصر صرف منافع کی صلاحیت کو محدود کرتا ہے۔ لمبا اور مختصر دونوں کی اجازت دینا مددگار ثابت ہوسکتا ہے۔

  • ریورس پوائنٹس کی کمی۔ نمونوں پر توجہ مرکوز کرنے سے رجحان کی تبدیلی کے اشارے نظر سے غائب ہوجاتے ہیں۔ دوسرے اشارے شامل کرنے سے ممکنہ ریورس پوائنٹس کی نشاندہی کرنے میں مدد مل سکتی ہے۔

بہتری

  • ہولڈنگ کے خطرے کو کم کرنے کے لئے سٹاپ نقصان شامل کریں.

  • مجموعی رجحان کا تعین کرنے کے لئے دیگر تکنیکی اشارے شامل کریں ، بڑے رجحان کے خلاف تجارت سے گریز کریں۔ مثال کے طور پر MACD ، بولنگر بینڈ وغیرہ۔

  • مختلف مصنوعات میں ٹیسٹ ماڈل پیرامیٹرز، ہر مصنوعات کے مطابق بہترین پیرامیٹر سیٹ قائم.

  • اے آئی کا استعمال کرتے ہوئے پیرامیٹرز اور پیٹرن کی شناخت کو بہتر بنانے میں مدد کے لئے مشین لرننگ متعارف کروائیں۔

نتیجہ

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


/*backtest
start: 2022-10-10 00:00:00
end: 2023-10-16 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro
//2018

//@version=3
strategy(title = "Noro's CandleModels Tests", shorttitle = "CandleModels tests", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")

eng = input(true, defval = true, title = "Model Engulfing")
har = input(true, defval = true, title = "Model Harami")
harc = input(true, defval = true, title = "Model Harami Cross")

fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
rev = input(false, defval = false, title = "Reversive trading")

//Body
body = abs(close - open)
abody = sma(body, 10)

//MinMax Bars
min = min(close, open)
max = max(close, open)

//Signals
bar = close > open ? 1 : close < open ? -1 : 0
doji = body < abody / 10
up1 = eng and bar == 1 and bar[1] == -1 and min <= min[1] and max >= max[1]
dn1 = eng and bar == -1 and bar[1] == 1 and min <= min[1] and max >= max[1]
up2 = har and bar == 1 and bar[1] == -1 and min >= min[1] and max <= max[1]
dn2 = har and bar == -1 and bar[1] == 1 and min >= min[1] and max <= max[1]
up3 = harc and doji and bar[1] == -1 and low >= min[1] and high <= max[1]
dn3 = harc and doji and bar[1] == 1 and low >= min[1] and high <= max[1]
exit = ((strategy.position_size > 0 and bar == 1) or (strategy.position_size < 0 and bar == -1)) and body > abody / 2 and rev == false

//Trading
if up1 or up2 or up3
    if strategy.position_size < 0
        strategy.close_all()
        
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))

if dn1 or dn2 or dn3
    if strategy.position_size > 0
        strategy.close_all()
        
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na, when=(time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
    
if time > timestamp(toyear, tomonth, today, 23, 59) or exit
    strategy.close_all()

مزید