میک گینلی چلتی اوسط ٹریڈنگ کی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-11-14 15:48:46
ٹیگز:

img

جائزہ

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

حکمت عملی منطق

اس حکمت عملی میں بنیادی طور پر دو حرکت پذیر اوسط ، 21 پیریڈ ای ایم اے اور 42 پیریڈ ای ایم اے استعمال ہوتے ہیں۔ جب مختصر ایم اے طویل ایم اے سے اوپر عبور کرتا ہے تو ، اسے خرید کا اشارہ سمجھا جاتا ہے۔ جب مختصر ایم اے طویل ایم اے سے نیچے عبور کرتا ہے تو ، اسے فروخت کا اشارہ سمجھا جاتا ہے۔

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

خاص طور پر ، خریدنے کا اشارہ اس وقت متحرک ہوتا ہے جب: مختصر MA طویل MA سے اوپر عبور کرتا ہے ، میک گینلی MA سے اوپر قیمت بند ہوجاتا ہے ، مختصر MA سے نیچے قریب قیمت توڑتا ہے۔ فروخت کا اشارہ اس وقت متحرک ہوتا ہے جب: مختصر MA طویل MA سے نیچے عبور کرتا ہے ، میک گینلی MA سے نیچے قیمت بند ہوجاتا ہے ، مختصر MA سے اوپر قریب قیمت توڑتا ہے۔

میک گینلی ایم اے کا حساب اس طرح کیا جاتا ہے: ایم ڈی آئی ٹی = ایم ڈی آئی ٹی -1 + (کلوز - ایم ڈی آئی ٹی -1) / میکس ((کے * پیریڈ * (کلوز / ایم ڈی آئی ٹی -1) ^ 4، 1) ۔ جہاں ایم ڈی آئی ٹی موجودہ قیمت ہے ، ایم ڈی آئی ٹی -1 پچھلی قیمت ہے ، کلوز اختتامی قیمت ہے ، کی ہموار کنسٹنٹ ہے ، اور پیریڈ حساب کتاب کی مدت ہے۔ یہ فارمولا ایم اے کو حقیقی وقت میں قیمت کی تبدیلیوں کو ٹریک کرنے کی اجازت دیتا ہے۔

فوائد

  1. میک گینلی ایم اے روایتی ایم اے کے پسماندہ مسئلے کو بہتر بناتا ہے اور تیزی سے رجحان کی تبدیلیوں کو پکڑ سکتا ہے۔

  2. سگنل پیدا کرنے کے لئے دوہری ایم اے کا استعمال کرتے ہوئے مؤثر طریقے سے جھوٹے بریک آؤٹ کو فلٹر کر سکتا ہے.

  3. میگنیلی ایم اے سے اوپر / نیچے قیمت شامل کرنے سے حد سے زیادہ تجارت سے بچتا ہے.

  4. ای ایم اے کا استعمال حالیہ قیمت کی تبدیلیوں کے لئے ایم اے کو زیادہ حساس بناتا ہے۔

خطرات

  1. وِپساؤس سائیڈ ویز مارکیٹوں میں غلط سگنل پیدا کرسکتے ہیں ، جس سے نقصانات ہوتے ہیں۔ پیرامیٹرز کو فلٹر سگنلز کے مطابق ایڈجسٹ کیا جاسکتا ہے۔

  2. گیپ اوپننگ وقت پر داخلہ کو متحرک کرنے میں ناکام ہوسکتی ہے۔ داخلہ کے قواعد میں نرمی کی جاسکتی ہے۔

  3. ناقص پیرامیٹر ٹوننگ حکمت عملی کی کارکردگی کو متاثر کرسکتی ہے۔ پیرامیٹرز کو بہتر بنایا جانا چاہئے۔

  4. طویل عرصے تک ہولڈنگ کے دوران نظام کے خطرات کا سامنا کرنا پڑتا ہے۔ اسٹاپ نقصان کا استعمال کرنے پر غور کریں۔

بہتری

  1. زیادہ سے زیادہ مجموعہ تلاش کرنے کے لئے مختلف ایم اے لمبائی کا تجربہ کریں۔

  2. انٹری/آؤٹ ٹائمنگ کو بہتر بنانے کے لیے دیگر اشارے جیسے کے ڈی، ایم اے سی ڈی شامل کریں۔

  3. مختلف مصنوعات اور مارکیٹوں کی بنیاد پر k قدر کو ایڈجسٹ کریں تاکہ میک گینلی ایم اے حساب کو بہتر بنایا جاسکے۔

  4. متحرک پوزیشن سائزنگ اور رسک کنٹرول کے لیے اتار چڑھاؤ کے اقدامات شامل کریں۔

  5. نقصانات کو کنٹرول کرنے کے لئے اسٹاپ نقصان مقرر کریں۔ منافع میں مقفل کرنے کے لئے ٹریلنگ اسٹاپ کا بھی تجربہ کیا جاسکتا ہے۔

نتیجہ

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


/*backtest
start: 2022-11-07 00:00:00
end: 2023-11-13 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/
// © LucasZancheta

//@version=4
strategy(shorttitle="Maguila", title="McGinley Dynamic Indicator", overlay=true)

//Médias móveis
MA1Period=input(21, title="MA1")
MA2Period=input(42, title="MA2")

MA1 = ema(close, MA1Period)
MA2 = ema(close, MA2Period)

aboveAverage = MA1 >= MA2
hunderAverage = MA2 >= MA1

//Período do backtest
startDate = input(title="Start Date", type=input.integer, defval=28, minval=1, maxval=31)
startMonth = input(title="Start Month", type=input.integer, defval=5, minval=1, maxval=12)
startYear = input(title="Start Year", type=input.integer, defval=2019, minval=1800, maxval=2100)

endDate = input(title="End Date", type=input.integer, defval=28, minval=1, maxval=31)
endMonth = input(title="End Month", type=input.integer, defval=5, minval=1, maxval=12)
endYear = input(title="End Year", type=input.integer, defval=2030, minval=1800, maxval=2100)

//Verifica se o candle está dentro do período do backtest
inDateRange = (time >= timestamp(syminfo.timezone, startYear, startMonth, startDate, 0, 0)) and (time < timestamp(syminfo.timezone, endYear, endMonth, endDate, 0, 0))

//Número de periodos da média móvel
period  = input(title="Períodos", type=input.integer, defval=20)
//Constante K (0.6)
k = input(title="Constante K", type=input.float, defval=0.6)
//Preço de fechamento 
closePrice = input(title="Preço", type=input.source, defval=close)

mdi = 0.0

//Fórmula de McGinley
mdi := na(mdi[1]) ? closePrice : mdi[1] + (closePrice - mdi[1]) / max((k * period * pow(closePrice / mdi[1], 4)), 1)

//Regra de coloração 
mdiColor = closePrice > mdi ? color.green : closePrice < mdi ? color.red : color.black

//Inserindo as informações no gráfico    
plot(MA1, color=color.blue, linewidth=2)
plot(MA2, color=color.purple, linewidth=2)

barcolor(mdiColor)

//Estratégia
buySignal = aboveAverage and closePrice > mdi and crossunder(low, MA1) and close > MA1  
buyLoss = closePrice < mdi and close < MA1 and close < MA2

if (inDateRange)
    strategy.entry("Compra", strategy.long, qty=1, when= buySignal)
    strategy.exit("Gain da compra", "Compra", qty=1, profit=20)
    strategy.close("Compra", qty=1, when= buyLoss, comment="Loss na operação")

sellSignal = hunderAverage and closePrice < mdi and crossover(high, MA1) and close < MA1
sellLoss = closePrice > mdi and close > MA1 and close > MA2

if (inDateRange)
    strategy.entry("Venda", strategy.short, qty=1, when= sellSignal)
    strategy.exit("Gain da venda", "Venda", qty=1, profit=20)
    strategy.close("Venda", qty=1, when= sellLoss, comment="Loss na operação")

if (not inDateRange)
    strategy.close_all()




مزید