
یہ حکمت عملی ایک دوہری متحرک اشارے توڑنے کی حکمت عملی ہے۔ یہ دو مختلف پیرامیٹرز کی ترتیب کے متحرک اشارے کا استعمال کرتا ہے ، اور جب دونوں متحرک اشارے صفر محور کو توڑ دیتے ہیں تو تجارتی سگنل پیدا ہوتا ہے۔ یہ حکمت عملی صرف ایک سے زیادہ اندراجات کرتی ہے ، اور خالی سر صرف خالی پوزیشنوں کے لئے استعمال ہوتا ہے۔
کوڈ سب سے پہلے پالیسی کی صفات کو ترتیب دیتا ہے، جیسے کہ کمیشن موڈ، فیس موڈ وغیرہ۔ پھر یہ دو متحرک اشارے کا حساب لگاتا ہے:
// 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 ایک متحرک اشارے ہے جس کی لمبائی 1 ہے اور اس کا ماخذ mom0 ہے۔
mom2 اصل اعداد و شمار i_src سے ماخوذ ہے ، جس کی لمبائی 1 ہے۔
حتمی طور پر استعمال ہونے والا متحرک اشارے momX پہلے سے طے شدہ mom1 ہے ، یا mom2 کو بھی منتخب کیا جاسکتا ہے۔
جب mom0 اور momX ایک ہی وقت میں 0 محور سے اوپر ہوں تو ، زیادہ کام کریں۔ جب mom0 اور momX ایک ہی وقت میں 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")