Die Ichimoku Cloud und MACD Momentum Riding ist eine Trendfolgsstrategie, die den Ichimoku Cloud-Indikator und den MACD-Impulsindikator kombiniert. Die Strategie nutzt die Ichimoku Cloud, um die Trendrichtung und Unterstützungs-/Widerstandsniveaus sowie den MACD-Indikator zu bestimmen, um eine Momentumumumumkehr zu erkennen, und tritt während eines Trends zeitlich in den Markt ein. Inzwischen setzt die Strategie einen Trailing Stop Loss ein, um Gewinne zu erzielen und Drawdowns zu reduzieren.
Die Ichimoku-Wolke besteht aus der Wendelinie (Tenkan-Sen), der Basislinie (Kijun-Sen), der führenden Spanne A (Senkou-Spanne A), der führenden Spanne B (Senkou-Spanne B) und der Bestätigungslinie (Chikou-Spanne).
Die Moving Average Convergence Divergence oder MACD ist ein Momentum-Indikator. In dieser Strategie ist es ein Kaufsignal, wenn die schnelle Linie der MACD über die langsame Linie geht, und ein Verkaufsignal, wenn die schnelle Linie unter die langsame Linie geht.
Wenn die Turning Line über die Basislinie kreuzt, kreuzt die Confirmation Line über den Schlusskurs von 26 Bars vor, der Schlusskurs bricht über das obere Band der Cloud und die schnelle Linie des MACD
Wenn der Preis um 3% steigt, wird die Strategie den Stop-Loss auf 97% des aktuellen Preises verschieben, um Gewinne zu erzielen und die Aufwärtsbewegung zu verfolgen.
Wenn die Turning Line unterhalb der Basislinie kreuzt, kreuzt die Confirmation Line unterhalb des Schlusskurses von 26 Bars vor, der Schlusskurs bricht unterhalb des unteren Bandes der Cloud ab und die MACD
Wenn der Kurs um 3% fällt, wird die Strategie den Stop-Loss auf 103% des aktuellen Preises verschieben, um Gewinne zu erzielen und die Abwärtsbewegung zu verfolgen.
Diese Strategie kombiniert die Identifizierung von Trends und den Zeitpunkt des Einsteigens, wodurch bei Trendmärkten gute Renditen erzielt werden können.
Ichimoku Cloud kann die Trendrichtung eindeutig identifizieren.
Der MACD ist wirksam bei der Erkennung von kurzfristigen Momentumumum-Umkehrungen.
Durch den Trailing-Stop-Loss kann die Strategie während eines Trends weitergeführt werden.
Diese Strategie birgt auch gewisse Risiken:
Die Wolke benötigt relativ lange Rückblickzeiten und kann kurzfristig ungenaue Signale geben.
Der MACD schwingt mit dem Preis und kann falsche Signale erzeugen.
Der Stopp-Loss-Verlust muss entsprechend angepasst werden, da sonst die Whipsaws während der Trendmärkte zu häufig ausfallen.
Die Strategie selbst verwaltet kein Risiko. Der Benutzer muss externe Risikomanagementtechniken umsetzen, um Verluste zu kontrollieren.
Die Ichimoku Cloud- und MACD-Momentum-Riding-Strategie kann wie folgt optimiert werden:
Parameter-Tuning - Drehlinie anpassen, Basislinie Rückblick Perioden, MACD-Parameter für klarere Signale optimieren.
Fügen Sie Filterung hinzu - Verwenden Sie andere Indikatoren wie RSI, Bollinger Bands, um schlechte Signale auszufiltern und falsche Signale zu reduzieren.
Die Risikopositionen, für die die Risikopositionen gemäß Artikel 36 Absatz 1 Buchstabe c der CRR gelten, sind die Risikopositionen, für die die Risikopositionen gemäß Artikel 36 Absatz 1 der CRR gelten.
Einbeziehung von Positionsgrößen - Höchstverlust pro Handel zur Kontrolle des Gesamtverlustes.
Automatische Auswahl von Verträgen und Neuausgleich - Erweiterung der Anpassungsfähigkeit auf mehr Märkte.
Die Ichimoku Cloud und MACD Momentum Riding Strategie berücksichtigt sowohl den Trend als auch das Timing, was eine gute Rendite erzielen kann, wenn die Parameter richtig abgestimmt sind und Risikokontrollen vorhanden sind.
/*backtest start: 2022-11-21 00:00:00 end: 2023-11-03 05:20:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('Ichimoku Cloud with MACD and Trailing Stop Loss', overlay=true, initial_capital=1000, process_orders_on_close=true, default_qty_type=strategy.percent_of_equity, default_qty_value=30, commission_type=strategy.commission.percent, commission_value=0.1) showDate = input(defval=true, title='Show Date Range') timePeriod = time >= timestamp(syminfo.timezone, 2022, 6, 1, 0, 0) // Inputs ts_bars = input.int(9, minval=1, title='Tenkan-Sen Bars') ks_bars = input.int(26, minval=1, title='Kijun-Sen Bars') ssb_bars = input.int(52, minval=1, title='Senkou-Span B Bars') cs_offset = input.int(26, minval=1, title='Chikou-Span Offset') ss_offset = input.int(26, minval=1, title='Senkou-Span Offset') long_entry = input(true, title='Long Entry') short_entry = input(true, title='Short Entry') middle(len) => math.avg(ta.lowest(len), ta.highest(len)) // Ichimoku Components tenkan = middle(ts_bars) kijun = middle(ks_bars) senkouA = math.avg(tenkan, kijun) senkouB = middle(ssb_bars) // Plot Ichimoku Kinko Hyo plot(tenkan, color=color.new(#0496ff, 0), title='Tenkan-Sen') plot(kijun, color=color.new(#991515, 0), title='Kijun-Sen') plot(close, offset=-cs_offset + 1, color=color.new(#459915, 0), title='Chikou-Span') sa = plot(senkouA, offset=ss_offset - 1, color=color.new(color.green, 0), title='Senkou-Span A') sb = plot(senkouB, offset=ss_offset - 1, color=color.new(color.red, 0), title='Senkou-Span B') fill(sa, sb, color=senkouA > senkouB ? color.green : color.red, title='Cloud color', transp=90) ss_high = math.max(senkouA[ss_offset - 1], senkouB[ss_offset - 1]) ss_low = math.min(senkouA[ss_offset - 1], senkouB[ss_offset - 1]) // MACD [macd, macd_signal, macd_histogram] = ta.macd(close, 12, 26, 9) // Entry/Exit Signals tk_cross_bull = tenkan > kijun tk_cross_bear = tenkan < kijun cs_cross_bull = ta.mom(close, cs_offset - 1) > 0 cs_cross_bear = ta.mom(close, cs_offset - 1) < 0 price_above_kumo = close > ss_high price_below_kumo = close < ss_low bullish = tk_cross_bull and cs_cross_bull and price_above_kumo and ta.crossover(macd, macd_signal) bearish = tk_cross_bear and cs_cross_bear and price_below_kumo and ta.crossunder(macd, macd_signal) // Configure trail stop level with input options longTrailPerc = input.float(title='Trail Long Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01 shortTrailPerc = input.float(title='Trail Short Loss (%)', minval=0.0, step=0.1, defval=3) * 0.01 // Determine trail stop loss prices longStopPrice = 0.0 shortStopPrice = 0.0 longStopPrice := if strategy.position_size > 0 stopValue = close * (1 - longTrailPerc) math.max(stopValue, longStopPrice[1]) else 0 shortStopPrice := if strategy.position_size < 0 stopValue = close * (1 + shortTrailPerc) math.min(stopValue, shortStopPrice[1]) else 999999 strategy.entry('Long', strategy.long, when=bullish and long_entry and timePeriod) strategy.exit('Exit', stop = longStopPrice, limit = shortStopPrice) //strategy.close('Long', when=bearish and not short_entry) //strategy.entry('Short', strategy.short, when=bearish and short_entry and timePeriod) //strategy.close('Short', when=bullish and not long_entry)