本策略基于相对强弱指数(RSI)指标设计了一个纯多头交易系统。该系统通过配置RSI不同的上下轨,实现在RSI指标出现金叉时开仓做多,出现死叉时平仓。
本策略主要依靠RSI指标生成交易信号。RSI指标通过计算一定周期内收盘价上涨天数与下跌天数的比值,反映股票的超买超卖情况。RSI值高则代表超买,RSI值低则代表超卖。
具体来说,策略通过设置RSI的多个参数来生成交易信号:
在计算出RSI值后,策略采取以下原则产生交易信号:
这样,通过设定多组 RSI 上下轨来捕捉其在超买超卖区域之间的金叉死叉情况,实现趋势跟踪。
这种基于 RSI 的趋势跟踪策略具有以下几点优势:
当然,这种策略也存在一些风险需要注意:
对此,可以通过适当调整 RSI 周期参数、结合均线指标、设置合理止损位置等方式进行优化。
本策略还可从以下几个方面进行进一步优化:
本策略通过配置化的 RSI 技术指标,实现了一个简单的趋势跟踪交易系统。策略思路清晰易懂,可根据自身需要调整参数。但也存在一些风险,需要注意防范。有很大的优化空间,可与其他指标组合丰富策略,也可引入机器学习等新技术进行智能化升级。总体来说,本策略为量化交易提供了一个高效灵活的思路,值得深入研究与应用。
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version= 4
// https://sauciusfinance.altervista.org, another trading idea, suggested by the fact that RSI tends to accompany the trend
strategy(title="Pure RSI long only", overlay = true, max_bars_back=500)
// INPUTS
rsi_low = input(30, title ="RSI lower band", minval=5, step = 1)
rsi_middle = input(55, title ="RSI middle band", minval=10, step = 1)
rsi_mhigh = input(60, title ="RSI middle high", minval=20, step = 1)
rsi_high = input(70, title ="RSI high", minval=30, step = 1)
rsi_top = input(75, title ="RSI top", minval=30, step = 1)
rsi_period = input(14, title="RSI period", minval = 1, step = 1)
// CALCULATIONS
myrsi = rsi(close, rsi_period)
/// Entry: when RSI rises from the bottom or, after a retracement, it overcomes again the middle level of 50
strategy.entry("Long", true, when = crossover(myrsi,rsi_low))
strategy.entry("Long", true, when = crossover(myrsi,rsi_middle))
/// EXITS: when RSI crosses under the initial bottom level (stop loss) or undergoes one of the next 3 steps : 50, 60, 70 or it's simply
// higher than 70
// you may test viceversa for short, adding level of 40
strategy.close("Long", when = crossunder(myrsi, rsi_low), comment="low")
strategy.close("Long", when = crossunder(myrsi, rsi_middle), comment="middle")
strategy.close("Long", when = crossunder(myrsi, rsi_mhigh), comment="middle-hi")
strategy.close("Long", when = crossunder(myrsi, rsi_high), comment="high")
strategy.close("Long", when = (myrsi>rsi_top), comment="top")
plotchar(myrsi, title = "myrsi", char='+', color=color.black)
// CONCLUSION: this system give notable results related to MA & RSI trading system and it's a good alternative. The best is making
// roboadvisoring by working this two system togheter, i.e. watching both MA and levels of RSI together (you may also enter if RSI
// crosses over 30 and then wait for a confirm in MA)