Quantitative Handelsstrategie basierend auf Ichimoku-Cloud und gleitendem Durchschnitt

Schriftsteller:ChaoZhang, Datum: 2024-02-20 17:12:35
Tags:

img

Übersicht

Diese Strategie kombiniert den Ichimoku Cloud-Indikator und den gleitenden Durchschnittsindikator, um eine einfache quantitative Handelsstrategie umzusetzen. Sie erzeugt Kaufsignale, wenn die Umrechnungslinie über der Basislinie liegt und der Schlusskurs über der Umrechnungslinie liegt. Sie erzeugt Verkaufssignale, wenn die Umrechnungslinie unter der Basislinie liegt und der Schlusskurs unter der Umrechnungslinie liegt.

Strategie Logik

Die Ichimoku Cloud enthält drei Linien: die Umrechnungslinie, die Basislinie und die Verzögerungsspanne. Die Umrechnungslinie repräsentiert den kurzfristigen Durchschnittspreis und die Basislinie den langfristigen Durchschnittspreis. Die Verzögerungsspanne ist normalerweise der Durchschnitt der Umrechnung und der Basislinien. Wenn der kurzfristige Durchschnitt höher ist als der langfristige Durchschnitt, zeigt dies einen Aufwärtstrend an.

Die Ichimoku-Wolke enthält auch zwei führende Linien: Leading Span A und Leading Span B. Sie repräsentieren den durchschnittlichen Bereich der Kursschwankungen über verschiedene Zeiträume.

Diese Strategie verwendet die Konversionslinie, um die allgemeine Trendrichtung und die führenden Linien zur Messung der Dynamik zu bestimmen. Sie erzeugt Handelssignale basierend auf dem Trend, der Dynamik und den Schlusskurs. Sie geht lang, wenn es einen Aufwärtstrend und wachsende Volatilität gibt, und geht kurz, wenn es einen Abwärtstrend und eine Kontraktionsvolatilität gibt.

Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Verwendet eine Kombination von Indikatoren, um zuverlässige Signale zu liefern.
  2. Er betritt nur feste Ausbrüche, um falsche Signale zu vermeiden.
  3. Geeignet für den kurzfristigen Handel mit volatilen Vermögenswerten mit hohem Gewinnpotenzial.
  4. Einfache Logik, die leicht zu verstehen und zu ändern ist.
  5. Leicht erweiterbar auf ein Multifaktormodell mit mehr Indikatoren.

Risiken

Die wichtigsten Risiken dieser Strategie sind:

  1. Mistrade-Risiko. Ich muss einen Stop-Loss setzen, um Verluste pro Trade zu kontrollieren.
  2. Preisumkehrrisiko. Der Preis kann sich umkehren, nachdem das Signal ausgelöst wurde. Kann die Haltebedingungen lockern, um dieses Risiko zu reduzieren.
  3. Parameteroptimierungsrisiken. Ergebnisse sind empfindlich für Parameter. Ausführliche Kombinatorische Tests sind erforderlich, um das optimale zu finden.
  4. Übermäßiges Risiko. Kann historisch sehr gut funktionieren, aber im tatsächlichen Handel scheitern.

Möglichkeiten zur Verbesserung

Einige Möglichkeiten, wie diese Strategie verbessert werden kann:

  1. Testen Sie Kombinationen von mehr Indikatoren wie KDJ, BOLL, MACD, um bessere Parameter zu finden.
  2. Einbeziehen Sie Stop-Loss-Mechanismen wie bewegliche Stop-Loss oder x mal atr.
  3. Optimieren Sie Eingangsfilter mit Volumen, Volatilität usw.
  4. Strengung der Bestandsregeln durch Verkürzung der Bestandsdauer oder Erhöhung des Gewinnzieles.
  5. Einführung von maschinellem Lernen zur Suche nach optimalen Parameterkombinationen mithilfe neuronaler Netze.

Schlussfolgerung

Zusammenfassend ist dies eine sehr einfache quantitative Handelsstrategie, die Ichimoku Cloud und gleitenden Durchschnitt kombiniert, um Trend und Dynamik für Handelssignale zu bestimmen. Sie eignet sich für den kurzfristigen Handel mit volatilen Vermögenswerten mit gutem Gewinnpotenzial. Natürlich ist keine Strategie perfekt und diese hat einige Verbesserungsmöglichkeiten durch Einstiegsregeln, Stop-Losses, Parameterwahl usw., um sie robuster zu machen.


/*backtest
start: 2024-01-20 00:00:00
end: 2024-02-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Ichimoku Cloud + ema 50 Strategy", overlay=true)

len = input.int(50, minval=1, title="Length")
src = input(close, title="Source")
out = ta.ema(src, len)

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(1, minval=1, title="Lagging Span")

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

p1 = plot(leadLine1, offset = displacement - 1, color=#A5D6A7,
     title="Leading Span A")
p2 = plot(leadLine2, offset = displacement - 1, color=#EF9A9A,
     title="Leading Span B")
fill(p1, p2, color = leadLine1 > leadLine2 ? color.rgb(67, 160, 71, 90) : color.rgb(244, 67, 54, 90))

plot(out, title="EMA", color=color.white)

// Condition for Buy Signal
buy_signal = close > out and leadLine1 > leadLine2

// Condition for Sell Signal
sell_signal = close < out and leadLine2 > leadLine1

// Strategy entry and exit conditions
if (buy_signal)
    strategy.entry("Buy", strategy.long)
if (sell_signal)
    strategy.entry("Sell", strategy.short)

// Exit long position if candle closes below EMA 50
if (strategy.opentrades > 0)
    if (close < out)
        strategy.close("Buy")

// Exit short position if candle closes above EMA 50
if (strategy.opentrades < 0)
    if (close > out)
        strategy.close("Sell")


Mehr