
Esta estratégia é um sistema de trading de rastreamento de tendências baseado em múltiplos indicadores técnicos. Ela combina a tendência da média móvel, RSI sobrecomprado e sobrevendido e indicadores de volatilidade ATR para melhorar a taxa de sucesso e a lucratividade das transações por meio de análise de mercado multidimensional. A lógica central da estratégia é confirmar a direção da tendência por meio do cruzamento de EMAs de curto e longo prazo, usar o indicador RSI para filtrar falsos rompimentos e, finalmente, combinar o ATR para ajustar dinamicamente o tempo de espera para obter uma compreensão precisa de a tendência.
A estratégia usa as médias móveis da EMA de 20 e 50 dias como base principal para julgamento de tendências. Quando a EMA de curto prazo cruza acima da EMA de longo prazo, uma tendência de alta é confirmada; caso contrário, uma tendência de baixa é confirmada. Com base na confirmação da tendência, o indicador RSI é introduzido para julgar sobrecomprado e sobrevendido. Quando o RSI é menor que 30 e entra na faixa de sobrevenda e está em uma tendência ascendente, um sinal longo é acionado; quando o RSI é maior que 70 e entra na faixa de sobrecompra e está em tendência de baixa, um sinal longo é acionado; Quando , o sinal curto é acionado. Ao mesmo tempo, o indicador ATR é usado para medir a volatilidade do mercado. As transações são executadas somente quando o ATR é maior que o limite definido para evitar negociação em um ambiente de mercado com volatilidade muito baixa.
Esta estratégia constrói um sistema de negociação relativamente completo por meio de uma análise abrangente de três dimensões: tendência da média móvel, sobrecompra e sobrevenda do RSI e volatilidade do ATR. A principal vantagem da estratégia está na validação cruzada de múltiplos indicadores, o que pode efetivamente reduzir o impacto de sinais falsos. Ainda há muito espaço para otimização da estratégia por meio da otimização de parâmetros e melhoria do mecanismo de controle de risco. É recomendável que os traders ajustem os parâmetros de acordo com o ambiente de mercado específico e implementem rigorosamente medidas de controle de risco ao utilizá-lo em negociações reais.
/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("High Win Rate BTC Strategy", overlay=true)
// 参数设置
emaShortLength = input(20, title="Short EMA Length")
emaLongLength = input(50, title="Long EMA Length")
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
atrLength = input(14, title="ATR Length")
atrThreshold = input(1.0, title="ATR Threshold")
holdBars = input(5, title="Hold Bars")
// 计算指标
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
rsi = ta.rsi(close, rsiLength)
atr = ta.atr(atrLength)
// 趋势确认
uptrend = emaShort > emaLong
downtrend = emaShort < emaLong
// 入场条件
longCondition = uptrend and close > emaShort and rsi < rsiOverbought and atr > atrThreshold
shortCondition = downtrend and close < emaShort and rsi > rsiOversold and atr > atrThreshold
// 出场条件
var int holdCount = 0
if (strategy.position_size > 0 or strategy.position_size < 0)
holdCount := holdCount + 1
else
holdCount := 0
exitCondition = holdCount >= holdBars
// 执行交易
if (longCondition)
strategy.entry("Long", strategy.long)
if (shortCondition)
strategy.entry("Short", strategy.short)
if (exitCondition)
strategy.close_all()
// 绘制指标
plot(emaShort, color=color.blue, title="Short EMA")
plot(emaLong, color=color.red, title="Long EMA")
hline(rsiOverbought, "RSI Overbought", color=color.red)
hline(rsiOversold, "RSI Oversold", color=color.green)
plot(rsi, color=color.purple, title="RSI")