دوہری حرکت پذیر اوسط کراس اوور حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-10-07 15:18:44
ٹیگز:

جائزہ

یہ دوہری حرکت پذیر اوسط کراس اوور پر مبنی تجارتی حکمت عملی ہے۔ یہ مارکیٹ کے رجحانات کا تعین کرنے اور تجارتی سگنل پیدا کرنے کے لئے تیز اور سست حرکت پذیر اوسط کے مابین تعامل کا استعمال کرتی ہے۔ جب تیز ایم اے سست ایم اے سے اوپر عبور کرتا ہے تو ، خرید کا اشارہ پیدا ہوتا ہے۔ جب تیز ایم اے سست ایم اے سے نیچے عبور کرتا ہے تو ، فروخت کا اشارہ پیدا ہوتا ہے۔

اصول

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

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

فوائد

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

خطرات

  • ڈبل ایم اے کراس اوورز میں وقت کی تاخیر ہوتی ہے اور موڑ کے مقامات کو یاد کر سکتے ہیں
  • رینج مارکیٹوں کے لئے موزوں نہیں، زیادہ غلط سگنل پیدا کر سکتے ہیں
  • ایم اے مدت کی غلط ترتیب سے حساسیت یا سست روی کا سبب بن سکتا ہے
  • رجحان کے تناظر اور وقت کی تصدیق کے لئے دیگر اشارے کی ضرورت ہے

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

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

خلاصہ

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


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

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © KivancOzbilgic


//@version=4
strategy("pomila", overlay=true)
Periods = input(title="ATR Period", type=input.integer, defval=10)
src = input(hl2, title="Source")
Multiplier = input(title="ATR Multiplier", type=input.float, step=0.1, defval=3.0)
changeATR= input(title="Change ATR Calculation Method ?", type=input.bool, defval=true)
showsignals = input(title="Show Buy/Sell Signals ?", type=input.bool, defval=false)
highlighting = input(title="Highlighter On/Off ?", type=input.bool, defval=true)
barcoloring = input(title="Bar Coloring On/Off ?", type=input.bool, defval=true)
atr2 = sma(tr, Periods)
atr= changeATR ? atr(Periods) : atr2
up=src-(Multiplier*atr)
up1 = nz(up[1],up)
up := close[1] > up1 ? max(up,up1) : up
dn=src+(Multiplier*atr)
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title="Up Trend", style=plot.style_linebr, linewidth=2, color=color.green)
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal ? up : na, title="UpTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.green, transp=0)
plotshape(buySignal and showsignals ? up : na, title="Buy", text="Buy", location=location.absolute, style=shape.labelup, size=size.tiny, color=color.green, textcolor=color.white, transp=0)
dnPlot = plot(trend == 1 ? na : dn, title="Down Trend", style=plot.style_linebr, linewidth=2, color=color.red)
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal ? dn : na, title="DownTrend Begins", location=location.absolute, style=shape.circle, size=size.tiny, color=color.red, transp=0)
plotshape(sellSignal and showsignals ? dn : na, title="Sell", text="Sell", location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.red, textcolor=color.white, transp=0)
mPlot = plot(ohlc4, title="", style=plot.style_circles, linewidth=0)
longFillColor = highlighting ? (trend == 1 ? color.green : color.white) : color.white
shortFillColor = highlighting ? (trend == -1 ? color.red : color.white) : color.white
fill(mPlot, upPlot, title="UpTrend Highligter", color=longFillColor)
fill(mPlot, dnPlot, title="DownTrend Highligter", color=shortFillColor)
FromMonth = input(defval = 9, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2018, title = "From Year", minval = 999)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 999)
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
window()  => time >= start and time <= finish ? true : false
longCondition = buySignal
if (longCondition)
    strategy.entry("BUY", strategy.long, when = window())
shortCondition = sellSignal
if (shortCondition)
    strategy.entry("SELL", strategy.short, when = window())
buy1= barssince(buySignal)
sell1 = barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na
barcolor(barcoloring ? color1 : na)

مزید