Strategi Pohon Keputusan Multi-Indikator: IMACD, EMA dan Ichimoku Kinko Hyo


Tanggal Pembuatan: 2024-01-22 11:25:56 Akhirnya memodifikasi: 2024-01-22 11:25:56
menyalin: 0 Jumlah klik: 670
1
fokus pada
1621
Pengikut

Strategi Pohon Keputusan Multi-Indikator: IMACD, EMA dan Ichimoku Kinko Hyo

Ringkasan

Strategi ini menggabungkan berbagai indikator teknis seperti IMACD, EMA, dan tabel keseimbangan pertama untuk membangun model pohon keputusan yang komprehensif untuk sinyal beli dan jual.

Prinsip Strategi

  1. IMACD: Enhanced MACD untuk menangkap tren pasar dengan lebih baik melalui ImpulseMACD dan ImpulseHisto
  2. Tabel keseimbangan pertama: memetakan garis pergantian tangan, garis acuan, garis utama A, garis utama B, dan lain-lain, untuk mendeteksi posisi dukungan dan resistensi
  3. EMA 40: membantu menentukan arah tren
  4. Berdasarkan hubungan spesifik IMACD, Cloud Map Components dan EMA 40, sinyal melakukan lebih dan melakukan kurang

Melakukan sinyal lebih: Melakukan lebih ketika IMACD berwarna kondisi tertentu dan EMA 40 lebih tinggi dari grafik awan

Tanda Keluar: Keluar saat IMACD merah dan EMA 40 di bawah trajectory dari gambar awan

Analisis Keunggulan

  1. Komposisi multi-indikator, penilaian komprehensif terhadap tren pasar, peningkatan keakuratan pengambilan keputusan
  2. Klasifikasi model pohon keputusan jelas, sinyal perdagangan dihasilkan dengan jelas
  3. Panjang EMA dapat disesuaikan, lebih fleksibel untuk penilaian tambahan
  4. Kombinasi grafik awan dan indikator tren untuk lebih baik mengidentifikasi dukungan dan resistensi

Analisis risiko

  1. Kombinasi multi-indikator, pengaturan parameter yang lebih rumit
  2. Panjang EMA yang tidak tepat dapat menyebabkan sinyal perdagangan yang salah
  3. Ini adalah salah satu cara yang paling efektif untuk memantau dan mengevaluasi kinerja.

Solusi risiko: mengoptimalkan pengaturan parameter, menyesuaikan panjang EMA, menyederhanakan proses operasi.

Arah optimasi

  1. Optimalkan pengaturan parameter untuk meningkatkan stabilitas strategi
  2. Meningkatkan strategi stop loss untuk mengendalikan kerugian tunggal
  3. Pengukuran kembali berdasarkan data besar untuk meningkatkan kualitas sinyal
  4. Pohon Keputusan Adaptif dengan Algoritma Pembelajaran Mesin

Meringkaskan

Strategi ini mengintegrasikan berbagai indikator untuk mengidentifikasi tren, membangun model pohon keputusan untuk menghasilkan sinyal perdagangan. Keuntungan dari kualitas sinyal yang tinggi, akurasi yang tinggi, cocok untuk pengoptimalan bertahap. Perlu memperhatikan optimasi parameter dan strategi stop loss untuk mengontrol risiko perdagangan, sehingga mendapatkan keuntungan stabil jangka panjang.

Kode Sumber Strategi
/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 30m
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Decision Tree Strategy: IMACD, EMA and Ichimoku [cryptoonchain]", overlay=true)

lengthMA = input(34, title="Length MA")
lengthSignal = input(9, title="Length Signal")
conversionPeriods = input.int(9, minval=1, title="Conversion Line Length")
basePeriods = input.int(26, minval=1, title="Base Line Length")
laggingSpan2Periods = input.int(52, minval=1, title="Leading Span B Length")
displacement = input.int(26, minval=1, title="Lagging Span")
emaLength = input(40, title="EMA Length")  // Added user-configurable EMA length

calc_smma(src, len) =>
    smma = float(na)
    smma := na(smma[1]) ? ta.sma(src, len) : (smma[1] * (len - 1) + src) / len
    smma

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

src = ohlc4
hi = calc_smma(high, lengthMA)
lo = calc_smma(low, lengthMA)
mi = calc_zlema(src, lengthMA)

md = (mi > hi) ? (mi - hi) : (mi < lo) ? (mi - lo) : 0
sb = ta.sma(md, lengthSignal)
sh = md - sb
mdc = src > mi ? (src > hi ? color.rgb(128, 255, 0, 26) : color.green) : (src < lo ? color.red : color.orange)

colorCondition = color.rgb(128, 255, 0, 26)

conversionLine = math.avg(ta.lowest(conversionPeriods), ta.highest(conversionPeriods))
baseLine = math.avg(ta.lowest(basePeriods), ta.highest(basePeriods))
leadLine1 = math.avg(conversionLine, baseLine)
leadLine2 = math.avg(ta.lowest(laggingSpan2Periods), ta.highest(laggingSpan2Periods))

// Use user-configurable length for EMA
ema40 = ta.ema(close, emaLength)

ebc = input(false, title="Enable bar colors")
barcolor(ebc ? mdc : na)

conversionLinePlot = plot(conversionLine, color=#2962FF, title="Conversion Line", display=display.none)
baseLinePlot = plot(baseLine, color=#B71C1C, title="Base Line", display=display.none)
laggingSpanPlot = plot(close, offset=-displacement + 1, color=#43A047, title="Lagging Span", display=display.none)
leadLine1Plot = plot(leadLine1, offset=displacement - 1, color=#A5D6A7, title="Leading Span A", display=display.none)
leadLine2Plot = plot(leadLine2, offset=displacement - 1, color=#EF9A9A, title="Leading Span B", display=display.none)
kumoCloudUpperLinePlot = plot(leadLine1 > leadLine2 ? leadLine1 : leadLine2, offset=displacement - 1, title="Kumo Cloud Upper Line", display=display.none)
kumoCloudLowerLinePlot = plot(leadLine1 < leadLine2 ? leadLine1 : leadLine2, offset=displacement - 1, title="Kumo Cloud Lower Line", display=display.none)
fill(kumoCloudUpperLinePlot, kumoCloudLowerLinePlot, color=leadLine1 > leadLine2 ? color.green : color.red)

a = (leadLine1 > leadLine2 ? leadLine1 : leadLine2) 
b = (leadLine1 < leadLine2 ? leadLine1 : leadLine2)  

if mdc == colorCondition and ema40 > a[displacement - 1]
    strategy.entry("Long", strategy.long)

if mdc == color.red and ema40 < b[displacement - 1]
    strategy.entry("Short", strategy.short)