وسائل لوڈ ہو رہے ہیں... لوڈنگ...

پانچ گنا مضبوط حرکت پذیر اوسط حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-05-23 18:14:35
ٹیگز:ای ایم اےڈبلیو ایم اےایس ایم اےٹی ایم اےVARڈبلیو ڈبلیو ایم اےZLEMAٹی ایس ایف

img

جائزہ

پانچ گنا مضبوط حرکت پذیر اوسط حکمت عملی متعدد حرکت پذیر اوسطوں پر مبنی تجارتی حکمت عملی ہے۔ یہ حکمت عملی مارکیٹ میں مضبوط رجحانات کی نشاندہی کرنے کے لئے مختلف ٹائم فریموں اور اقسام کے 5 حرکت پذیر اوسطوں کا استعمال کرتی ہے۔ پہلے 3 حرکت پذیر اوسط حکمت عملی کے بنیادی اجزاء ہیں ، بنیادی طور پر رجحان کی نشاندہی اور سگنل کی تخلیق کے لئے استعمال ہوتے ہیں ، جبکہ چوتھا اور پانچویں حرکت پذیر اوسط بنیادی طور پر معاون فیصلے اور بصری تجزیہ کے لئے استعمال ہوتے ہیں۔

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

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

اس حکمت عملی میں مختلف ٹائم فریم اور اقسام کے 5 چلتے ہوئے اوسط استعمال کیے جاتے ہیں، یعنی:

  1. سطح 1 چلتی اوسط: حسب ضرورت ڈسپلے، لیبل، ڈیٹا کا ذریعہ، وقت کی حد، لمبائی، لائن کی چوڑائی، رنگ اور قسم.
  2. سطح 2 چلتی اوسط: اپنی مرضی کے مطابق ڈسپلے، لیبل، ڈیٹا ماخذ، وقت کی حد، لمبائی، لائن کی چوڑائی، رنگ اور قسم.
  3. سطح 3 چلتی اوسط: اپنی مرضی کے مطابق ڈسپلے، لیبل، ڈیٹا کا ذریعہ، وقت کی حد، لمبائی، لائن کی چوڑائی، رنگ اور قسم.
  4. سطح 4 چلتی اوسط: بنیادی طور پر معاون فیصلے ، حسب ضرورت ڈسپلے ، لیبل ، ڈیٹا کا ماخذ ، ٹائم فریم ، لمبائی ، لائن کی چوڑائی اور رنگ کے لئے استعمال ہوتا ہے۔
  5. سطح 5 چلتی اوسط: بنیادی طور پر معاون فیصلے ، حسب ضرورت ڈسپلے ، لیبل ، ڈیٹا کا ذریعہ ، وقت کا فریم ، لمبائی ، لائن کی چوڑائی اور رنگ کے لئے استعمال ہوتا ہے۔

ان 5 حرکت پذیر اوسط کی اقسام کو لچکدار طریقے سے مقرر کیا جاسکتا ہے ، بشمول SMA ، EMA ، WMA ، TMA ، VAR ، WWMA ، ZLEMA ، TSF اور دیگر 8 اقسام۔

اس حکمت عملی کا بنیادی خیال مختلف ٹائم فریم اور اقسام کے چلتے ہوئے اوسط کی متعدد رجحان کی تصدیق کا استعمال کرتے ہوئے رجحان کی سمت اور طاقت کا تعین کرنا ہے:

  • جب اختتامی قیمت سطح 1، 2 اور 3 کے چلتے ہوئے اوسط سے زیادہ ہو تو، طویل عرصے تک جائیں؛
  • جب اختتامی قیمت سطح 1، 2 اور 3 کے چلتے ہوئے اوسط سے کم ہو تو، مختصر جائیں؛
  • اگر بند ہونے کی قیمت سطح 1 اور 2 کے چلتے ہوئے اوسط سے کم ہو جائے تو طویل پوزیشن رکھنے پر، طویل بند کریں؛
  • مختصر پوزیشن رکھنے کے وقت، اگر بند ہونے کی قیمت سطح 1 اور سطح 2 کے چلتے ہوئے اوسط سے زیادہ ہو تو، مختصر بند کر دیں۔

اس کے علاوہ اس حکمت عملی کو موجودہ پوزیشن کے مطابق شمعدانوں کا رنگ دکھائے گا:

  • جب ایک طویل پوزیشن کو برقرار رکھنے، موم بتی سبز ہے؛
  • مختصر پوزیشن رکھنے کے وقت شمعدان سرخ ہوتا ہے۔
  • دیگر صورتوں میں، شمعدان سرمئی ہے.

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

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

حکمت عملی کے خطرات

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

مذکورہ بالا خطرات کو کم کرنے کے لیے مندرجہ ذیل بہتری پر غور کیا جا سکتا ہے:

  1. غیر رجحان سازی مارکیٹوں میں تجارت کی تعداد کو کم کرنے کے لئے رینج بائنڈ مارکیٹ کا پتہ لگانے اور فیصلے کی منطق شامل کریں.
  2. ایک مضبوط زیادہ سے زیادہ پیرامیٹر مجموعہ تلاش کرنے کے لئے اس حکمت عملی پر کافی پیرامیٹر اصلاح ٹیسٹ انجام دیں.
  3. ایک ہی تجارت کے زیادہ سے زیادہ خطرے کو کنٹرول کرنے کے لئے معقول اسٹاپ نقصان کی سطح مقرر کریں۔ اسی وقت ، رجحان کی تبدیلیوں کی تصدیق اور بروقت انداز میں پوزیشنوں کو ایڈجسٹ کرنے کے لئے دوسرے اشارے یا سگنل استعمال کیے جاسکتے ہیں۔

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

  1. رجحان کی تصدیق کے مزید اشارے متعارف کروائیں، جیسے MACD، DMI، وغیرہ، رجحان کی تشخیص کی درستگی کو بہتر بنانے کے لئے.
  2. رینج بائنڈ مارکیٹوں کے لئے ، آپریٹنگ منطق متعارف کرانے پر غور کریں جو رینج بائنڈ مارکیٹوں کے مطابق ڈھال سکتے ہیں ، جیسے گرڈ ٹریڈنگ۔
  3. مختلف مارکیٹ کی خصوصیات کے لئے، موافقت کو بہتر بنانے کے لئے حکمت عملی کے پیرامیٹرز کو الگ الگ بہتر بنائیں.
  4. اس حکمت عملی کو دیگر حکمت عملیوں کے ساتھ جوڑنے پر غور کریں، جیسے رجحان کی حکمت عملی + حد بندی کی حکمت عملی، رجحان کی حکمت عملی + مخالف رجحان کی حکمت عملی وغیرہ کا مجموعہ، حکمت عملی کی مضبوطی کو بہتر بنانے کے لئے.

خلاصہ

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


/*backtest
start: 2023-05-17 00:00:00
end: 2024-05-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Quintuple Strong Moving Average Strategy","QuisMa", overlay=true, margin_long=100, margin_short=100)

// 1
mav1_show = input.bool(true, 'Show Plot', group='Level 1 ', inline='mav1_0')
mav1_label = input.bool(true, 'Show Label', group='Level 1 ', inline='mav1_0')
mav1_source = input.source(close, '', group='Level 1 ', inline='mav1_1')
mav1_timeframe = input.timeframe('5', '', group='Level 1 ', inline='mav1_1')
mav1_length = input.int(50, 'Length', group='Level 1 ', inline='mav1_3')
mav1_size = input.int(2000, 'Size', minval=1, group='Level 1 ', inline='mav1_3')
mav1_width = input.int(2, '', minval=0, group='Level 1 ', inline='mav1_2')
mav1_color = input.color(color.new(#ffd000, 0), '', group='Level 1 ', inline='mav1_2')
mav1_type = input.string(title='Moving Average Type 1', defval='VAR', options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF'])

// 2
mav2_show = input.bool(true, 'Show Plot', group='Level 2', inline='mav2_0')
mav2_label = input.bool(true, 'Show Label', group='Level 2', inline='mav2_0')
mav2_source = input.source(close, '', group='Level 2', inline='mav2_1')
mav2_timeframe = input.timeframe('30', '', group='Level 2', inline='mav2_1')
mav2_length = input.int(50, 'Length', group='Level 2', inline='mav2_3')
mav2_size = input.int(2000, 'Size', minval=1, group='Level 2', inline='mav2_3')
mav2_width = input.int(2, '', minval=0, group='Level 2', inline='mav2_2')
mav2_color = input.color(color.new(#ffd000, 0), '', group='Level 2', inline='mav2_2')
mav2_type = input.string(title='Moving Average Type 2', defval='VAR', options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF'])

// 3
mav3_show = input.bool(true, 'Show Plot', group='Level 3', inline='mav3_0')
mav3_label = input.bool(true, 'Show Label', group='Level 3', inline='mav3_0')
mav3_source = input.source(close, '', group='Level 3', inline='mav3_1')
mav3_timeframe = input.timeframe('60', '', group='Level 3', inline='mav3_1')
mav3_length = input.int(50, 'Length', group='Level 3', inline='mav3_3')
mav3_size = input.int(2000, 'Size', minval=1, group='Level 3', inline='mav3_3')
mav3_width = input.int(2, '', minval=0, group='Level 3', inline='mav3_2')
mav3_color = input.color(color.new(#ffd000, 0), '', group='Level 3', inline='mav3_2')
mav3_type = input.string(title='Moving Average Type 3', defval='VAR', options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF'])

// 4
mav4_show = input.bool(true, 'Show Plot', group='Level 4', inline='mav4_0')
mav4_label = input.bool(true, 'Show Label', group='Level 4', inline='mav4_0')
mav4_source = input.source(close, '', group='Level 4', inline='mav4_1')
mav4_timeframe = input.timeframe('480', '', group='Level 4', inline='mav4_1')
mav4_length = input.int(50, 'Length', group='Level 4', inline='mav4_3')
mav4_size = input.int(2000, 'Size', minval=1, group='Level 4', inline='mav4_3')
mav4_width = input.int(2, '', minval=0, group='Level 4', inline='mav4_2')
mav4_color = input.color(color.new(#ffd000, 0), '', group='Level 4', inline='mav4_2')
mav4_type = input.string(title='Moving Average Type 4', defval='VAR', options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF'])

// 5
mav5_show = input.bool(true, 'Show Plot', group='Level 5', inline='mav5_0')
mav5_label = input.bool(true, 'Show Label', group='Level 5', inline='mav5_0')
mav5_source = input.source(close, '', group='Level 5', inline='mav5_1')
mav5_timeframe = input.timeframe('720', '', group='Level 5', inline='mav5_1')
mav5_length = input.int(50, 'Length', group='Level 5', inline='mav5_3')
mav5_size = input.int(2000, 'Size', minval=1, group='Level 5', inline='mav5_3')
mav5_width = input.int(2, '', minval=0, group='Level 5', inline='mav5_2')
mav5_color = input.color(color.new(#ffd000, 0), '', group='Level 5', inline='mav5_2')
mav5_type = input.string(title='Moving Average Type 5', defval='VAR', options=['SMA', 'EMA', 'WMA', 'TMA', 'VAR', 'WWMA', 'ZLEMA', 'TSF'])


// FUNCTIONS {{{
candle_size_ms = time - time[1]  // milliseconds of a candle

timetostring(tms) =>
    d_ = math.floor(tms / 86400)
    h_ = math.floor((tms - d_ * 86400) / 3600)
    m_ = math.floor((tms - d_ * 86400 - h_ * 3600) / 60)
    s_ = math.floor(tms - d_ * 86400 - h_ * 3600 - m_ * 60)
    ret = d_ > 0 ? str.tostring(d_) + ' D ' : ''
    ret += (h_ > 0 ? str.tostring(h_) + ' H ' : '')
    ret += (m_ > 0 ? str.tostring(m_) + ' m ' : '')
    if d_ == 0
        ret += (s_ > 0 ? str.tostring(s_) + ' s ' : '')
        ret
    ret

tftostring(tf) =>
    tfa = str.split(tf, '')
    tfalast = array.get(tfa, array.size(tfa) - 1)
    tfalastIsNum = na(str.tonumber(tfalast)) ? false : true
    txt = tfalastIsNum ? timetostring(str.tonumber(tf) * 60) : tf
    txt

htfLabel(htfy, tf, col) =>
    txt = tftostring(tf)
    htftxt = 'ᐊ ' + txt
    htftip = 'HTF  [ ' + txt + ' ] ' + str.tostring(htfy, '#.##')
    label.new(x=time + candle_size_ms * 2, y=htfy, xloc=xloc.bar_time, yloc=yloc.price, color=color.new(color.black, 100), textcolor=col, style=label.style_label_left, size=size.normal, text=htftxt, tooltip=htftip)

// Moving Averages Functions {{{
Var_Func(src, length) =>
    valpha = 2 / (length + 1)
    vud1 = src > src[1] ? src - src[1] : 0
    vdd1 = src < src[1] ? src[1] - src : 0
    vUD = math.sum(vud1, 9)
    vDD = math.sum(vdd1, 9)
    vCMO = nz((vUD - vDD) / (vUD + vDD))
    VAR = 0.0
    VAR := nz(valpha * math.abs(vCMO) * src) + (1 - valpha * math.abs(vCMO)) * nz(VAR[1])
    VAR

Wwma_Func(src, length) =>
    wwalpha = 1 / length
    WWMA = 0.0
    WWMA := wwalpha * src + (1 - wwalpha) * nz(WWMA[1])
    WWMA

Zlema_Func(src, length) =>
    zxLag = length / 2 == math.round(length / 2) ? length / 2 : (length - 1) / 2
    zxEMAData = src + src - src[zxLag]
    ZLEMA = ta.ema(zxEMAData, length)
    ZLEMA

Tsf_Func(src, length) =>
    lrc = ta.linreg(src, length, 0)
    lrc1 = ta.linreg(src, length, 1)
    lrs = lrc - lrc1
    TSF = ta.linreg(src, length, 0) + lrs
    TSF

getMA(src, length, mav_type) =>
    ma = 0.0
    if mav_type == 'SMA'
        ma := ta.sma(src, length)
    if mav_type == 'EMA'
        ma := ta.ema(src, length)
    if mav_type == 'WMA'
        ma := ta.wma(src, length)
    if mav_type == 'TMA'
        ma := ta.sma(ta.sma(src, math.ceil(length / 2)), math.floor(length / 2) + 1)
    if mav_type == 'VAR'
        ma := Var_Func(src, length)
    if mav_type == 'WWMA'
        ma := Wwma_Func(src, length)
    if mav_type == 'ZLEMA'
        ma := Zlema_Func(src, length)
    if mav_type == 'TSF'
        ma := Tsf_Func(src, length)
    ma

mav1 = request.security(syminfo.tickerid, mav1_timeframe, getMA(mav1_source, mav1_length, mav1_type), gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
plot(mav1_show ? mav1 : na, 'mav 1', color=mav1_color, linewidth=mav1_width, show_last=mav1_size)
var label mav1lbl = na
label.delete(mav1lbl)
mav1lbl := mav1_label ? htfLabel(mav1, mav1_timeframe, mav1_color) : na

mav2 = request.security(syminfo.tickerid, mav2_timeframe, getMA(mav2_source, mav2_length, mav2_type), gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
plot(mav2_show ? mav2 : na, 'mav 2', color=mav2_color, linewidth=mav2_width, show_last=mav2_size)
var label mav2lbl = na
label.delete(mav2lbl)
mav2lbl := mav2_label ? htfLabel(mav2, mav2_timeframe, mav2_color) : na

mav3 = request.security(syminfo.tickerid, mav3_timeframe, getMA(mav3_source, mav3_length, mav3_type), gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
plot(mav3_show ? mav3 : na, 'mav 3', color=mav3_color, linewidth=mav3_width, show_last=mav3_size)
var label mav3lbl = na
label.delete(mav3lbl)
mav3lbl := mav3_label ? htfLabel(mav3, mav3_timeframe, mav3_color) : na

mav4 = request.security(syminfo.tickerid, mav4_timeframe, getMA(mav4_source, mav4_length, mav4_type), gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
plot(mav4_show ? mav4 : na, 'mav 4', color=mav4_color, linewidth=mav4_width, show_last=mav4_size)
var label mav4lbl = na
label.delete(mav4lbl)
mav4lbl := mav4_label ? htfLabel(mav4, mav4_timeframe, mav4_color) : na

mav5 = request.security(syminfo.tickerid, mav5_timeframe, getMA(mav5_source, mav5_length, mav5_type), gaps=barmerge.gaps_off, lookahead=barmerge.lookahead_on)
plot(mav5_show ? mav5 : na, 'mav 5', color=mav5_color, linewidth=mav5_width, show_last=mav5_size)
var label mav5lbl = na
label.delete(mav5lbl)
mav5lbl := mav5_label ? htfLabel(mav5, mav5_timeframe, mav5_color) : na

// Alış ve Satış Koşulları
alisKosulu = close > mav1 and close > mav2 and close > mav3
satisKosulu = close < mav1 and close < mav2 and close < mav3

// Alış ve Satış Sinyalleri
if (alisKosulu and not satisKosulu)
    strategy.entry("Alış", strategy.long)
if (satisKosulu and not alisKosulu)
    strategy.entry("Satış", strategy.short)

// Pozisyonları Kapatma Koşulları
if (strategy.opentrades > 0)
    if (close < mav1 and close < mav2 and strategy.position_size > 0)
        strategy.close("Alış")
    if (close > mav1 and close > mav2 and strategy.position_size < 0)
        strategy.close("Satış")

// Mum Rengi Ayarlama
longKosul = strategy.opentrades > 0 and strategy.position_size > 0
shortKosul = strategy.opentrades > 0 and strategy.position_size < 0

barcolor(longKosul ? color.green : shortKosul ? color.red : color.gray)


متعلقہ

مزید