The Dual RSI Breakthrough Strategy is a quantitative trading strategy that generates trading signals by using both fast and slow RSI indicators. The strategy forms trading signals through the breakthrough between the fast and slow RSI indicators to track market trends.
The strategy uses two RSI indicators simultaneously, a fast RSI indicator with a period of 2 and a slow RSI indicator with a period of 14. The trading signals of the strategy come from the breakthrough between the two RSI indicators.
When the slow RSI is greater than 50 and the fast RSI is less than 50, a long signal is generated. When the slow RSI is less than 50 and the fast RSI is greater than 50, a short signal is generated. After going long or short, if a stop loss signal occurs (a red K-line column appears when the long position loses money, and a green K-line column appears when the short position loses money), the position will be closed.
The strategy can also be optimized in the following aspects:
The dual RSI breakthrough strategy uses fast and slow RSI indicators to track market trend changes and forms trading signals in overbought and oversold areas, which can effectively avoid chasing peaks and killing bottoms. At the same time, a stop loss mechanism is set up to control risks. The strategy is simple to operate and easy to implement, suitable for quantitative trading. The profit factor can be further improved through parameter optimization, combination indicators, etc.
/*backtest start: 2024-01-10 00:00:00 end: 2024-01-17 00:00:00 period: 15m basePeriod: 5m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Double RSI Strategy 1.0", shorttitle = "2RSI str 1.0", overlay=true ) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(true, defval = true, title = "Short") leverage = input(1, defval = 1, minval = 1, maxval = 100, title = "leverage") fast = input(2, defval = 2, minval = 2, maxval = 100, title = "Fast RSI Period") slow = input(14, defval = 14, minval = 2, maxval = 100, title = "Slow RSI Period") fromyear = input(2018, defval = 2018, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Fast RSI fastup = rma(max(change(close), 0), fast) fastdown = rma(-min(change(close), 0), fast) fastrsi = fastdown == 0 ? 100 : fastup == 0 ? 0 : 100 - (100 / (1 + fastup / fastdown)) //Slow RSI slowup = rma(max(change(close), 0), slow) slowdown = rma(-min(change(close), 0), slow) slowrsi = slowdown == 0 ? 100 : slowup == 0 ? 0 : 100 - (100 / (1 + slowup / slowdown)) //Signals up = slowrsi > 50 and fastrsi < 50 dn = slowrsi < 50 and fastrsi > 50 exit = (strategy.position_size > 0 and close > open) or (strategy.position_size < 0 and close < open) lot = strategy.position_size == 0 ? strategy.equity / close * leverage : lot[1] //Trading if up if strategy.position_size < 0 strategy.close_all() strategy.entry("Long", strategy.long, needlong == false ? 0 : lot ) if dn if strategy.position_size > 0 strategy.close_all() strategy.entry("Short", strategy.short, needshort == false ? 0 : lot ) if exit strategy.close_all()template: strategy.tpl:40:21: executing "strategy.tpl" at <.api.GetStrategyListByName>: wrong number of args for GetStrategyListByName: want 7 got 6