
La estrategia es un sistema de comercio cuantitativo basado en señales de cruce de doble equilátero, para administrar el riesgo mediante la combinación de un mecanismo de stop-loss dinámico. La estrategia utiliza como indicador de señal una media móvil de 20 y 50 períodos (EMA) y establece un nivel de stop-loss y 4% de stop-loss relativamente moderado para equilibrar los beneficios y el riesgo. La estrategia está diseñada especialmente para los comerciantes con una tolerancia de riesgo moderada, capaces de capturar oportunidades y controlar el riesgo a tiempo cuando las tendencias del mercado cambian.
La lógica central de la estrategia se basa en los siguientes elementos clave:
Se trata de una estrategia de comercio de riesgo medio cuantificado de diseño razonable, captura de tendencias por el cruce de la línea de la igualdad, y al mismo tiempo el uso de la dinámica de control de pérdidas y detención. La principal ventaja de la estrategia es el alto grado de sistematización, el riesgo es controlable, pero en la aplicación práctica se debe tener en cuenta el impacto de la situación del mercado en el rendimiento de la estrategia.
/*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")