یہ ایک دوہری رفتار توڑنے کی حکمت عملی ہے۔ یہ مختلف پیرامیٹرز کی ترتیبات کے ساتھ دو رفتار اشارے کا استعمال کرتا ہے اور جب رفتار کے دونوں اشارے صفر لائن کو توڑ دیتے ہیں تو تجارتی سگنل تیار کرتا ہے۔ یہ حکمت عملی صرف لمبی اندراجات لیتی ہے اور مختصر صرف پوزیشنوں سے باہر نکلنے کے لئے استعمال ہوتی ہے۔
کوڈ سب سے پہلے حکمت عملی کی خصوصیات مقرر کرتا ہے جیسے آرڈر کی قسم ، کمیشن کی اسکیم وغیرہ۔ پھر یہ دو رفتار کے اشارے کا حساب لگاتا ہے:
// Momentum settings
****
i_len = input(defval = 12, title = "Length", minval = 1)
i_src = input(defval = close, title = "Source")
i_percent = input(defval = true, title = "Percent?")
i_mom = input(defval = "MOM2", title = "MOM Choice", options = ["MOM1", "MOM2"])
// Momentum code
mom0 = momentum(i_src, i_len, i_percent)
mom1 = momentum(mom0, 1, i_percent)
mom2 = momentum(i_src, 1, i_percent)
momX = mom1
if i_mom == "MOM2"
momX := mom2
mom0 لمبائی i_len کے ساتھ بیس رفتار اشارے ہے، اعداد و شمار کے ذریعہ i_src، فیصد کا حساب لگانے کا فیصلہ i_percent کی طرف سے کیا جاتا ہے۔
mom1 رفتار اشارے ہے mom0 ڈیٹا ماخذ کے طور پر اور لمبائی 1 کے ساتھ.
mom2 اصل اعداد و شمار i_src کے ذریعہ اور لمبائی 1 کے ساتھ رفتار اشارے ہے.
حتمی رفتار اشارے momX mom1 کرنے کے لئے ڈیفالٹ، بھی mom2 منتخب کر سکتے ہیں.
جب ماں0 اور ماںX دونوں 0 لائن سے اوپر کی خلاف ورزی کرتے ہیں تو ، طویل ہوجائیں۔ جب ماں0 اور ماںX دونوں 0 لائن سے نیچے کی خلاف ورزی کرتے ہیں تو ، قریب کی پوزیشن۔
مختلف ترتیبات کے ساتھ دوہری رفتار کے اشارے کا استعمال کرتے ہوئے دوہری تصدیق اور کم جھوٹے سگنل کے ساتھ سگنل کی وشوسنییتا کو بہتر بناتا ہے۔
صرف طویل اندراجات کرنا اور باہر نکلنے کے لئے شارٹس کا استعمال کرنا تجارتی تعدد کو کم کرتا ہے اور لین دین کی لاگت کو کم کرتا ہے۔
لچکدار رفتار پیرامیٹر ایڈجسٹمنٹ مختلف مارکیٹ کے ماحول کے مطابق.
صاف کوڈ کی ساخت، سمجھنے اور تبدیل کرنے کے لئے آسان.
تجارتی پیغامات فعال، آٹو ٹریڈنگ کے نظام کے ساتھ اچھی طرح سے ضم.
دوہری رفتار غلط سگنل کو کم کرتے ہوئے کمزور رجحان سگنل کو نظر انداز کر سکتی ہے.
صرف طویل اندراجات کے ساتھ مختصر تجارت کے مواقع سے محروم.
غلط رفتار پیرامیٹر کی ترتیبات سے زیادہ ٹریڈنگ یا تاخیر سے سگنل ہوتے ہیں۔
ناکافی بیک ٹیسٹ کے اعداد و شمار پیرامیٹر اوور فٹنگ کا سبب بنتے ہیں.
ڈبل تصدیق سے غلط سگنل کم ہوتے ہیں لیکن ختم نہیں ہوتے، براہ راست تجارت میں درستگی پر نظر رکھنے کی ضرورت ہے۔
لمبائی اور فی صد پیرامیٹرز کے مجموعے کو ٹیسٹ کریں تاکہ زیادہ سے زیادہ تلاش کیا جا سکے۔
مزید تجارتوں کو پکڑنے کے لئے رجحان کی تصدیق کے بعد مختصر تجارتی سگنل شامل کرنے پر غور کریں۔
بہتر نتائج کے لیے مختلف رفتار کے حساب جیسے آر او سی، آر ایس آئی وغیرہ کی جانچ کریں۔
وِپسا مارکیٹوں سے بچنے کے لیے ٹرینڈ فلٹرنگ شامل کریں۔
زیادہ سے زیادہ منافع کے لیے اسٹاپ نقصان کو بہتر بنائیں۔
یہ ایک عام ڈبل مومنٹم بریک آؤٹ حکمت عملی ہے۔ یہ غلط سگنلز کو کم کرنے کے لئے ڈبل تصدیق اور صرف طویل اندراجات کو کم تجارتی تعدد کے لئے استعمال کرتا ہے۔ فوائد سادگی اور نفاذ میں آسانی ہیں ، پیرامیٹر کی اصلاح اور رسک کنٹرول میں بہتری کے لئے بہت زیادہ گنجائش ہے۔ مجموعی طور پر یہ ایک معقول مومنٹم بریک آؤٹ فریم ورک کی حیثیت رکھتا ہے لیکن منافع بخش براہ راست تجارت کے لئے مارکیٹ کے مخصوص ٹیوننگ اور اصلاحات کی ضرورت ہے۔
/*backtest start: 2023-10-16 00:00:00 end: 2023-11-15 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Momentum Long Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash, commission_type = strategy.commission.percent, commission_value = 0, calc_on_every_tick = true) // There will be no short entries, only exits from long. strategy.risk.allow_entry_in(strategy.direction.long) // Calculate start/end date and time condition startDate = input(timestamp("2021-01-02T00:00:00"), title = "Start Date", type = input.time) finishDate = input(timestamp("2021-12-31T00:00:00"), title = "End Date",type = input.time) time_cond =true // Momentum settings i_len = input(defval = 12, title = "Length", minval = 1) i_src = input(defval = close, title = "Source") i_percent = input(defval = true, title = "Percent?") i_mom = input(defval = "MOM2", title = "MOM Choice", options = ["MOM1", "MOM2"]) // Messages for buy and sell message_buy = input("{{strategy.order.alert_message}}", title="Buy message") message_sell = input("{{strategy.order.alert_message}}", title="Sell message") // Momentum code momentum(seria, length, percent) => _mom = percent ? ( (seria / seria[length]) - 1) * 100 : seria - seria[length] _mom mom0 = momentum(i_src, i_len, i_percent) mom1 = momentum(mom0, 1, i_percent) mom2 = momentum(i_src, 1, i_percent) momX = mom1 if i_mom == "MOM2" momX := mom2 // Strategy Alerts if (mom0 > 0 and momX > 0 and time_cond) strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE", alert_message = message_buy) else strategy.cancel("MomLE") if (mom0 < 0 and momX < 0 and time_cond) strategy.entry("MomExit", strategy.short, stop = low - syminfo.mintick, comment = "MomSE", alert_message = message_sell) else strategy.cancel("MomExit") // Plotting plot(0, color = #5d606b, title = "ZERO") plot(mom0, color = #00bcd4, title = "MOM") plot(mom1, color = #00FF00, title = "MOM1", display = display.none) plot(mom2, color = #00FF00, title = "MOM2")