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

مصنف:چاؤ ژانگ، تاریخ: 2023-12-26 14:40:12
ٹیگز:

img

جائزہ

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

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

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

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

فوائد کا تجزیہ

  1. MACD اشارے کلاسیکی اور سمجھنے میں آسان ہے، مؤثر طریقے سے مختصر سے درمیانے درجے کی واپسی کے مواقع پر قبضہ.

  2. ایم اے سی ڈی سسٹم کی ڈبل ای ایم اے تعمیر میں سنگل ایم اے سسٹم کے مقابلے میں بہتر ہموار ہے۔

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

  4. حجم اشارے کے ساتھ مل کر اعلی معیار کے سگنل کی نشاندہی کرنے میں مدد ملتی ہے.

خطرے کا تجزیہ

  1. ایم اے سی ڈی دوڑتے بازاروں میں زیادہ غلط سگنل پیدا کرسکتا ہے۔

  2. یہ رجحانات کا تعین نہیں کرسکتا اور رجحانات کو عبور کرتے وقت نقصانات پیدا کرسکتا ہے۔

  3. محدود بیک ٹسٹ ٹائم فریم انتہائی مارکیٹ کے حالات کو نظر انداز کرسکتا ہے۔

  4. پیرامیٹر ٹیوننگ کو مخصوص مارکیٹ کے ادوار کو زیادہ سے زیادہ فٹ ہونے سے بچنے کے لئے زیادہ سے زیادہ مارکیٹ کے اعداد و شمار کی ضرورت ہوتی ہے۔

خطرات کو رجحان کے اشارے اور اسٹاپ نقصان کے طریقہ کار کو شامل کرکے کنٹرول کیا جاسکتا ہے۔ پیرامیٹر کی اصلاح کے لئے بیک ٹیسٹ کے دائرہ کار اور مارکیٹ کے نمونے کی جگہ کو بڑھا سکتے ہیں۔

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

  1. مختلف قیمتوں کے ذرائع جیسے قریبی، درمیانی، ری سیٹ قیمتوں وغیرہ کی جانچ کریں.

  2. زیادہ تاریخی اعداد و شمار کی بنیاد پر زیادہ سے زیادہ پیرامیٹر سیٹ تلاش کریں.

  3. سگنل کے معیار کا اندازہ کرنے کے لئے دیگر اشارے کو ضم کریں، مثال کے طور پر حجم سگنل.

  4. اہم رجحان کے تنازعات سے بچنے کے لئے رجحان اور سائیکل تجزیہ شامل کریں.

نتیجہ

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


/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="MACD Histogram Backtest", shorttitle="MACD")

// Getting inputs
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal

grow = (hist[1] < hist)
fall = (hist[1] > hist) and hist >= 0
stop = (hist[1] > hist)

plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)

//Strategy Testing

// Component Code Start
// Example usage:
// if testPeriod()
//   strategy.entry("LE", strategy.long)
testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(01, "Backtest Start Month")
testStartDay = input(2, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(30, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay,0,0)

// A switch to control background coloring of the test period
testPeriodBackground = input(title="Color Background?", type=input.bool, defval=true)
testPeriodBackgroundColor = testPeriodBackground and (time >= testPeriodStart) and (time <= testPeriodStop) ? #00FF00 : na
bgcolor(testPeriodBackgroundColor, transp=97)

testPeriod() => true
// Component Code Stop

//Entry and Close settings
if testPeriod() 
    strategy.entry("grow", true, 10, when = grow, limit = close)
    strategy.close("grow", when = fall)
    strategy.close("grow", when = stop)
    
//if testPeriod() 
//   strategy.entry("fall", false, 1000, when = fall, limit = close)
//    strategy.close("fall", when = grow)    



مزید