متحرک اوسط پر مبنی MACD متحرک رجحان کے فیصلے کی حکمت عملی


تخلیق کی تاریخ: 2024-02-19 10:48:11 آخر میں ترمیم کریں: 2024-02-19 10:48:11
کاپی: 0 کلکس کی تعداد: 598
1
پر توجہ دیں
1617
پیروکار

متحرک اوسط پر مبنی MACD متحرک رجحان کے فیصلے کی حکمت عملی

جائزہ

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

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

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

طاقت کا تجزیہ

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

خطرے کا تجزیہ اور حل

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

اصلاح کی سمت

  1. مختلف دورانیہ پیرامیٹرز کے مجموعے کے اثرات کی جانچ
  2. حکمت عملی کے اثر و رسوخ پر مختلف کراس سائیکل مجموعوں کے اثرات کی جانچ
  3. MACD اشارے پیرامیٹرز کو ایڈجسٹ کریں ، جیسے سست اور اوسط لائن کی مدت ، سگنل لائن کی مدت وغیرہ
  4. مختلف پوزیشنوں کے ریگولیٹرز کے اثرات کی جانچ
  5. دیگر پرجاتیوں پر ٹیسٹ کے نتائج

خلاصہ کریں۔

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

حکمت عملی کا ماخذ کوڈ
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@temelbulut
//@version=5
strategy('MACD Strategy %80', overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=50)

fastLength = input.int(title='MACD Fast Length', defval=12, minval=1)
slowLength = input.int(title='MACD Slow Length', defval=26, minval=1)
signalLength = input.int(title='MACD Signal Length', defval=9, minval=1)
crossscore = input(title='Cross (buy/sell) Score', defval=10.)
indiside = input(title='indicator Direction Score', defval=8)
histside = input(title='Histogram Direction Score', defval=2)
shotsl = input(title='Show Stop Loss Line', defval=false)
Mult = input.float(title='Stop Loss Factor', defval=1.2, minval=0.1, maxval=100)
Period = input.int(title='Stop Loss Period', defval=10, minval=1, maxval=100)
lookaheadi = input(title='Lookahead', defval=true)

HTF = timeframe.period == '1' ? '5' : timeframe.period == '3' ? '15' : timeframe.period == '5' ? '15' : timeframe.period == '15' ? '60' : timeframe.period == '30' ? '60' : timeframe.period == '45' ? '60' : timeframe.period == '60' ? '240' : timeframe.period == '120' ? '240' : timeframe.period == '180' ? '240' : timeframe.period == '240' ? 'D' : timeframe.period == 'D' ? 'W' : 'W'

calc = timeframe.period == '1' ? 5 : timeframe.period == '3' ? 5 : timeframe.period == '5' ? 3 : timeframe.period == '15' ? 4 : timeframe.period == '30' ? 4 : timeframe.period == '45' ? 4 : timeframe.period == '60' ? 4 : timeframe.period == '120' ? 3 : timeframe.period == '180' ? 3 : timeframe.period == '240' ? 6 : timeframe.period == 'D' ? 5 : 1

count() =>
    indi = ta.ema(close, fastLength) - ta.ema(close, slowLength)
    signal = ta.ema(indi, signalLength)
    Anlyse = 0.0
    // direction of indi and histogram
    hist = indi - signal
    Anlyse := indi > indi[1] ? hist > hist[1] ? indiside + histside : hist == hist[1] ? indiside : indiside - histside : 0
    Anlyse += (indi < indi[1] ? hist < hist[1] ? -(indiside + histside) : hist == hist[1] ? -indiside : -(indiside - histside) : 0)
    Anlyse += (indi == indi[1] ? hist > hist[1] ? histside : hist < hist[1] ? -histside : 0 : 0)
    // cross now earlier ?
    countcross = indi >= signal and indi[1] < signal[1] ? crossscore : indi <= signal and indi[1] > signal[1] ? -crossscore : 0.
    countcross += nz(countcross[1]) * 0.6
    Anlyse += countcross
    nz(Anlyse)

Anlys = count()
AnlysHfrm = lookaheadi ? request.security(syminfo.tickerid, HTF, count(), lookahead=barmerge.lookahead_on) : request.security(syminfo.tickerid, HTF, count(), lookahead=barmerge.lookahead_off)
Result = (AnlysHfrm * calc + Anlys) / (calc + 1)

longCondition = ta.change(Result) != 0 and Result > 0
if longCondition
    strategy.entry('MACD Long', strategy.long,alert_message = 'MACD Long')

shortCondition = ta.change(Result) != 0 and Result < 0
if shortCondition
    strategy.entry('MACD Short', strategy.short,alert_message = 'MACD Short')

countstop(pos) =>
    Upt = hl2 - Mult * ta.atr(Period)
    Dnt = hl2 + Mult * ta.atr(Period)
    TUp = 0.
    TDown = 0.
    TUp := close[1] > TUp[1] ? math.max(Upt, TUp[1]) : Upt
    TDown := close[1] < TDown[1] ? math.min(Dnt, TDown[1]) : Dnt
    tslmtf = pos == 1 ? TUp : TDown
    tslmtf

pos = longCondition ? 1 : -1
stline = 0.
countstop__1 = countstop(pos)
security_1 = request.security(syminfo.tickerid, HTF, countstop__1)
stline := ta.change(time(HTF)) != 0 or longCondition or shortCondition ? security_1 : nz(stline[1])
plot(stline, color=shotsl ? color.rgb(148, 169, 18) : na, style=plot.style_line, linewidth=2, title='Stop Loss')