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.
The core of this strategy lies in the combined use of MACD, RSI, and Ichimoku indicators:
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.
/*backtest 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 //@version=5 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 = input.int(9, title="Tenkan-sen Length", minval=1) length2 = input.int(26, title="Kijun-sen Length", minval=1) length3 = input.int(52, 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) else // Sell to exit long position (Buy/Sell) with time condition if (canExit ) strategy.close("Buy", comment="Sell for exit")