MACD RSI Ichimoku Momentum Trend Following Long Strategy

Author: ChaoZhang, Date: 2024-04-30 17:42:09



The “MACD RSI Ichimoku Momentum Trend Following Long Strategy” is a quantitative trading strategy that integrates MACD, RSI, and Ichimoku indicators. By analyzing signals from MACD, RSI, and Ichimoku Cloud, the strategy aims to capture market trends and momentum, enabling trend tracking and timing of trades. The strategy allows flexible settings for indicator parameters and trading periods, accommodating different trading styles and markets.

Strategy Principles

The core of this strategy lies in the combined use of MACD, RSI, and Ichimoku indicators:

  1. MACD, composed of the difference between a fast and slow moving average, is used to determine trend direction and momentum changes. A bullish signal is generated when the MACD line crosses above the signal line, and a bearish signal when it crosses below.
  2. RSI measures the magnitude of price changes over a period, indicating overbought or oversold conditions. An RSI below 30 may indicate oversold conditions, while above 70 may suggest overbought conditions.
  3. The Ichimoku Cloud, consisting of the Tenkan-sen, Kijun-sen, Senkou Span A, and Senkou Span B lines, provides multilateral information such as support, resistance, and trend strength. The strategy enters a long position when MACD is bullish, price is above the Cloud, and RSI is not overbought. It closes the position when MACD forms a bearish crossover or price breaks below the Cloud.

Strategy Advantages

  1. Multi-indicator validation improves the accuracy of trend judgment. MACD captures trend direction, RSI assists in timing, and Ichimoku provides a more comprehensive market overview, enhancing strategy reliability.
  2. Flexible parameters and strong adaptability. Allows adjustments to MACD, RSI, and Ichimoku settings to accommodate different trading styles and market characteristics.
  3. Risk management. Sets stop-loss and take-profit levels to control drawdowns; scales into positions to reduce entry risk.
  4. Wide applicability. Can be used in multiple markets and instruments to seize various trend opportunities.

Strategy Risks

  1. Conflicting indicator signals. MACD, RSI, and Ichimoku may occasionally generate contradictory signals, leading to misjudgments.
  2. Improper parameter settings. Inappropriate parameters can invalidate the strategy, requiring optimization based on market characteristics and backtesting.
  3. Subpar performance in rangebound markets. Trend-following strategies often trade frequently in rangebound markets, and high costs may erode profits.
  4. Black swan event risk. Certain events can trigger abnormal price fluctuations that defy indicator signals.

Strategy Optimization Directions

  1. Enhance trend confirmation conditions, such as sustained price rise within the Cloud, MACD divergence, etc., to improve entry quality.
  2. Introduce stop-loss, take-profit, and position sizing to control drawdowns and improve risk-adjusted returns.
  3. Optimize parameters to adapt to characteristics of different instruments and timeframes, enhancing robustness.
  4. Consider incorporating trailing stops to ride winners and maximize gains.


The “MACD RSI Ichimoku Momentum Trend Following Long Strategy” is a powerful quantitative trading strategy that comprehensively evaluates trends and momentum using MACD, RSI, and Ichimoku indicators. It demonstrates good ability to capture trends and control rhythm in directional markets. Through parameter optimization and risk control measures, this strategy can become a potent tool for seizing market opportunities and achieving robust returns.

start: 2023-04-24 00:00:00
end: 2024-04-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]

// @ Julien_Eche

strategy("MACD RSI Ichimoku Strategy", overlay=true)

string t1 = ("If checked, this strategy is suitable for those who buy and sell. If unchecked, it is suitable for those who only want to take long positions—buying and closing buys.")

start_date = input(timestamp("1975-01-01T00:00:00"), title="Start Date")
end_date = input(timestamp("2099-01-01T00:00:00"), title="End Date")

// Input settings for Ichimoku Cloud lengths
length1 =, title="Tenkan-sen Length", minval=1)
length2 =, title="Kijun-sen Length", minval=1)
length3 =, title="Senkou Span Length", minval=1)

// Calculate Ichimoku Cloud components based on input lengths
tenkanSen = ta.sma(high + low, length1) / 2
kijunSen = ta.sma(high + low, length2) / 2
senkouSpanA = ((tenkanSen + kijunSen) / 2)[length2]
senkouSpanB = ta.sma(high + low, length3) / 2

// Input settings for MACD parameters
macdFastLength = input(12, title="MACD Fast Length")
macdSlowLength = input(26, title="MACD Slow Length")
macdSignalLength = input(9, title="MACD Signal Length")

// Calculate MACD
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)

// Input settings for RSI length
rsiLength = input(14, title="RSI Length")

// Calculate RSI
rsiValue = ta.rsi(close, rsiLength)

// Determine Buy/Sell behavior based on input
buySell = input(false, title="Buy/Sell", tooltip=t1)

// More sensitive entry conditions (Buy Only)
canEnter = ta.crossover(tenkanSen, kijunSen) or (close > senkouSpanA and close > senkouSpanB and macdLine > signalLine and rsiValue < 70)

// Enter long position (Buy) with time condition
if (canEnter)
    strategy.entry("Buy", strategy.long)

// More sensitive exit conditions (Close Buy) with time condition
canExit = ta.crossunder(tenkanSen, kijunSen) or (close < senkouSpanA and close < senkouSpanB)

// Determine exit behavior based on user input
if buySell
    // Sell to close long position (Short) with time condition
    if (canExit )
        strategy.entry("Sell", strategy.short)
    // Sell to exit long position (Buy/Sell) with time condition
    if (canExit )
        strategy.close("Buy", comment="Sell for exit")