策略
RSI跳空反转策略RSI-Gap-Reversal-Strategy
ChaoZhang · PineScript · 均值回归 · 2023-11-24 16:01:31
概述
GBP RSI跳空反转策略是一种基于RSI指标识别趋势反转机会的短线交易策略。该策略通过RSI指标判断多头区域或空头区域突破,形成跳空反转形态后入场,实现及时捕捉市场反转点的机会。
策略原理
该策略主要依赖RSI指标判断超买超卖的形成。具体规则如下:
- 判断RSI指标是否由超卖区上穿23进行突破,形成由空转多的跳空反转形态,如果满足则做多入场。
- 多单止盈条件为RSI指标上穿75时止盈;止损条件为亏损189个点时止损。
- 判断RSI指标是否由超买区下穿75进行突破,形成由多转空的跳空反转形态,如果满足则做空入场。
- 空单止盈条件为RSI指标下穿23时止盈;止损条件为亏损152个点时止损。
通过判断突破性反转形态入场,及时捕捉反转机会是本策略的核心思路。同时设置止盈止损条件锁定盈利,避免反转失败的风险。
优势
- 利用RSI指标判断反转形态,及时捕捉市场反转机会。
- 反转形态突破出现跳空 GAP,成功率较高。
- 设置止盈止损条件,可以有效控制风险。
- 策略思路简单清晰,容易理解实施。
风险
- RSI指标产生假反转信号的概率存在,可能入场后再次反转回来。
- 止盈止损点设定不当,可能造成过早止盈或止损。
- 策略参数需要不断测试优化,如RSI周期长度、超买超卖区域等。
- 不同品种和时间周期,参数设置会有较大差异。
优化方向
- 测试不同的RSI参数设置,优化反转识别效果。
- 增加其他指标过滤,避免假反转的概率。比如加入MACD指标确认。
- 增加反转突破的交易量过滤条件。
- 测试不同时间周期参数优化,寻找最佳适用周期。
总结
GBP RSI跳空反转策略通过捕捉RSI指标反转跳空信号进行操作。策略思路简单清晰,容易掌握;同时具有高成功率和风险控制等优势。但也不能完全避免反转失败的概率,需要进一步优化参数并辅助其他指标过滤。该策略适用于熟悉反转操作的短线交易者,特别是对GBP品种比较了解的交易者。
参数
| 参数 | 默认值 | 说明 |
|---|---|---|
| v_input_1 | 8 | length |
| v_input_2 | 23 | overSold |
| v_input_3 | 75 | overBought |
| v_input_4 | 35 | overSoldP |
| v_input_5 | 78 | overBoughtP |
| v_input_6 | 406 | ProfitL |
| v_input_7 | 189 | LossL |
| v_input_8 | 370 | ProfitS |
| v_input_9 | 152 | LossS |
| v_input_10 | 16 | BarssinceL |
| v_input_11 | 26 | BarssinceS |
源码(45 行)
/*backtest
start: 2022-11-23 00:00:00
end: 2023-06-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("GBP combine", overlay=true)
length = input( 8 )
overSold = input( 23 )
overBought = input( 75 )
price = close
overSoldP = input( 35 )
overBoughtP = input (78)
ProfitL = input(406)
LossL = input(189)
ProfitS = input(370)
LossS = input(152)
BarssinceL = input(16)
BarssinceS = input(26)
vrsi = rsi(price, length)
longCondition() => crossunder(vrsi, overSold)
closeLPLCondition() => crossover(vrsi, overBoughtP)
closeLCondition() => barssince(longCondition())>BarssinceL
shortCondition() => crossover (vrsi, overBought)
closeLPSCondition() => crossunder(vrsi, overSoldP)
closeSCondition() => barssince(shortCondition())>BarssinceS
if (longCondition())
strategy.entry("Long", strategy.long)
strategy.exit ("Exit", "Long", profit=ProfitL,loss=LossL)
strategy.close("Long", when = closeLPLCondition() or closeLCondition())
if (shortCondition())
strategy.entry("Short", strategy.short)
strategy.exit ("Exit", "Short", profit=ProfitS,loss=LossS)
strategy.close("Short", when = closeLPSCondition() or closeSCondition())
//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)