Le Cloud Ichimoku et le MACD Momentum Riding est une stratégie de suivi des tendances combinant l'indicateur Ichimoku Cloud et l'indicateur MACD momentum. La stratégie utilise le Cloud Ichimoku pour déterminer la direction de la tendance et les niveaux de support / résistance, ainsi que l'indicateur MACD pour détecter l'inversion de l'élan, et entre sur le marché en temps opportun pendant une tendance. Pendant ce temps, la stratégie adopte un stop loss pour verrouiller les profits et réduire les retraits.
Le nuage Ichimoku est composé de la ligne de virage (Tenkan-Sen), de la ligne de base (Kijun-Sen), de la ligne de tendance A (Senkou-Span A), de la ligne de tendance B (Senkou-Span B) et de la ligne de confirmation (Chikou-Span).
La convergence moyenne mobile ou MACD est un indicateur de dynamique. Dans cette stratégie, lorsque la ligne rapide MACD traverse au-dessus de la ligne lente, c'est un signal d'achat, et lorsque la ligne rapide traverse au-dessous de la ligne lente, c'est un signal de vente.
Lorsque la ligne de virage traverse au-dessus de la ligne de base, la ligne de confirmation traverse au-dessus du prix de clôture de 26 barres, les bris de prix de clôture au-dessus de la bande supérieure de Cloud, et la ligne rapide du MACD
Lorsque le prix augmente de 3%, la stratégie déplace le stop loss à 97% du prix actuel pour verrouiller les bénéfices et suivre le mouvement à la hausse.
Lorsque la ligne de virage traverse en dessous de la ligne de base, la ligne de confirmation traverse en dessous du prix de clôture de 26 barres, le prix de clôture se déplace en dessous de la bande inférieure de Cloud, et la ligne rapide du MACD
Lorsque le prix chute de 3%, la stratégie déplace le stop loss à 103% du prix actuel pour verrouiller les bénéfices et suivre le mouvement à la baisse.
Cette stratégie combine l'identification des tendances et le moment de l'entrée, ce qui peut permettre d'obtenir de bons rendements pendant les marchés en tendance.
Ichimoku Cloud peut clairement identifier la direction de la tendance.
Le MACD est efficace pour détecter les renversements de momentum à court terme.
Le trailing stop loss permet à la stratégie de continuer à fonctionner pendant une tendance.
Cette stratégie comporte également certains risques:
Les nuages ont besoin de périodes de réflexion relativement longues et peuvent donner des signaux inexacts à court terme.
Le MACD oscille avec le prix et peut générer de faux signaux.
Le pourcentage de stop loss doit être ajusté en conséquence, sinon les whipsaws peuvent s'arrêter trop fréquemment pendant les marchés en évolution.
La stratégie elle-même ne gère pas le risque.
La stratégie Ichimoku Cloud et MACD Momentum Riding peut être optimisée de la manière suivante:
Ajustement des paramètres - Ajustez la ligne de virage, les périodes de rétrospective de la ligne de base, optimisez les paramètres MACD pour des signaux plus clairs.
Ajoutez la filtration - Utilisez d'autres indicateurs comme le RSI, les bandes de Bollinger pour filtrer les mauvais signaux, réduisant les faux signaux.
Le montant de l'obligation de dépôt de garantie est le montant de la garantie de dépôt de garantie.
L'exposition à la volatilité doit être calculée en fonction de l'évolution de la valeur de l'échange.
Sélection automatique des contrats et rééquilibrage - Élargir l'adaptabilité à davantage de marchés.
La stratégie Ichimoku Cloud et MACD Momentum Riding prend en compte à la fois la tendance et le timing, ce qui peut atteindre un bon rendement lorsque les paramètres sont correctement ajustés et que les contrôles des risques sont en place.
/*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)