ایکسپونینشل موونگ ایوریج اور MACD اشارے پر مبنی حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2023-12-08 16:58:01
ٹیگز:

img

جائزہ

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

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

یہ حکمت عملی بنیادی طور پر مندرجہ ذیل پر مبنی ہے:

  1. اہم رجحان کی سمت کا تعین کرنے کے لئے 200 دن کے ای ایم اے کا حساب لگائیں۔ 200-ای ایم اے سے اوپر کی بندش کی قیمت اوپر کے رجحان کی نشاندہی کرتی ہے ، جبکہ نیچے کا رجحان نیچے کی طرف اشارہ کرتا ہے۔

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

  3. MACD سگنل لائن بنانے کے لئے MACD ہسٹوگرام کے 9 دن کے MA کا حساب لگائیں۔

  4. جب MACD سگنل لائن کے اوپر عبور کرتا ہے تو خرید کا سگنل پیدا ہوتا ہے ، جبکہ جب MACD سگنل لائن سے نیچے عبور کرتا ہے تو فروخت کا سگنل پیدا ہوتا ہے۔

  5. اہم رجحانات کے تجزیہ کو یکجا کریں تاکہ یہ معلوم کیا جا سکے کہ مارکیٹ ایک نئے رجحان کے آغاز پر ہے یا صرف ایک مختصر مدتی الٹ ہے۔

فوائد

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

اہم فوائد میں شامل ہیں:

  1. 200 دن کا ای ایم اے اہم رجحان کی سمت کا تعین کرتا ہے، رجحانات کے خلاف تجارت سے بچتا ہے.

  2. ایم اے سی ڈی اشارے قلیل مدتی قیمتوں میں تبدیلیوں کے لئے حساس ہے اور منافع بخش الٹ سگنل پکڑ سکتا ہے۔

  3. MACD اجزاء کے لئے مختلف پیرامیٹرز وقت کے فریموں میں ٹریڈنگ سگنل پیدا کرسکتے ہیں۔

  4. مؤثر طریقے سے واحد تجارت کے نقصان کو کنٹرول کرنے کے لئے سٹاپ نقصان کی حکمت عملی کو ضم کرتا ہے.

خطرات

اہم خطرات میں شامل ہیں:

  1. طویل مدتی اور قلیل مدتی اشارے سے تجارتی سگنل کے درمیان وقت کا وقفہ ہوسکتا ہے۔ اہم رجحان کے بارے میں فیصلے اہم ہیں۔

  2. ایم اے سی ڈی بطور اوسط ریورس انڈیکیٹر مضبوط رجحانات کے دوران کم کارکردگی کا مظاہرہ کرسکتا ہے۔

  3. غیر مناسب سٹاپ نقصان کی جگہ کا نتیجہ دیر سے سٹاپ نقصان ٹرگر یا بہت زیادہ نقصان ہو سکتا ہے.

  4. بہت کثرت سے بریک آؤٹ سگنل زیادہ غلط سگنل متعارف کروا سکتے ہیں۔

حل:

  1. اشارے کی حساسیت کو ایڈجسٹ کرنے کے لئے MACD پیرامیٹرز کو بہتر بنائیں.

  2. مارکیٹ کے حالات کا تعین کرنے کے لئے دیگر اشارے کو یکجا کریں، MACD سگنلز کو اندھے طور پر پیروی کرنے سے بچیں.

  3. سٹاپ نقصان کی حکمت عملی کے پیرامیٹرز کو ٹیسٹ اور بہتر بنائیں.

  4. غلط سگنل کو کم کرنے کے لئے فلٹرز شامل کریں.

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

حکمت عملی کو مندرجہ ذیل طریقوں سے بہتر بنایا جاسکتا ہے:

  1. زیادہ موثر ٹریڈنگ سگنل حاصل کرنے کے لئے حرکت پذیر اوسط اور ایم اے سی ڈی کے پیرامیٹرز کو بہتر بنائیں۔

  2. حکمت عملی کی افادیت کو بڑھانے کے لئے حجم، آر ایس آئی جیسے دیگر اشارے شامل کریں.

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

  4. سٹاپ نقصان کے اوپر مزید اعلی درجے کے باہر نکلنے کے قوانین شامل کریں، مثال کے طور پر منافع کا ہدف، پیچھے رکنے.

  5. حقیقی تجارت کا مشابہت کرنے کے لئے زیادہ حقیقت پسندانہ فیس کی ترتیبات کے ساتھ بیک ٹیسٹ.

  6. قابل اعتماد کو بہتر بنانے کے لئے قدم آگے تجزیہ، استحکام ٹیسٹ انجام دیں.

نتیجہ

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


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

//@version=4
strategy("Strategia EMA + Impulse MACD", shorttitle="EMA+IMACD", overlay=true)

// Impostazioni
ema_length = input(200, title="Periodo EMA a 200", type=input.integer)
lengthMA = input(34, title="Periodo EMA", type=input.integer)
lengthSignal = input(9, title="Periodo Signal", type=input.integer)
lengthImpulseMACD = input(12, title="Periodo Impulse MACD", type=input.integer)
lengthImpulseMACDSignal = input(9, title="Periodo Impulse MACD Signal", type=input.integer)
stopLossPeriod = input(20, title="Periodo Stop Loss", type=input.integer)

var float ema200 = na
if bar_index >= ema_length
    ema200 := ema(close, ema_length)

// Impulse MACD
var float hi = na
var float lo = na
var float mi = na
var float impulseMACD = na
var float impulseMACDSignal = na

calc_smma(src, len) =>
    var float smma = na
    if na(smma)
        smma := sma(src, len)
    else
        smma := (smma[1] * (len - 1) + src) / len
    smma

calc_zlema(src, length) =>
    ema1 = ema(src, length)
    ema2 = ema(ema1, length)
    d = ema1 - ema2
    ema1 + d

if bar_index >= lengthMA
    src = hlc3
    hi := calc_smma(high, lengthMA)
    lo := calc_smma(low, lengthMA)
    mi := calc_zlema(src, lengthMA)

    impulseMACD := (mi > hi) ? (mi - hi) : (mi < lo) ? (mi - lo) : 0
    impulseMACDSignal := sma(impulseMACD, lengthSignal)

// Calcolo dello stop loss
var float stopLossLong = na
var float stopLossShort = na

stopLossLong := lowest(low, stopLossPeriod)
stopLossShort := highest(high, stopLossPeriod)

// Calcolo del take profit
var float takeProfitLong = na
var float takeProfitShort = na

if not na(stopLossLong)
    takeProfitLong := close + (close - stopLossLong) * 1.5
if not na(stopLossShort)
    takeProfitShort := close - (stopLossShort - close) * 1.5

// Condizioni per aprire una posizione long
longCondition = not na(ema200) and not na(impulseMACD) and not na(impulseMACDSignal) and close > ema200 and impulseMACD < 0 and impulseMACDSignal < 0 and crossover(impulseMACD, impulseMACDSignal)

// Condizioni per aprire una posizione short
shortCondition = not na(ema200) and not na(impulseMACD) and not na(impulseMACDSignal) and close < ema200 and impulseMACD > 0 and impulseMACDSignal > 0 and crossunder(impulseMACD, impulseMACDSignal)

// Disegna l'EMA 200 sul grafico
plot(ema200, color=color.blue, title="EMA 200")

// Imposta lo stop loss e il take profit
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.exit("Take Profit/Stop Loss Long", from_entry="Long", stop=stopLossLong, limit=takeProfitLong)
strategy.exit("Take Profit/Stop Loss Short", from_entry="Short", stop=stopLossShort, limit=takeProfitShort)

// Impulse MACD
plot(0, color=color.gray, linewidth=1, title="MidLine")
plot(impulseMACD, color=color.red, linewidth=2, title="ImpulseMACD", style=plot.style_histogram)
plot(impulseMACDSignal, color=color.blue, linewidth=2, title="ImpulseMACDSignal", style=plot.style_histogram)

// Disegna le operazioni long e short sul grafico
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, title="Long Entry")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.triangledown, title="Short Entry")


مزید