
La estrategia es un sistema de negociación de alta frecuencia basado en señales de cruce de medias móviles exponenciales (EMA) de corto plazo. Combina un mecanismo de seguimiento de volatilidad adaptativo con una gestión dinámica de posiciones y un estricto control de riesgos para capturar rápidamente las fluctuaciones del mercado a corto plazo. La estrategia se ejecuta en períodos de tiempo más cortos, como 1 minuto o 5 minutos, y es adecuada para operadores activos que buscan oportunidades comerciales frecuentes.
La lógica central de la estrategia se basa en las señales de cruce de la EMA rápida (3 períodos) y la EMA lenta (8 períodos). Cuando la línea rápida cruza por debajo de la línea lenta, se genera una señal larga; cuando la línea rápida cruza por debajo de la línea lenta, se genera una señal corta. La estrategia utiliza el indicador ATR para medir la volatilidad del mercado y establece dinámicamente objetivos de stop loss y ganancias en consecuencia. El sistema admite dos modos: negociación de cantidades de contratos fijas y gestión de posiciones dinámicas basada en el capital de la cuenta. En el modo de posición dinámica, el riesgo de cada transacción se controla dentro del 0,5% del capital de la cuenta. La estrategia utiliza una relación riesgo-recompensa de 1,2 veces y combina 1,5 veces el ATR como distancia de seguimiento para el stop loss móvil.
Esta estrategia construye un sistema completo de trading de alta frecuencia combinando señales de cruce de EMA a corto plazo y gestión dinámica de riesgos. Las ventajas de esta estrategia son la respuesta rápida y el estricto control de riesgos, pero también es necesario prestar atención a cuestiones como las señales falsas y los costos de transacción. A través de la optimización continua y el ajuste de parámetros, las estrategias pueden adaptarse mejor a diferentes entornos de mercado y mejorar la eficiencia y la estabilidad del comercio.
/*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-Frequency EMA Scalping Strategy - Adjustable Contracts", overlay=true, default_qty_type=strategy.fixed, default_qty_value=1)
// Input parameters
fastEmaLength = input.int(3, title="Fast EMA Length", minval=1)
slowEmaLength = input.int(8, title="Slow EMA Length", minval=1)
atrLength = input.int(10, title="ATR Length", minval=1)
riskRewardRatio = input.float(1.2, title="Risk/Reward Ratio", minval=1)
useDynamicPositionSizing = input.bool(false, title="Use Dynamic Position Sizing?")
fixedContracts = input.int(1, title="Number of Contracts (if Fixed)", minval=1) // Fixed number of contracts
// Calculate EMA values
fastEma = ta.ema(close, fastEmaLength)
slowEma = ta.ema(close, slowEmaLength)
// Calculate ATR for dynamic stop-loss and take-profit
atr = ta.atr(atrLength)
// Dynamic position sizing (if enabled)
capital = strategy.equity
riskPerTrade = capital * 0.005 // Risk 0.5% per trade
dynamicTradeQty = riskPerTrade / (atr * 1.5)
// Use fixed or dynamic position sizing
tradeQty = useDynamicPositionSizing ? dynamicTradeQty : fixedContracts
// Entry conditions
longCondition = ta.crossover(fastEma, slowEma)
shortCondition = ta.crossunder(fastEma, slowEma)
// Long trade execution
if longCondition
risk = atr * 1.0
reward = risk * riskRewardRatio
strategy.entry("Long", strategy.long, qty=tradeQty)
strategy.exit("Trailing Stop Long", from_entry="Long", trail_points=atr * 1.5, trail_offset=atr * 1.0)
strategy.exit("Take Profit", from_entry="Long", limit=close + reward, stop=close - risk)
// Short trade execution
if shortCondition
risk = atr * 1.0
reward = risk * riskRewardRatio
strategy.entry("Short", strategy.short, qty=tradeQty)
strategy.exit("Trailing Stop Short", from_entry="Short", trail_points=atr * 1.5, trail_offset=atr * 1.0)
strategy.exit("Take Profit", from_entry="Short", limit=close - reward, stop=close + risk)
// Plot EMA lines for reference
plot(fastEma, color=color.blue, title="Fast EMA")
plot(slowEma, color=color.red, title="Slow EMA")