ڈبل موونگ ایوریج کراس اوور مومنٹم اسٹریٹجی


تخلیق کی تاریخ: 2023-11-16 17:25:13 آخر میں ترمیم کریں: 2023-11-16 17:25:13
کاپی: 0 کلکس کی تعداد: 651
1
پر توجہ دیں
1617
پیروکار

ڈبل موونگ ایوریج کراس اوور مومنٹم اسٹریٹجی

جائزہ

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

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

حکمت عملی تیز EMA اور سست EMA کا استعمال کرتے ہوئے دوہری مساوی لائنوں کی تعمیر کرتی ہے ، تیز رفتار لائنوں کو ٹرینڈ کی سمت کا تعین کرنے کے لئے استعمال کیا جاتا ہے۔ اس کے ساتھ ساتھ ، MACD اور سگنل کا حساب کتاب کیا جاتا ہے ، اور اس کے فرق کو سیدھے چارٹ کے طور پر ڈرائنگ کیا جاتا ہے۔

کوڈ کے مطابق ، تیز لائن کی لمبائی 12 ہے ، اور لمبی لائن کی لمبائی 26 ہے ، جو قلیل مدتی اور طویل مدتی رجحانات کی نمائندگی کرتی ہے۔ سگنل کی لمبائی 9 ہے ، جس میں اضافی ہموار عملدرآمد ہوتا ہے۔

کراس منطق:

  • trend_up = macd > signal: مختصر مدت کے لئے اوپر کی طرف رجحان کی نمائندگی کرنے کے لئے تیز لائن پر سست لائن کو توڑنا
  • trend_dn = macd < signal: تیز لائن کے نیچے سست لائن کو عبور کریں ، جو قلیل مدتی نیچے کی طرف رجحان کی نمائندگی کرتا ہے

کراس پوائنٹ کا فیصلہ:

  • cross_UP = signal[1] >= macd[1] and signal < macd: تیز لائن نیچے سے سست لائن کو پار کرتی ہے
  • cross_DN = signal[1] <= macd[1] and signal > macd: فاسٹ لائن اوپر سے نیچے سے سست لائن کو پار کرتی ہے

رجحان کی شدت کا اندازہ لگانے کے لئے عمودی چارٹ میں رنگ کی تبدیلی:

  • histA_IsUp = عمودی چارٹ کا ستون بڑھتا ہے اور 0 سے بڑا ہوتا ہے ، بڑھتی ہوئی طاقت کو ظاہر کرتا ہے
  • histA_IsDown = عمودی چارٹ کا ستون کم اور 0 سے بڑا ہے ، جس سے بڑھتی ہوئی طاقت کم ہوتی ہے
  • ذیل میں مساوی

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

  1. وسط مدتی رجحانات کی سمت کا تعین کرنے کے لئے دوہری مساوات کا استعمال کریں تاکہ قلیل مدتی مارکیٹ کے شور سے بچ سکیں۔

  2. MACD اشارے قلیل مدتی رجحانات اور طاقت کا اندازہ لگانے میں معاون ہیں ، جس سے منافع کے امکانات میں اضافہ ہوتا ہے

  3. عمودی نقشے کا رنگ تبدیل کرنے سے طاقت کا اندازہ ہوتا ہے ، جس سے داخلہ کا بہتر وقت معلوم ہوتا ہے

  4. کراس پوائنٹس کے پس منظر کے نشانات، ایک نظر میں

  5. مختلف مارکیٹ کے حالات کے مطابق اپنی مرضی کے مطابق اوسط لکیری دورانیہ

  6. MACD پیرامیٹرز کو ایڈجسٹ کریں تاکہ اشارے کے اثرات کو بہتر بنایا جاسکے

  7. متعدد داخلہ کی تصدیق کی پیش کش: یکساں سمت ، اشارے کا کراس ، شکل کی پیشرفت

اسٹریٹجک رسک

  1. باہمی مساوات کا اندازہ لگانا کہ درمیانی مدت کے رجحانات قلیل مدتی اتار چڑھاؤ کے لئے حساس نہیں ہیں ، ممکنہ طور پر شارٹ لائن کے مواقع سے محروم ہوجائیں

  2. MACD پیرامیٹرز کی غلط ترتیب ، اشارے کی خراب کارکردگی ، غلط سگنل

  3. صرف اوسط لائن اور MACD سگنل کے ساتھ اندراج ، کچھ اندھا پن موجود ہے

  4. نقصان سے بچنے کے لئے نکلنے کے طریقہ کار پر غور نہیں کیا گیا ، نقصانات میں اضافے کا خطرہ ہے

  5. سخت فنڈ مینجمنٹ اور پوزیشن کنٹرول کا فقدان

ممکنہ حل:

  1. دیگر اشارے کے ساتھ مل کر مختصر مدت کے اتار چڑھاو کی حد کو محدود کریں ، خطرے کو کنٹرول کریں

  2. MACD پیرامیٹرز کو بہتر بنائیں اور مختلف مارکیٹوں میں اثر انداز ہوں

  3. شکل، لمحہ اور دیگر عوامل کی تصدیق کے سگنل میں اضافہ

  4. نقصانات کو روکنے کے لئے اقدامات

  5. فنڈ مینجمنٹ ماڈیول میں شامل ہونا ، فنڈ کے سائز کے مطابق ایک پوزیشن کو کنٹرول کرنا

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

  1. زیادہ سے زیادہ مارکیٹ کے حالات کے لئے موزوں اوسط پیرامیٹرز کے مجموعے کو بہتر بنانے کی جانچ

  2. VWAP، برین بینڈ میڈین لائن وغیرہ کی طرح مختلف اقسام کی کوشش کریں

  3. ٹریفک کی تعداد میں اضافے پر غور، جعلی کامیابیوں سے بچنے کے لیے

  4. RSI اور دیگر اشارے کے ساتھ مل کر ، اوورلوڈ اور اوور سیل کی تصدیق

  5. نقصانات کو روکنے کے لئے ایک اچھی طرح سے قائم میکانیزم، جیسے کہ نقل و حرکت کی روک تھام، جھٹکا روک تھام وغیرہ.

  6. پوزیشن مینجمنٹ میکانزم میں شامل ہونا ، جس میں فنڈز کی مقدار کے مطابق ایک پوزیشن پر قابو پایا جاتا ہے

  7. مشین لرننگ الگورتھم کے ساتھ پیرامیٹرز کی اصلاح پر غور کیا جاسکتا ہے

  8. Universe کی توسیع کی حکمت عملی ، پورٹ فولیو کی گہرائی

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2022-11-15 00:00:00
end: 2023-11-15 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy(title="Histogram MacD MVP_V2.1", shorttitle="Histogram MacD MVP_2.1")
//Plot Inputs
res           = input.timeframe("",  "Indicator TimeFrame")
fast_length   = input.int(title="Fast Length", defval=12)
slow_length   = input.int(title="Slow Length", defval=26)
src           = input.source(title="Source", defval=close)
signal_length = input.int(title="Signal Smoothing", minval = 1, maxval = 999, defval = 9)
sma_source    = input.string(title="Oscillator MA Type", defval="EMA", options=["SMA", "EMA"])
sma_signal    = input.string(title="Signal Line MA Type", defval="EMA", options=["SMA", "EMA"])
// Show Plots T/F
show_macd     = input.bool(true, title="Show MACD Lines", group="Show Plots?", inline="SP10")
show_macd_LW  = input.int(3, minval=0, maxval=5, title = "MACD Width", group="Show Plots?", inline="SP11")
show_signal_LW= input.int(2, minval=0, maxval=5, title = "Signal Width", group="Show Plots?", inline="SP11")
show_Hist     = input.bool(true, title="Show Histogram", group="Show Plots?", inline="SP20")
show_hist_LW  = input.int(5, minval=0, maxval=5, title = "-- Width", group="Show Plots?", inline="SP20")
show_trend    = input.bool(true, title = "Show MACD Lines w/ Trend Color", group="Show Plots?", inline="SP30")
show_HB       = input.bool(false, title="Show Highlight Price Bars", group="Show Plots?", inline="SP40")
show_cross    = input.bool(false, title = "Show BackGround on Cross", group="Show Plots?", inline="SP50")
show_dots     = input.bool(true, title = "Show Circle on Cross", group="Show Plots?", inline="SP60")
show_dots_LW  = input.int(5, minval=0, maxval=5, title = "-- Width", group="Show Plots?", inline="SP60")

//show_trend    = input(true, title = "Colors MACD Lines w/ Trend Color", group="Show Plots?", inline="SP5")
// MACD Lines colors
col_macd      = input.color(#FF6D00, "MACD Line  ",  group="Color Settings", inline="CS1")
col_signal    = input.color(#2962FF, "Signal Line  ",  group="Color Settings", inline="CS1")
col_trnd_Up   = input.color(#4BAF4F, "Trend Up      ",  group="Color Settings", inline="CS2")
col_trnd_Dn   = input.color(#B71D1C, "Trend Down    ",  group="Color Settings", inline="CS2")
// Histogram Colors
col_grow_above = input.color(#26A69A, "Above   Grow",  group="Histogram Colors", inline="Hist10")
col_fall_above = input.color(#FF5252, "Fall",  group="Histogram Colors", inline="Hist10")
col_grow_below = input.color(#FF5252, "Below Grow",  group="Histogram Colors", inline="Hist20")
col_fall_below = input.color(#f8f524, "Fall",  group="Histogram Colors", inline="Hist20")
// Alerts T/F Inputs
alert_Long    = input.bool(true, title = "MACD Cross Up", group = "Alerts", inline="Alert10")
alert_Short   = input.bool(true, title = "MACD Cross Dn", group = "Alerts", inline="Alert10")
alert_Long_A  = input.bool(false, title = "MACD Cross Up & > 0", group = "Alerts", inline="Alert20")
alert_Short_B = input.bool(false, title = "MACD Cross Dn & < 0", group = "Alerts", inline="Alert20")
// Calculating
fast_ma = request.security(syminfo.tickerid, res, sma_source == "SMA" ? ta.sma(src, fast_length) : ta.ema(src, fast_length))
slow_ma = request.security(syminfo.tickerid, res, sma_source == "SMA" ? ta.sma(src, slow_length) : ta.ema(src, slow_length))
macd = fast_ma - slow_ma
signal = request.security(syminfo.tickerid, res, sma_signal == "SMA" ? ta.sma(macd, signal_length) : ta.ema(macd, signal_length))
hist = macd - signal
// MACD Trend and Cross Up/Down conditions
trend_up   = macd > signal
trend_dn   = macd < signal
cross_UP   = signal[1] >= macd[1] and signal < macd
cross_DN   = signal[1] <= macd[1] and signal > macd
cross_UP_A = (signal[1] >= macd[1] and signal < macd) and macd > 0
cross_DN_B = (signal[1] <= macd[1] and signal > macd) and macd < 0
// Condition that changes Color of MACD Line if Show Trend is turned on..
trend_col = show_trend  and trend_up ? col_trnd_Up : trend_up ? col_macd : show_trend  and trend_dn ? col_trnd_Dn: trend_dn ? col_macd : na 

//Var Statements for Histogram Color Change
var bool histA_IsUp = false
var bool histA_IsDown = false
var bool histB_IsDown = false
var bool histB_IsUp = false
histA_IsUp   := hist == hist[1] ? histA_IsUp[1] : hist > hist[1] and hist > 0
histA_IsDown := hist == hist[1] ? histA_IsDown[1] : hist < hist[1] and hist > 0
histB_IsDown := hist == hist[1] ? histB_IsDown[1] : hist < hist[1] and hist <= 0
histB_IsUp   := hist == hist[1] ? histB_IsUp[1] : hist > hist[1] and hist <= 0

hist_col =  histA_IsUp ? col_grow_above : histA_IsDown ? col_fall_above : histB_IsDown ? col_grow_below : histB_IsUp ? col_fall_below :color.silver 

// Plot Statements
//Background Color
bgcolor(show_cross and cross_UP ? col_trnd_Up : na, editable=false)
bgcolor(show_cross and cross_DN ? col_trnd_Dn : na, editable=false)
//Highlight Price Bars
barcolor(show_HB and trend_up ? col_trnd_Up : na, title="Trend Up", offset = 0, editable=false)
barcolor(show_HB and trend_dn ? col_trnd_Dn : na, title="Trend Dn", offset = 0, editable=false)
//Regular Plots
plot(show_Hist and hist ? hist : na, title="Histogram", style=plot.style_columns, color=color.new(hist_col ,0),linewidth=show_hist_LW)
plot(show_macd  and signal ? signal : na, title="Signal", color=color.new(col_signal, 0),  style=plot.style_line ,linewidth=show_signal_LW)
plot(show_macd  and macd ? macd : na, title="MACD", color=color.new(trend_col, 0),  style=plot.style_line ,linewidth=show_macd_LW)
hline(0, title="0 Line", color=color.new(color.gray, 0), linestyle=hline.style_dashed, linewidth=1, editable=false)
plot(show_dots and cross_UP ? macd : na, title="Dots", color=color.new(trend_col ,0), style=plot.style_circles, linewidth=show_dots_LW, editable=false)
plot(show_dots and cross_DN ? macd : na, title="Dots", color=color.new(trend_col ,0), style=plot.style_circles, linewidth=show_dots_LW, editable=false)

//Alerts
if alert_Long and cross_UP
    alert("Symbol = (" + syminfo.tickerid + ") TimeFrame = (" + timeframe.period + ") Current Price (" + str.tostring(close) + ") MACD Crosses Up.", alert.freq_once_per_bar_close)

if alert_Short and cross_DN
    alert("Symbol = (" + syminfo.tickerid + ") TimeFrame = (" + timeframe.period + ") Current Price (" + str.tostring(close) + ") MACD Crosses Down.", alert.freq_once_per_bar_close)
//Alerts - Stricter Condition - Only Alerts When MACD Crosses UP & MACD > 0 -- Crosses Down & MACD < 0
if alert_Long_A and cross_UP_A
    alert("Symbol = (" + syminfo.tickerid + ") TimeFrame = (" + timeframe.period + ") Current Price (" + str.tostring(close) + ") MACD > 0 And Crosses Up.", alert.freq_once_per_bar_close)

if alert_Short_B and cross_DN_B
    alert("Symbol = (" + syminfo.tickerid + ") TimeFrame = (" + timeframe.period + ") Current Price (" + str.tostring(close) + ") MACD < 0 And Crosses Down.", alert.freq_once_per_bar_close)


if (histA_IsUp)
	strategy.entry("buy", strategy.long, comment="buy")
if (histA_IsDown)
	strategy.entry("sell", strategy.short, comment="sell")