Eine quantitative Ichimoku-Cloud-Handelsstrategie

Schriftsteller:ChaoZhang, Datum: 2023-12-21 15:33:05
Tags:

img

Übersicht

Diese Strategie basiert auf der Ichimoku Cloud, einem berühmten Trendindikator in der technischen Analyse, um Markttrends zu bestimmen und Handelssignale zu generieren, indem die Crossover-Beziehungen zwischen der Conversion Line, der Base Line und den Cloud Lines aus dem Ichimoku-System beobachtet werden.

Strategie Logik

Die Kernkomponenten dieser Strategie sind die drei Linien aus dem Ichimoku Cloud-System: Conversion Line, Base Line und Cloud Lines. Die Conversion Line repräsentiert kurzfristige Preisbewegungen, die Base Line zeigt mittelfristige Trends, während die Cloud Bereiche von Unterstützung und Widerstand visualisiert. Die Strategie identifiziert Markttrends und Handelsmöglichkeiten, indem Kreuzungen zwischen diesen drei Elementen erkannt werden.

Die wichtigsten Regeln dieser Strategie sind insbesondere:

  1. Wenn die Basislinie über die Wolke geht, entsteht ein Aufwärtstrend auf mittelfristige, lange Sicht.

  2. Wenn die Konversionslinie über die Wolke geht, beginnen die Preise, kurzfristig wieder aufzusteigen.

  3. Wenn die Basislinie unterhalb der Wolke kreuzt, entsteht ein Abwärtstrend.

  4. Wenn die Conversion Line unterhalb der Wolke kreuzt, fallen die Preise kurzfristig, gehen kurz.

Darüber hinaus fungieren Kreuzungen zwischen Preis und Cloud Lines als Filter für Handelssignale. Nur wenn sowohl die Conversion/Base Line als auch der Preis die Cloud zusammen durchqueren, wird ein gültiges Signal generiert.

Analyse der Vorteile

Im Vergleich zu einzelnen Indikatoren wie gleitenden Durchschnitten besteht der größte Vorteil dieser Strategie darin, Daten aus mehreren Zeitrahmen zu integrieren, um Trendveränderungen zu erkennen. Die Konversionslinie zeigt kurzfristige Bewegungen, die Basislinie mittlere Bewegungen und die Cloud zeigt längerfristige Unterstützungs-/Widerstandsniveaus. Ihre Kombination identifiziert Wendepunkte genauer. Außerdem reduziert der inhärente Filtermechanismus des Ichimoku Whipsaws vom Marktlärm, so dass wir den größeren Trend erfassen können.

Risikoanalyse

Das größte Risiko besteht darin, dass das Ichimoku-System empfindlich auf Eingabeparameter reagiert. Unangemessene Einstellungen können häufig schlechte Signale erzeugen. Außerdem neigt die Wolke dazu, sich während von Bereichsbegrenzungen zu flach zu machen, was unsichere Signale verursacht. Häufige Auftragsöffnungen und Stopps können hohe Provisionsgebühren zur Folge haben. Außerdem sind mittelfristige Trades mit größeren Verlustrisiken pro Trade verbunden, was eine strenge Risikokontrolle erfordert.

Um Risiken zu mindern, können wir die Parametermischung optimieren, Stop-Loss-/Take-Profit-Levels festlegen oder Ichimoku mit anderen Indikatoren kombinieren.

Möglichkeiten zur Verbesserung

Es gibt mehrere Möglichkeiten, diese Strategie zu verbessern:

  1. Optimierung von Parameterkombinationen, um die beste Passform für verschiedene Handelsinstrumente zu finden.

  2. Fügen Sie Filterbedingungen mit anderen Indikatoren hinzu, um die Trendvalidierung zu verstärken.

  3. Einbeziehen Sie Stop-Loss-Mechanismen wie Trailing-Stops oder Time-Stops, um Einzelhandelsverluste zu kontrollieren.

  4. Kombination mit Swing-Handelsansätzen, um den Eintrittszeitpunkt in größere Trends einzustellen.

Schlussfolgerung

Die Ichimoku Cloud-Strategie identifiziert mittelfristige Trends, indem sie die Conversion/Basis Lines gegen die Cloud kreuzt. Im Vergleich zu einzelnen Indikatoren beinhaltet sie mehrere Zeitrahmen für eine zuverlässige Trendänderungserkennung. Die inhärente Rauschfilterung vermeidet auch Whipsaws. Mit einer ordnungsgemäßen Parameter-Tuning und Risikomanagement kann diese Strategie langfristig stabile Überzinsrenditen generieren. Sie eignet sich für erfahrene Trendhandler mit mittelfristigen Halteperioden.


/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title="Ichimoku Cloud", shorttitle="Ichimoku", overlay=true, default_qty_type=strategy.cash, default_qty_value=100000, initial_capital=100000, currency=currency.USD)


conversionPeriods = input(9, minval=1, title="Conversion Line Periods"),
basePeriods = input(26, minval=1, title="Base Line Periods")
laggingSpan2Periods = input(52, minval=1, title="Lagging Span 2 Periods"),
displacement = input(26, minval=1, title="Displacement")

donchian(len) => avg(lowest(len), highest(len))

conversionLine = donchian(conversionPeriods)
baseLine = donchian(basePeriods)
leadLine1 = avg(conversionLine, baseLine)
leadLine2 = donchian(laggingSpan2Periods)

plot(conversionLine, color=#0496ff, title="Conversion Line")
plot(baseLine, color=#991515, title="Base Line")
plot(close, offset = -displacement, color=#459915, title="Lagging Span")

p1 = plot(leadLine1, offset = displacement, color=green,
 title="Lead 1")
p2 = plot(leadLine2, offset = displacement, color=red, 
 title="Lead 2")
fill(p1, p2, color = leadLine1 > leadLine2 ? green : red)



maxlead = max(leadLine1, leadLine2)
minlead = min(leadLine1, leadLine2)

//rules
A = baseLine> maxlead[displacement]
B = crossover(baseLine,  maxlead[displacement])

C = baseLine< minlead[displacement]
D = crossunder(baseLine, minlead[displacement])


E = conversionLine> maxlead[displacement]
F = crossover(conversionLine, maxlead[displacement])

G = conversionLine< minlead[displacement]
H = crossunder(conversionLine, minlead[displacement])


I = close>  maxlead[2*displacement]
J = crossover(close, maxlead[2*displacement])

K = close<minlead[2*displacement]
L = crossunder(close, minlead[2*displacement])


//strategies
if A 
    if E
        strategy.entry("Buy", strategy.long, when= J)
if A 
    if I
        strategy.entry("Buy", strategy.long, when= F)
if E 
    if I
        strategy.entry("Buy", strategy.long, when= B)

if C
    if G
        strategy.entry("Sell", strategy.short, when=L)
if C
    if K
        strategy.entry("Sell", strategy.short, when=H)
if G
    if K
        strategy.entry("Sell", strategy.short, when=D)

//EOS


Mehr