Esta estratégia é um sistema de negociação quantitativo baseado em sinais cruzados de média móvel dupla, combinado com mecanismos dinâmicos de stop-loss e take-profit para gerenciamento de riscos. A estratégia emprega médias móveis exponenciais (EMA) de 20 períodos e 50 períodos como indicadores de sinal, com níveis moderados de stop-loss de 2,5% e take-profit de 4% para equilibrar retornos e riscos. Este design de estratégia é particularmente adequado para comerciantes com tolerância moderada ao risco, capazes de capturar mudanças na tendência do mercado enquanto controlam os riscos.
A lógica central da estratégia baseia-se nos seguintes elementos-chave:
Esta é uma estratégia de negociação quantitativa de risco moderado bem projetada que capta tendências através de cruzamento de médias móveis, gerindo o risco com níveis dinâmicos de stop-loss e take-profit. As principais vantagens da estratégia estão em sua alta natureza sistemática e risco controlado, mas deve-se prestar atenção às condições de mercado que afetam o desempenho da estratégia. Através de otimização e melhoria contínua, esta estratégia tem o potencial de manter um desempenho estável em diferentes ambientes de mercado.
/*backtest start: 2024-10-12 00:00:00 end: 2024-11-11 00:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia STX - Medias Móviles con Riesgo Medio", overlay=true) // Parámetros configurables mmr_period = input.int(20, title="Periodo Media Móvil Rápida (MMR)") mml_period = input.int(50, title="Periodo Media Móvil Lenta (MML)") stop_loss_percent = input.float(2.5, title="Stop-Loss (%)", step=0.1) // Stop-Loss moderado take_profit_percent = input.float(4.0, title="Take-Profit (%)", step=0.1) // Take-Profit moderado // Cálculo de medias móviles (Exponenciales) mmr = ta.ema(close, mmr_period) // Media Móvil Rápida mml = ta.ema(close, mml_period) // Media Móvil Lenta // Señales de Compra y Venta long_condition = ta.crossover(mmr, mml) // Señal de compra short_condition = ta.crossunder(mmr, mml) // Señal de venta // Calcular niveles de Stop-Loss y Take-Profit solo al activar la compra var float entry_price = na var float stop_loss_level = na var float take_profit_level = na if (long_condition) entry_price := close stop_loss_level := entry_price * (1 - stop_loss_percent / 100) take_profit_level := entry_price * (1 + take_profit_percent / 100) // Condiciones de salida (Stop-Loss y Take-Profit) exit_condition = (close <= stop_loss_level) or (close >= take_profit_level) // Ejecución de Órdenes if (long_condition) strategy.entry("Compra", strategy.long) if (short_condition or exit_condition) strategy.close("Compra") // Trazar Medias Móviles y Niveles plot(mmr, color=color.blue, linewidth=2, title="Media Móvil Rápida (MMR)") plot(mml, color=color.orange, linewidth=2, title="Media Móvil Lenta (MML)") plot(not na(entry_price) ? stop_loss_level : na, color=color.red, style=plot.style_line, linewidth=1, title="Stop-Loss") plot(not na(entry_price) ? take_profit_level : na, color=color.green, style=plot.style_line, linewidth=1, title="Take-Profit")