Satu Cloud Extended MACD dan Strategi Gabungan DMI Berdasarkan Rangka Masa Berbilang


Tarikh penciptaan: 2024-02-02 18:04:28 Akhirnya diubah suai: 2024-02-02 18:04:51
Salin: 6 Bilangan klik: 1266
1
fokus pada
1617
Pengikut

Satu Cloud Extended MACD dan Strategi Gabungan DMI Berdasarkan Rangka Masa Berbilang

Gambaran keseluruhan

Strategi ini menggunakan sambungan awan yang komprehensif, isyarat pergerakan rata-rata agregat ((MACD) dan isyarat trend ((DMI) pada pelbagai jangka masa untuk mengenal pasti peluang membeli dan menjual yang berpotensi. Ia bertujuan untuk memberi rujukan kepada peniaga yang ingin melihat pasaran dari dua dimensi jangka pendek dan jangka menengah.

Prinsip Strategi

Strategi ini berdasarkan pada isyarat konsistensi pada carta 15 minit ((M15) dan 1 jam ((H1) untuk melaksanakan syarat beli dan jual, sambil merujuk kepada 4 jam ((H4) tempoh masa sebagai pengesahan tambahan.

Syarat membeli

  • Harga pada bingkai masa M15, H1 dan H4 lebih tinggi daripada perpanjangan awan
  • Garis MACD pada carta H1 lebih tinggi daripada garis isyarat, dan kedua-dua garis lebih tinggi daripada 0
  • Garis DI+ pada carta H1 lebih tinggi daripada garis DI-ADX sekurang-kurangnya 25
  • Garis MACD pada carta M15 adalah lebih tinggi daripada 0, garis DI+ adalah lebih tinggi daripada garis DI-dan ADX adalah sekurang-kurangnya 25

Syarat jualan

  • Harga pada bingkai masa M15, H1 dan H4 lebih rendah daripada satu awan
  • Garis MACD pada carta H1 adalah lebih rendah daripada garis isyarat, dan kedua-dua garis adalah lebih rendah daripada 0
  • Garis DI pada carta H1 lebih tinggi daripada garis DI +, ADX sekurang-kurangnya 25
  • Garis MACD pada carta M15 adalah lebih rendah daripada 0, garis DI lebih tinggi daripada garis DI +, dan ADX adalah sekurang-kurangnya 25

Masuk dan keluar

  • Apabila semua syarat pembelian dipenuhi, kedudukan berbilang kepala ditubuhkan, menunjukkan momentum naik yang muncul dalam jangka masa
  • Menubuhkan kedudukan kosong apabila semua syarat untuk menjual dipenuhi, menunjukkan trend turun yang berlaku dalam jangka masa
  • Apabila syarat sebaliknya dipenuhi, menunjukkan potensi pembalikan atau kehilangan momentum

Kelebihan Strategik

  • Mengambil lebih banyak jangka masa untuk meningkatkan ketepatan keputusan
  • Melanjutkan untuk menilai arah dan kekuatan trend
  • MACD menilai momentum jangka pendek dan pertengahan
  • DMI menilai daya beli dan daya tarikan
  • Menggabungkan pelbagai petunjuk untuk menilai arah pasaran
  • Syarat jual beli yang boleh disesuaikan
  • Boleh digunakan secara meluas dalam pasaran dengan trend yang jelas

Risiko Strategik

  • Pertimbangan pelbagai kerangka masa boleh menjadi berbeza dan menyebabkan isyarat yang salah
  • Ekstensi awan boleh menyebabkan kesilapan jika digunakan dengan salah
  • MACD dan DMI yang ketinggalan dan mungkin terlepas titik perubahan
  • Keperluan untuk memantau pelbagai kerangka masa
  • Berhati-hatilah dengan perubahan harga yang ketara akibat kejadian yang tidak dijangka

Arah pengoptimuman strategi

  • Mengoptimumkan rangkaian parameter untuk sambungan awan, MACD dan DMI
  • Ujian gabungan lebih banyak kerangka masa, seperti garis matahari dan lain-lain
  • Menambah pengesahan kepada petunjuk lain seperti kadar turun naik, purata bergerak dan sebagainya
  • Lihat lebih lanjut mengenai data sejarah untuk mengoptimumkan syarat-syarat jual beli
  • Parameter pengoptimuman dinamik dengan kaedah pembelajaran mesin dan lain-lain

ringkaskan

Strategi ini memanfaatkan analisis pelbagai kerangka masa dan pelbagai petunjuk untuk mengenal pasti arah dan kekuatan trend. Ia boleh digunakan untuk pelbagai jenis dan dapat dioptimumkan untuk keadaan tertentu melalui penyesuaian parameter. Tetapi pedagang masih perlu berhati-hati dengan batasan indikator itu sendiri dan mengambil langkah-langkah kawalan risiko yang sesuai.

Kod sumber strategi
/*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")