ملٹی ٹائم فریم Ichimoku، MACD اور DMI مشترکہ حکمت عملی

مصنف:چاؤ ژانگ، تاریخ: 2024-02-02 18:04:28
ٹیگز:

img

جائزہ

یہ حکمت عملی ممکنہ خرید و فروخت کے اشاروں کی نشاندہی کرنے کے لئے متعدد ٹائم فریموں میں Ichimoku Cloud ، Moving Average Convergence Divergence (MACD) اور Directional Movement Index (DMI) کو جوڑتی ہے۔ اس کا مقصد تاجروں کے لئے حوالہ جات فراہم کرنا ہے جو مارکیٹ کے ایک کثیر جہتی نقطہ نظر کو مختصر اور درمیانے مدتی دونوں نقطہ نظر سے لینا چاہتے ہیں۔

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

حکمت عملی 15 منٹ (M15) اور 1 گھنٹے (H1) چارٹ سے مستقل سگنل کی بنیاد پر خرید اور فروخت کی شرائط کو انجام دیتی ہے ، جس میں 4 گھنٹے (H4) کے ٹائم فریم سے اضافی تصدیق ہوتی ہے۔

خریدنے کی شرائط

  • قیمت M15، H1 اور H4 ٹائم فریم پر Ichimoku Cloud سے اوپر
  • سگنل لائن سے اوپر MACD لائن اور H1 پر صفر سے اوپر دونوں
  • DI+ DI- اور ADX سے اوپر H1 پر کم از کم 25
  • ایم اے سی ڈی لائن صفر سے اوپر، ڈی آئی+ ڈی آئی سے اوپر اور ایم 15 پر کم از کم 25 اے ڈی ایکس

فروخت کی شرائط

  • قیمت M15، H1 اور H4 ٹائم فریم پر Ichimoku Cloud سے نیچے
  • سگنل لائن سے نیچے MACD لائن اور H1 پر صفر سے نیچے دونوں
  • DI- DI+ اور ADX سے اوپر H1 پر کم از کم 25
  • ایم اے سی ڈی لائن صفر سے نیچے، ڈی آئی- ڈی آئی+ سے اوپر اور ایم 15 پر کم از کم 25 اے ڈی ایکس

داخلہ اور باہر نکلنا

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

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

  • بہتر درستگی کے لئے متعدد ٹائم فریم پر غور کرتا ہے
  • Ichimoku رجحان کی سمت اور طاقت کا فیصلہ
  • MACD اشارے مختصر اور درمیانی مدت کی رفتار
  • ڈی ایم آئی خرید/فروخت کے دباؤ اور رجحان کی سرگرمی کا جائزہ لیتا ہے
  • متعدد اشارے سے سگنل کو یکجا کرتا ہے
  • خرید/فروخت کی شرائط کے لئے حسب ضرورت پیرامیٹرز
  • واضح رجحانات والے بازاروں پر وسیع پیمانے پر لاگو

اسٹریٹجی کے خطرات

  • ٹائم فریموں میں متضاد سگنل خراب سگنل کا سبب بن سکتے ہیں
  • Ichimoku غلط استعمال کیا جاتا ہے تو گمراہ کن ہو سکتا ہے
  • ایم اے سی ڈی اور ڈی ایم آئی میں تاخیر کی نوعیت ہے، موڑ کو یاد کر سکتے ہیں
  • متعدد ٹائم فریم اشارے کی نگرانی کی ضرورت ہے
  • اچانک واقعات کی وجہ سے قیمتوں میں بہت بڑی تبدیلیوں کا محتاط انتظام

اصلاح کی سمت

  • Ichimoku، MACD اور DMI پیرامیٹرز کے مجموعہ کو بہتر بنائیں
  • روزانہ کی طرح زیادہ ٹائم فریم کی جانچ کریں
  • مزید اشارے جیسے اتار چڑھاؤ، چلتی اوسط وغیرہ سے تصدیق شامل کریں.
  • زیادہ تاریخی اعداد و شمار کے ساتھ خرید / فروخت کے حالات کو بہتر بنائیں
  • مشین لرننگ وغیرہ کے ساتھ متحرک پیرامیٹر کی اصلاح

نتیجہ

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


/*backtest
start: 2024-01-25 00:00:00
end: 2024-02-01 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © haidinh83

//@version=5
strategy("Ichimoku, MACD, DMI Multiple time frame 21/01/2024", overlay=true)
    // Khung thời gian
timeframe1 = "5"   // M5
timeframe2 = "15"  // M15
timeframe3 = "60"  // H1
timeframe4 = "240" // H4

    // Nhập tham số ADX và DI
lengthDMI = input(14, title="DMI Length")
thresholdADX = input(20, title="ADX Threshold")

// Tính giá trị Ichimoku
ichimoku(tenkanPeriod, kijunPeriod, senkouPeriod) =>
    tenkanSen = (ta.highest(high, tenkanPeriod) + ta.lowest(low, tenkanPeriod)) / 2
    kijunSen = (ta.highest(high, kijunPeriod) + ta.lowest(low, kijunPeriod)) / 2
    senkouSpanA = (tenkanSen + kijunSen) / 2
    senkouSpanB = (ta.highest(high, senkouPeriod) + ta.lowest(low, senkouPeriod)) / 2
    [tenkanSen, kijunSen, senkouSpanA, senkouSpanB]

    // Lấy Ichimoku từng khung thời gian
[tenkanM5, kijunM5, spanAM5, spanBM5] = request.security(syminfo.tickerid, timeframe1, ichimoku(9, 26, 52))
[tenkanM15, kijunM15, spanAM15, spanBM15] = request.security(syminfo.tickerid, timeframe2, ichimoku(9, 26, 52))
[tenkanH1, kijunH1, spanAH1, spanBH1] = request.security(syminfo.tickerid, timeframe3, ichimoku(9, 26, 52))
[tenkanH4, kijunH4, spanAH4, spanBH4] = request.security(syminfo.tickerid, timeframe4, ichimoku(9, 26, 52))

    // Tính giá trị MACD và Signal Line cho từng khung thời gian
[macdM5, signalM5, _] = request.security(syminfo.tickerid, timeframe1, ta.macd(close, 12, 26, 9))
[macdM15, signalM15, _] = request.security(syminfo.tickerid, timeframe2, ta.macd(close, 12, 26, 9))
[macdH1, signalH1, _] = request.security(syminfo.tickerid, timeframe3, ta.macd(close, 12, 26, 9))
[macdH4, signalH4, _] = request.security(syminfo.tickerid, timeframe4, ta.macd(close, 12, 26, 9))

  // Tính giá trị DMI cho từng khung thời gian
calcDMI(len) =>
    up = ta.change(high)
    down = -ta.change(low)
    plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
    minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
    trur = ta.rma(ta.tr, len)
    plus = fixnan(100 * ta.rma(plusDM, len) / trur)
    minus = fixnan(100 * ta.rma(minusDM, len) / trur)
    adx = 100 * ta.rma(math.abs(plus - minus) / (plus + minus == 0 ? 1 : plus + minus), len)
    [plus, minus, adx]  // Đảm bảo mỗi phần của hàm nằm trên một dòng riêng biệt


[plusM5, minusM5, adxM5] = request.security(syminfo.tickerid, timeframe1, calcDMI(lengthDMI))
[plusM15, minusM15, adxM15] = request.security(syminfo.tickerid, timeframe2, calcDMI(lengthDMI))
[plusH1, minusH1, adxH1] = request.security(syminfo.tickerid, timeframe3, calcDMI(lengthDMI))
[plusH4, minusH4, adxH4] = request.security(syminfo.tickerid, timeframe4, calcDMI(lengthDMI))



// Điều kiện mua cho H1
buyConditionH1 = (close > spanAM15) and (close > spanAH1) and (close > spanAH4) and 
                 (macdH1 > signalH1) and (macdH1 > 0) and (signalH1 > 0) and 
                 (plusH1 > minusH1) and (adxH1 >= 25)

// Điều kiện mua cho M15
buyConditionM15 = (close > spanAM15) and (close > spanAH1) and (close > spanAH4) and 
                  (macdM15 > 0) and (plusM15 > minusM15) and (adxM15 >= 25)

// Điều kiện mua tổng hợp
buyCondition = buyConditionH1 and buyConditionM15

// Điều kiện bán cho H1
sellConditionH1 = (close < spanAM15) and (close < spanAH1) and (close < spanAH4) and 
                  (macdH1 < signalH1) and (macdH1 < 0) and (signalH1 < 0) and 
                  (minusH1 > plusH1) and (adxH1 >= 25)

// Điều kiện bán cho M15
sellConditionM15 = (close < spanAM15) and (close < spanAH1) and (close < spanAH4) and 
                   (macdM15 < 0) and (minusM15 > plusM15) and (adxM15 >= 25)

// Điều kiện bán tổng hợp
sellCondition = sellConditionH1 and sellConditionM15

// Thực hiện giao dịch nếu điều kiện bán hoặc mua được đáp ứng
if buyCondition
    strategy.entry("Buy", strategy.long)

if sellCondition
    strategy.entry("Sell", strategy.short)


    // Vẽ và tô màu giữa Senkou Span A và B cho mỗi khung thời gian
p1 = plot(spanAM15, color=color.blue, title="Span A M15")
p2 = plot(spanBM15, color=color.blue, title="Span B M15")
fill(p1, p2, color=color.new(color.blue, 90), title="M15 Cloud")

p3 = plot(spanAH1, color=color.purple, title="Span A H1")
p4 = plot(spanBH1, color=color.purple, title="Span B H1")
fill(p3, p4, color=color.new(color.purple, 90), title="H1 Cloud")

p5 = plot(spanAH4, color=color.orange, title="Span A H4")
p6 = plot(spanBH4, color=color.orange, title="Span B H4")
fill(p5, p6, color=color.new(color.orange, 90), title="H4 Cloud")

    // Tô màu nền và hiển thị cảnh báo
 
bgcolor(buyCondition ? color.new(color.green, 45) : sellCondition ? color.new(color.red, 45) : na)
alertcondition(buyCondition, title="Mua Signal", message="Điều kiện mua đã được đáp ứng")
alertcondition(sellCondition, title="Bán Signal", message="Điều kiện bán đã được đáp ứng")



مزید