Eine Optimierung der Trendstrategie basierend auf dem Ichimoku Cloud Chart

Schriftsteller:ChaoZhang, Datum: 2024-01-19 14:45:21
Tags:

img

Übersicht

Diese Strategie kombiniert das Ichimoku-Cloud-Chart mit verschiedenen Hilfsindikatoren, um die Trends zu verfolgen. Sie verwendet hauptsächlich die Ichimoku-Cloud, um die Trendrichtung und MACD, CMF, TSI und andere Indikatoren zur Filterung zu bestimmen, um die Signalqualität zu verbessern. Dies ist eine starke Trendstrategie, die auf umfassenden Urteilen mehrerer Faktoren basiert.

Grundsätze

Diese Strategie nutzt hauptsächlich die Transformation der Ichimoku-Wolke, um die Trendrichtung zu beurteilen. Es geht lang, wenn der Tenkan-sen über der Wolke kreuzt und geht kurz, wenn der Tenkan-sen darunter kreuzt. In der Zwischenzeit verwendet es Chikou Span, MACD-Histogramm, CMF und TSI für mehrschichtige Filterung, um die Signalqualität zu gewährleisten.

Das lange Signal wird ausgelöst, wenn:

  1. Tenkan-sen überquert die Wolke.
  2. Die Wolke ist weit und Tenkan-sen ist über Kijun-sen.
  3. Chikou Span ist über der Nulllinie.
  4. Der Schlusskurs liegt über der Wolke.
  5. Das MACD-Histogramm liegt über 0
  6. CMF größer als 0,1
  7. TSI ist über 0

Das Kurzsignal wird ausgelöst, wenn die oben genannten Bedingungen umgekehrt werden. Durch solche umfassenden Kriterien können die meisten falschen Signale ausgefiltert und die wichtigsten Trends auf dem Markt erfasst werden.

Vorteile

Der größte Vorteil dieser Strategie besteht darin, falsche Signale auszufiltern und starke Trends durch Kombination mehrerer Indikatoren zu erkennen.

  1. Ichimoku-Wolke bestimmen die Haupttrendrichtung
  2. Hilfsindikatoren filtern Signale weiter aus und verringern Risiken
  3. Sie berücksichtigt umfassend mehrere Zeitrahmen für zuverlässigere Signale
  4. Strenge Regeln für den Handel nur mit hochwertigen Aufstellungen und Vermeidung von unsicheren Märkten
  5. Mechanismus zur Maximierung der Trendgewinne

Durch solche Beurteilungen kann die Strategie die mittelfristigen heißen Sektoren effektiv identifizieren und vom Trendhandel profitieren.

Risiken

Zu den wichtigsten Risiken dieser Strategie gehören:

  1. Falsches Ausbruchrisiko, das falsche Signale verursacht
  2. Risiko einer Trendumkehrung mit Verlust aller Gewinne
  3. Relativ geringe Handelsfrequenz fehlende Chancen

Lösungen:

  1. Um die Handelsfrequenz zu erhöhen, sollten die Filterkriterien angemessen gelockert werden.
  2. Hinzufügen der Stop-Loss-Bedingung zur Begrenzung der Verlustgröße
  3. Optimierung von Parametern zur Verbesserung der Signalgenauigkeit

Erweiterung

Die wichtigsten Optimierungsrichtungen:

  1. Optimierung der Parameter durch mehr Backtests, um eine bessere Parameterkombination zu finden

  2. Hinzufügen eines Stop-Loss-Mechanismus zur Risikokontrolle

  3. Hinzufügen von Trailing Stop Loss, um Gewinne zu erzielen

  4. Mehr Indikatoren testen, um eine bessere Filterkombination zu finden

  5. Fügen Sie Regeln hinzu, um echte Ausbrüche zu unterscheiden.

Schlussfolgerung

Diese Strategie kombiniert effektiv Ichimoku-Cloud und mehrere Hilfsindikatoren. Weitere Verbesserungen bei Parameteroptimierung, Stop-Loss-Mechanismus, Indikatorauswahl können die Stabilität und Signalqualität für höhere stetige Renditen verbessern.


/*backtest
start: 2024-01-11 00:00:00
end: 2024-01-13 14:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © exlux99

//@version=4
strategy("Ichimoku with MACD/ CMF/ TSI", overlay=true, margin_long=0, margin_short=0)



//Inputs
ts_bars = input(10, minval=1, title="Tenkan-Sen Bars")
ks_bars = input(30, minval=1, title="Kijun-Sen Bars")
ssb_bars = input(52, minval=1, title="Senkou-Span B Bars")
cs_offset = input(26, minval=1, title="Chikou-Span Offset")
ss_offset = input(26, minval=1, title="Senkou-Span Offset")
long_entry = input(true, title="Long Entry")
short_entry = input(true, title="Short Entry")

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

// Ichimoku Components
tenkan = middle(ts_bars)
kijun = middle(ks_bars)
senkouA = avg(tenkan, kijun)
senkouB = middle(ssb_bars)


ss_high = max(senkouA[ss_offset-1], senkouB[ss_offset-1])
ss_low = min(senkouA[ss_offset-1], senkouB[ss_offset-1])

// Entry/Exit Signals
fast_length = input(title="Fast Length", type=input.integer, defval=17)
slow_length = input(title="Slow Length", type=input.integer, defval=28)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 5)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=true)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=true)

// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal


tk_cross_bull = tenkan > kijun
tk_cross_bear = tenkan < kijun
cs_cross_bull = mom(close, cs_offset-1) > 0
cs_cross_bear = mom(close, cs_offset-1) < 0
price_above_kumo = close > ss_high
price_below_kumo = close < ss_low


//CMF
lengthA = input(8, minval=1, title="CMF Length")
ad = close==high and close==low or high==low ? 0 : ((2*close-low-high)/(high-low))*volume
mf = sum(ad, lengthA) / sum(volume, lengthA)


//TSI
long = input(title="Long Length", type=input.integer, defval=8)
short = input(title="Short Length", type=input.integer, defval=8)
price = close
double_smooth(src, long, short) =>
	fist_smooth = ema(src, long)
	ema(fist_smooth, short)
pc = change(price)
double_smoothed_pc = double_smooth(pc, long, short)
double_smoothed_abs_pc = double_smooth(abs(pc), long, short)
tsi_value = 100 * (double_smoothed_pc / double_smoothed_abs_pc)



bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and hist > 0 and mf > 0.1 and tsi_value > 0
bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and hist < 0  and mf < -0.1 and tsi_value < 0



strategy.entry("Long", strategy.long, when=bullish and long_entry)
strategy.entry("Short", strategy.short, when=bearish and short_entry)

strategy.close("Long", when=bearish and not short_entry)
strategy.close("Short", when=bullish and not long_entry)

Mehr