Strategi Kombinasi MACD dan DMI One Cloud Extended Berdasarkan Beberapa Kerangka Waktu


Tanggal Pembuatan: 2024-02-02 18:04:28 Akhirnya memodifikasi: 2024-02-02 18:04:51
menyalin: 5 Jumlah klik: 622
1
fokus pada
1226
Pengikut

Strategi Kombinasi MACD dan DMI One Cloud Extended Berdasarkan Beberapa Kerangka Waktu

Ringkasan

Strategi ini menggunakan ekstensi awan, sinyal MACD dan DMI pada beberapa kerangka waktu untuk mengidentifikasi peluang beli dan jual potensial. Ini dimaksudkan untuk memberikan referensi bagi para pedagang yang ingin melihat pasar dari dua dimensi jangka pendek dan menengah.

Prinsip Strategi

Strategi ini didasarkan pada sinyal konsistensi pada grafik 15 menit (M15) dan 1 jam (H1) untuk melakukan kondisi beli dan jual, sambil merujuk pada kerangka waktu 4 jam (H4) sebagai konfirmasi tambahan.

Kondisi pembelian

  • Harga pada kerangka waktu M15, H1 dan H4 lebih tinggi dari perpanjangan awan
  • Garis MACD di grafik H1 lebih tinggi dari garis sinyal dan keduanya lebih tinggi dari 0
  • Garis DI+ pada grafik H1 lebih tinggi dari garis DI- dengan ADX minimal 25
  • Garis MACD pada grafik M15 lebih tinggi dari 0, garis DI+ lebih tinggi dari garis DI-dan ADX setidaknya 25

Kondisi penjualan

  • Harga pada kerangka waktu M15, H1 dan H4 lebih rendah dari perpanjangan awan
  • Garis MACD di grafik H1 lebih rendah dari garis sinyal, dan keduanya lebih rendah dari 0
  • Garis DI pada grafik H1 lebih tinggi dari garis DI +, ADX minimal 25
  • Garis MACD pada grafik M15 lebih rendah dari 0, garis DI lebih tinggi dari garis DI +, dan ADX setidaknya 25

Masuk dan keluar

  • Pembentukan posisi multihead ketika semua kondisi pembelian terpenuhi, menunjukkan momentum naik yang muncul di kerangka waktu
  • Pembentukan posisi kosong ketika semua kondisi untuk menjual telah terpenuhi, menunjukkan tren turun yang terjadi pada kerangka waktu
  • Bila kondisi sebaliknya terpenuhi, berarti potensi reversal atau kehilangan momentum.

Keunggulan Strategis

  • Mempertimbangkan Kerangka Waktu Berkali-kali untuk Meningkatkan Akurasi Keputusan
  • Sebuah awan memperpanjang penilaian arah dan intensitas tren
  • MACD menilai momentum jangka pendek dan menengah
  • DMI menilai kekuatan beli dan aktifitas tren
  • Menggabungkan beberapa indikator untuk menilai arah pasar secara menyeluruh
  • Adjustable Parameter Custom Terms & Conditions
  • Dapat diterapkan secara luas di pasar dengan tren yang jelas

Risiko Strategis

  • Pertimbangan multi-frame waktu dapat berselisih dan menyebabkan sinyal yang salah.
  • Ekstensi awan dapat menyesatkan jika tidak digunakan dengan benar
  • MACD dan DMI, keduanya terbelakang, mungkin akan melewatkan titik balik
  • Perlu memantau beberapa indikator kerangka waktu secara bersamaan
  • Perhatian terhadap perubahan harga yang sangat besar yang disebabkan oleh insiden

Arah optimasi strategi

  • Mengoptimalkan perpanjangan awan, MACD dan DMI
  • Uji kombinasi lebih banyak dari kerangka waktu, seperti garis matahari dan lain-lain
  • Menambahkan konfirmasi untuk indikator lain, seperti volatilitas, moving averages, dan lain-lain
  • Lihat lebih banyak data historis untuk mengoptimalkan kondisi pembelian dan penjualan
  • Parameter pengoptimalan dinamis dengan metode seperti pembelajaran mesin

Meringkaskan

Strategi ini memanfaatkan keunggulan analisis multi-frame waktu dan beberapa indikator untuk mengidentifikasi arah dan intensitas tren secara efektif. Dengan penyesuaian parameter, strategi ini dapat diterapkan untuk berbagai varietas dan dapat dioptimalkan untuk situasi tertentu. Namun, pedagang harus tetap ingat dengan keterbatasan indikator itu sendiri dan mengambil langkah-langkah pengendalian risiko yang sesuai.

Kode 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")