This strategy is a complex trading system that combines multiple technical indicators, designed to capture market trends and execute trades at optimal times. It primarily utilizes the Relative Strength Index (RSI), Simple Moving Averages (SMA), Fibonacci retracement levels, and concepts such as golden cross and death cross. The strategy operates on a 15-minute timeframe, using an initial capital of $1000 and a fixed position size.
The core logic of the strategy includes the following key components:
This Multi-Timeframe Fibonacci RSI Golden Cross Trend Following Quantitative Trading Strategy demonstrates how to combine multiple classic technical analysis tools to create a complex and comprehensive trading system. By integrating indicators such as RSI, moving average crossovers, and Fibonacci retracements, the strategy aims to capture strong market trends while managing risk using overbought and oversold levels.
While the strategy has the advantage of analyzing the market from multiple angles, there are still potential risks such as false breakout signals and the possibility of overtrading. To further improve the strategy’s performance and robustness, consider introducing multi-timeframe analysis, dynamic parameter adjustment, volume confirmation, and other optimization directions.
Overall, this strategy provides quantitative traders with an excellent starting point, showcasing how different technical indicators can be integrated into a coherent trading system. Through continuous optimization and backtesting, this strategy has the potential to become a powerful trend-following tool suitable for various market conditions.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("15min Fibonacci RSI Golden Cross Scalping Strategy", overlay=true) // Indicators rsi_length = 14 rsi = ta.rsi(close, rsi_length) short_ma_length = 50 long_ma_length = 200 short_ma = ta.sma(close, short_ma_length) long_ma = ta.sma(close, long_ma_length) // Fibonacci Retracement Levels var float fibHigh = na var float fibLow = na var float fib38 = na var float fib50 = na var float fib61 = na if (ta.change(ta.highest(close, 50))) fibHigh := ta.highest(close, 50) if (ta.change(ta.lowest(close, 50))) fibLow := ta.lowest(close, 50) if (not na(fibHigh) and not na(fibLow)) fib38 := fibHigh - (fibHigh - fibLow) * 0.382 fib50 := fibHigh - (fibHigh - fibLow) * 0.50 fib61 := fibHigh - (fibHigh - fibLow) * 0.618 // Plot indicators plot(short_ma, title="50-Period SMA", color=color.blue) plot(long_ma, title="200-Period SMA", color=color.red) hline(70, "RSI Overbought", color=color.red) hline(30, "RSI Oversold", color=color.green) plot(rsi, title="RSI", color=color.blue) // Fibonacci retracement lines // var line fib38_line = na // var line fib50_line = na // var line fib61_line = na // if (not na(fib38)) // line.delete(fib38_line) // fib38_line := line.new(x1=bar_index[1], y1=fib38, x2=bar_index, y2=fib38, color=color.yellow, width=1) // if (not na(fib50)) // line.delete(fib50_line) // fib50_line := line.new(x1=bar_index[1], y1=fib50, x2=bar_index, y2=fib50, color=color.orange, width=1) // if (not na(fib61)) // line.delete(fib61_line) // fib61_line := line.new(x1=bar_index[1], y1=fib61, x2=bar_index, y2=fib61, color=color.green, width=1) // Entry and Exit Conditions goldenCross = ta.crossover(short_ma, long_ma) deathCross = ta.crossunder(short_ma, long_ma) longCondition = goldenCross and close > fib50 and rsi < 70 shortCondition = deathCross and close < fib50 and rsi > 30 if (longCondition) strategy.entry("Buy", strategy.long) if (shortCondition) strategy.entry("Sell", strategy.short) // Close position conditions if (strategy.position_size > 0 and rsi > 70) strategy.close("Buy") if (strategy.position_size < 0 and rsi < 30) strategy.close("Sell")