Esta estratégia é um sistema de negociação de tendência baseado em múltiplos indicadores técnicos, combinando tendências de EMA, condições de sobrecompra / sobrevenda do RSI e indicadores de volatilidade ATR para melhorar as taxas de ganho e retornos de negociação através de análise de mercado multidimensional.
A estratégia emprega EMAs de 20 dias e 50 dias como a base principal para a determinação da tendência. Uma tendência de alta é confirmada quando a EMA de curto prazo cruza acima da EMA de longo prazo e vice-versa. Com base na confirmação da tendência, o indicador RSI é introduzido para julgamento de sobrecompra / sobrevenda, desencadeando sinais longos quando o RSI cai abaixo de 30 em território sobrevendido durante as tendências de alta e sinais curtos quando o RSI sobe acima de 70 em território sobrecomprado durante as tendências de baixa. O indicador ATR mede a volatilidade do mercado, executando transações apenas quando o ATR excede o limiar definido para evitar negociações em ambientes de baixa volatilidade.
Esta estratégia constrói um sistema de negociação relativamente completo por meio de análise abrangente das tendências da EMA, condições de sobrecompra/supervenda do RSI e volatilidade da ATR. Sua principal vantagem reside na validação cruzada de múltiplos indicadores, reduzindo efetivamente o impacto de falsos sinais. Através da otimização de parâmetros e melhorias no mecanismo de controle de risco, a estratégia ainda tem um potencial de otimização significativo.
/*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")