Esta estrategia es un sistema de negociación basado en múltiples indicadores técnicos, que combina tendencias de EMA, condiciones de sobrecompra / sobreventa de RSI e indicadores de volatilidad ATR para mejorar las tasas de ganancia y los rendimientos comerciales a través del análisis de mercado multidimensional.
La estrategia emplea EMAs de 20 días y 50 días como la base principal para la determinación de tendencias. Una tendencia alcista se confirma cuando la EMA a corto plazo cruza por encima de la EMA a largo plazo, y viceversa. Basándose en la confirmación de tendencia, se introduce el indicador RSI para el juicio de sobrecompra/sobreventa, lo que desencadena señales largas cuando el RSI cae por debajo de 30 en el territorio sobreventa durante las tendencias alcistas, y señales cortas cuando el RSI sube por encima de 70 en el territorio sobrecomprado durante las tendencias bajistas. El indicador ATR mide la volatilidad del mercado, ejecutando operaciones solo cuando ATR excede el umbral establecido para evitar la negociación en entornos de baja volatilidad.
Esta estrategia construye un sistema de negociación relativamente completo a través de un análisis exhaustivo de las tendencias de la EMA, las condiciones de sobrecompra / sobreventa del RSI y la volatilidad del ATR. Su principal ventaja radica en la validación cruzada de múltiples indicadores, reduciendo efectivamente el impacto de las señales falsas. A través de la optimización de parámetros y las mejoras en el mecanismo de control de riesgos, la estrategia aún tiene un potencial de optimización significativo. Se aconseja a los operadores que ajusten los parámetros de acuerdo con entornos específicos del mercado y implementen estrictamente las medidas de control de riesgos cuando se utilizan en el comercio en vivo.
/*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")