Strategi Pokok Keputusan Berbilang Penunjuk: IMACD, EMA dan Ichimoku Kinko Hyo


Tarikh penciptaan: 2024-01-22 11:25:56 Akhirnya diubah suai: 2024-01-22 11:25:56
Salin: 0 Bilangan klik: 664
1
fokus pada
1617
Pengikut

Strategi Pokok Keputusan Berbilang Penunjuk: IMACD, EMA dan Ichimoku Kinko Hyo

Gambaran keseluruhan

Strategi ini menggunakan pelbagai indikator teknikal seperti IMACD, EMA dan Bilan Keseimbangan Pertama untuk membina model pokok keputusan yang komprehensif untuk isyarat beli dan jual.

Prinsip Strategi

  1. IMACD: MACD yang dipertingkatkan untuk menangkap trend pasaran dengan lebih baik melalui ImpulseMACD dan ImpulseHisto
  2. Jadual keseimbangan mata pertama: melukis garis pertukaran tangan, garis asas, garis utama A, garis utama B, dan lain-lain, untuk mengesan sokongan dan rintangan
  3. EMA 40: membantu menentukan arah trend
  4. Based on IMACD, Cloud Map Components and EMA 40 specific relationship, emitted do more and do less signals

Melakukan lebih banyak isyarat: Melakukan lebih banyak isyarat apabila IMACD adalah warna keadaan tertentu dan EMA 40 lebih tinggi daripada gambar awan

Isyarat kosongkan: kosongkan apabila IMACD merah dan EMA 40 di bawah corak awan

Analisis kelebihan

  1. Portfolio pelbagai indikator, penilaian trend pasaran yang menyeluruh, peningkatan ketepatan keputusan
  2. Model pokok keputusan dikategorikan dengan jelas, dan isyarat perdagangan dihasilkan dengan jelas
  3. Panjang EMA boleh disesuaikan, lebih banyak fleksibiliti untuk penilaian tambahan
  4. Menggabungkan grafik awan dan indikator trend untuk mengenal pasti sokongan dan rintangan

Analisis risiko

  1. Kombinasi pelbagai indikator, parameter yang lebih rumit
  2. Panjang EMA yang tidak betul boleh menyebabkan isyarat perdagangan palsu
  3. Ia memerlukan perhatian yang lebih kepada pelbagai indikator, dan ia lebih sukar untuk dikendalikan.

Penyelesaian risiko: Optimumkan tetapan parameter, sesuaikan panjang EMA, permudahkan proses operasi.

Arah pengoptimuman

  1. Optimumkan tetapan parameter untuk meningkatkan kestabilan strategi
  2. Meningkatkan strategi penangguhan kerugian dan mengawal kerugian tunggal
  3. Pengukuran semula berdasarkan data yang besar untuk meningkatkan kualiti isyarat
  4. Mencipta pokok keputusan adaptif dengan algoritma pembelajaran mesin

ringkaskan

Strategi ini menggunakan pelbagai indikator untuk mengenal pasti trend, membina model pokok keputusan untuk menghasilkan isyarat perdagangan. Keuntungan adalah kualiti isyarat yang tinggi, ketepatan yang tinggi, sesuai untuk pengoptimuman secara beransur-ansur. Perlu memberi perhatian kepada strategi pengoptimuman parameter dan hentikan kerugian untuk mengawal risiko perdagangan, untuk mendapatkan pulangan yang stabil dalam jangka panjang.

Kod 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)