ڈبل مومنٹم بریک آؤٹ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-16 17:00:54
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

کوڈ سب سے پہلے حکمت عملی کی خصوصیات مقرر کرتا ہے جیسے آرڈر کی قسم ، کمیشن کی اسکیم وغیرہ۔ پھر یہ دو رفتار کے اشارے کا حساب لگاتا ہے:

// 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 لائن سے نیچے کی خلاف ورزی کرتے ہیں تو ، قریب کی پوزیشن۔

حکمت عملی کے فوائد

  1. مختلف ترتیبات کے ساتھ دوہری رفتار کے اشارے کا استعمال کرتے ہوئے دوہری تصدیق اور کم جھوٹے سگنل کے ساتھ سگنل کی وشوسنییتا کو بہتر بناتا ہے۔

  2. صرف طویل اندراجات کرنا اور باہر نکلنے کے لئے شارٹس کا استعمال کرنا تجارتی تعدد کو کم کرتا ہے اور لین دین کی لاگت کو کم کرتا ہے۔

  3. لچکدار رفتار پیرامیٹر ایڈجسٹمنٹ مختلف مارکیٹ کے ماحول کے مطابق.

  4. صاف کوڈ کی ساخت، سمجھنے اور تبدیل کرنے کے لئے آسان.

  5. تجارتی پیغامات فعال، آٹو ٹریڈنگ کے نظام کے ساتھ اچھی طرح سے ضم.

اسٹریٹجی کے خطرات

  1. دوہری رفتار غلط سگنل کو کم کرتے ہوئے کمزور رجحان سگنل کو نظر انداز کر سکتی ہے.

  2. صرف طویل اندراجات کے ساتھ مختصر تجارت کے مواقع سے محروم.

  3. غلط رفتار پیرامیٹر کی ترتیبات سے زیادہ ٹریڈنگ یا تاخیر سے سگنل ہوتے ہیں۔

  4. ناکافی بیک ٹیسٹ کے اعداد و شمار پیرامیٹر اوور فٹنگ کا سبب بنتے ہیں.

  5. ڈبل تصدیق سے غلط سگنل کم ہوتے ہیں لیکن ختم نہیں ہوتے، براہ راست تجارت میں درستگی پر نظر رکھنے کی ضرورت ہے۔

اصلاح کی ہدایات

  1. لمبائی اور فی صد پیرامیٹرز کے مجموعے کو ٹیسٹ کریں تاکہ زیادہ سے زیادہ تلاش کیا جا سکے۔

  2. مزید تجارتوں کو پکڑنے کے لئے رجحان کی تصدیق کے بعد مختصر تجارتی سگنل شامل کرنے پر غور کریں۔

  3. بہتر نتائج کے لیے مختلف رفتار کے حساب جیسے آر او سی، آر ایس آئی وغیرہ کی جانچ کریں۔

  4. وِپسا مارکیٹوں سے بچنے کے لیے ٹرینڈ فلٹرنگ شامل کریں۔

  5. زیادہ سے زیادہ منافع کے لیے اسٹاپ نقصان کو بہتر بنائیں۔

نتیجہ

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


/*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")

مزید