وسائل لوڈ ہو رہے ہیں... لوڈنگ...

ATR اور MACD انضمام کے ساتھ ٹریڈنگ سسٹم کے بعد ملٹی ٹائم فریم ٹرینڈ

مصنف:چاؤ ژانگ، تاریخ: 2024-11-25 14:42:33
ٹیگز:ای ایم اےآر ایس آئیاے ٹی آرایم اے سی ڈیایم ٹی ایفSLٹی پی

img

جائزہ

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

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

حکمت عملی میں تجارتی فیصلوں کے لئے ایک کثیر سطح کی توثیق کا طریقہ کار استعمال کیا گیا ہے:

  1. رجحان کی نشاندہی: رجحان کی تبدیلیوں کو پکڑنے کے لئے 9 اور 21 مدت کے EMA کراس اوور کا استعمال کرتا ہے
  2. رفتار کی تصدیق: MACD (12,26,9) کراس اوورز اور سمت کے ذریعے رجحان کی رفتار کی تصدیق کرتا ہے
  3. Overbought/Oversold Filter: فلٹرنگ کے لئے 70/30 کی سطح پر RSI(14) اشارے کا استعمال کرتا ہے
  4. زیادہ وقت کی حد کی تصدیق: رجحان فلٹر کے طور پر اختیاری روزانہ EMA
  5. خطرہ مینجمنٹ: ٹریلنگ سٹاپ نقصان کے لئے 1.5x ATR اور منافع کے اہداف کے لئے 2x ATR استعمال کرتا ہے

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

حکمت عملی کے فوائد

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

حکمت عملی کے خطرات

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

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

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

خلاصہ

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


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-24 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5 
strategy("Trend Following with ATR, MTF Confirmation, and MACD", overlay=true)

// Parameters
emaShortPeriod = input.int(9, title="Short EMA Period", minval=1)
emaLongPeriod = input.int(21, title="Long EMA Period", minval=1)
rsiPeriod = input.int(14, title="RSI Period", minval=1)
rsiOverbought = input.int(70, title="RSI Overbought", minval=50)
rsiOversold = input.int(30, title="RSI Oversold", minval=1)
atrPeriod = input.int(14, title="ATR Period", minval=1)
atrMultiplier = input.float(1.5, title="ATR Multiplier", minval=0.1)
takeProfitATRMultiplier = input.float(2.0, title="Take Profit ATR Multiplier", minval=0.1)

// Multi-timeframe settings
htfEMAEnabled = input.bool(true, title="Use Higher Timeframe EMA Confirmation?", inline="htf")
htfEMATimeframe = input.timeframe("D", title="Higher Timeframe", inline="htf")

// MACD Parameters
macdShortPeriod = input.int(12, title="MACD Short Period", minval=1)
macdLongPeriod = input.int(26, title="MACD Long Period", minval=1)
macdSignalPeriod = input.int(9, title="MACD Signal Period", minval=1)

// Select trade direction
tradeDirection = input.string("Both", title="Trade Direction", options=["Both", "Long", "Short"])

// Calculating indicators
emaShort = ta.ema(close, emaShortPeriod)
emaLong = ta.ema(close, emaLongPeriod)
rsiValue = ta.rsi(close, rsiPeriod)
atrValue = ta.atr(atrPeriod)

// Calculate MACD
[macdLine, macdSignalLine, _] = ta.macd(close, macdShortPeriod, macdLongPeriod, macdSignalPeriod)

// Higher timeframe EMA confirmation
htfEMALong = request.security(syminfo.tickerid, htfEMATimeframe, ta.ema(close, emaLongPeriod))

// Trading conditions
longCondition = ta.crossover(emaShort, emaLong) and rsiValue < rsiOverbought and (not htfEMAEnabled or close > htfEMALong) and macdLine > macdSignalLine
shortCondition = ta.crossunder(emaShort, emaLong) and rsiValue > rsiOversold and (not htfEMAEnabled or close < htfEMALong) and macdLine < macdSignalLine

// Plotting EMAs
plot(emaShort, title="EMA Short", color=color.green)
plot(emaLong, title="EMA Long", color=color.red)

// Plotting MACD
hline(0, "Zero Line", color=color.gray)
plot(macdLine - macdSignalLine, title="MACD Histogram", color=color.green, style=plot.style_histogram)
plot(macdLine, title="MACD Line", color=color.blue)
plot(macdSignalLine, title="MACD Signal Line", color=color.red)

// Trailing Stop-Loss and Take-Profit levels
var float trailStopLoss = na
var float trailTakeProfit = na

if (strategy.position_size > 0) // Long Position
    trailStopLoss := na(trailStopLoss) ? close - atrValue * atrMultiplier : math.max(trailStopLoss, close - atrValue * atrMultiplier)
    trailTakeProfit := close + atrValue * takeProfitATRMultiplier
    strategy.exit("Exit Long", "Long", stop=trailStopLoss, limit=trailTakeProfit, when=shortCondition)

if (strategy.position_size < 0) // Short Position
    trailStopLoss := na(trailStopLoss) ? close + atrValue * atrMultiplier : math.min(trailStopLoss, close + atrValue * atrMultiplier)
    trailTakeProfit := close - atrValue * takeProfitATRMultiplier
    strategy.exit("Exit Short", "Short", stop=trailStopLoss, limit=trailTakeProfit, when=longCondition)

// Strategy Entry
if (longCondition and (tradeDirection == "Both" or tradeDirection == "Long"))
    strategy.entry("Long", strategy.long)
    
if (shortCondition and (tradeDirection == "Both" or tradeDirection == "Short"))
    strategy.entry("Short", strategy.short)

// Plotting Buy/Sell signals
plotshape(series=longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

// Plotting Trailing Stop-Loss and Take-Profit levels
plot(strategy.position_size > 0 ? trailStopLoss : na, title="Long Trailing Stop Loss", color=color.red, linewidth=2, style=plot.style_line)
plot(strategy.position_size < 0 ? trailStopLoss : na, title="Short Trailing Stop Loss", color=color.green, linewidth=2, style=plot.style_line)
plot(strategy.position_size > 0 ? trailTakeProfit : na, title="Long Take Profit", color=color.blue, linewidth=2, style=plot.style_line)
plot(strategy.position_size < 0 ? trailTakeProfit : na, title="Short Take Profit", color=color.orange, linewidth=2, style=plot.style_line)


متعلقہ

مزید