Multi-Indikator-Entscheidungsbaum-Strategien: IMACD, EMA und erste Gleichgewichtstabelle


Erstellt: 2024-01-22 11:25:56 Letzte Änderung: 2024-01-22 11:25:56
Ich bin nicht derjenige, der das tut. 0 Anzahl der Klicks: 341
1
Besorgnis
1105
Betrachter

多指标决策树策略:IMACD、EMA和一目均衡表

Übersicht

Die Strategie verwendet verschiedene technische Indikatoren, wie IMACD, EMA und den ersten Gleichgewichtstabellen, um ein umfassendes Entscheidungsbaum-Modell zu erstellen, das für die Ausgabe von Kauf- und Verkaufssignalen verwendet wird.

Die Strategie

  1. IMACD: Erweiterte MACD, um Markttrends durch ImpulseMACD und ImpulseHisto besser zu erfassen
  2. Gleichgewichtstabelle: Abbildung von Wechselleitungen, Benchmarks, Vorläufern A und B, Unterstützung und Widerstandsstandards
  3. EMA 40: Unterstützung bei der Tendenzbestimmung
  4. Über- und Stillstandssignale gemäß der spezifischen Beziehung zwischen IMACD, Cloud-Chart-Komponenten und EMA 40

Mehr Signal: Mehr Signal, wenn die IMACD für eine bestimmte Bedingungenfarbe ist und die EMA 40 höher als die Wolkenkarte ist

Ausfallsignal: Ausfallsignal, wenn die IMACD rot ist und die EMA 40 unterhalb der Wolkenkarte liegt

Stärkenanalyse

  1. Multi-Indikator-Kombination, umfassende Beurteilung von Markttrends und bessere Entscheidungssicherheit
  2. Entscheidungsbaummodelle werden eindeutig klassifiziert und Transaktionssignale werden klar generiert
  3. EMA-Längen können angepasst werden, um die Beurteilung zu unterstützen
  4. In Kombination mit Cloudcharts und Trendindikatoren, um Unterstützung und Widerstand besser zu erkennen

Risikoanalyse

  1. Multi-Indikator-Kombinationen mit komplexeren Parameters
  2. Falsche EMA-Längen können zu falschen Handelssignalen führen
  3. Es ist schwierig, mehrere Indikatoren gleichzeitig zu berücksichtigen.

Risikobehebung: Optimierung der Parameter-Einstellungen, Anpassung der EMA-Länge und Vereinfachung des Betriebsprozesses.

Optimierung

  1. Optimierte Parameter-Einstellungen und Strategie-Stabilität
  2. Steigerung der Stop-Loss-Strategien zur Kontrolle von Einzelverlusten
  3. Rechnen auf Basis großer Datenmengen und verbessern die Signalqualität
  4. Die Anpassung an die neuen Technologien und die Entwicklung von Anpassungs-Entscheidungsträumen

Zusammenfassung

Die Strategie verwendet die Trends von verschiedenen Indikatoren zu identifizieren, um ein Entscheidungsbaumodell zu erstellen, das Handelssignale erzeugt. Die Vorteile sind hohe Signalqualität, hohe Genauigkeit und schrittweise Optimierung. Es ist notwendig, sich auf die Optimierung von Parametern und Stop-Loss-Strategien zu konzentrieren, um das Handelsrisiko zu kontrollieren und so langfristig stabile Renditen zu erzielen.

Strategie-Quellcode
                
                    /*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)

                
            
Weitere Informationen