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

EMA WMA SMA TMA VAR WWMA ZLEMA TSF
تخلیق کی تاریخ: 2024-05-23 18:14:35 آخر میں ترمیم کریں: 2024-05-23 18:14:35
کاپی: 3 کلکس کی تعداد: 575
1
پر توجہ دیں
1617
پیروکار

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

جائزہ

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

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

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

اس حکمت عملی میں 5 مختلف دورانیہ اور اقسام کی منتقل اوسط کا استعمال کیا گیا ہے:

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

ان 5 قسم کے متحرک اوسط کو لچکدار طریقے سے ترتیب دیا جاسکتا ہے ، بشمول ایس ایم اے ، ای ایم اے ، ڈبلیو ایم اے ، ٹی ایم اے ، وی اے آر ، ڈبلیو ڈبلیو ایم اے ، زیلیما ، ٹی ایس ایف اور دیگر 8 اقسام۔

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

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

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

  • اگر آپ کے پاس ایک سے زیادہ پوزیشن ہے تو ، K لائن سبز دکھائی دیتی ہے۔
  • جب آپ کی پوزیشن خالی ہے تو ، K لائن سرخ ہے۔
  • دوسری صورتوں میں، K لائن گرے رنگ میں دکھائی دیتی ہے۔

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

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

اسٹریٹجک رسک

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

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

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

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

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

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*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)