
La stratégie est un système de trading quantitatif basé sur des signaux de croisement bi-homogènes, qui gère le risque en combinant un mécanisme de stop-loss et de stop-loss dynamique. La stratégie utilise des moyennes mobiles indicielles de 20 cycles et de 50 cycles (EMA) comme indicateur de signal et définit des niveaux de stop-loss et de stop-loss relativement modérés de 2,5% et 4% pour équilibrer les gains et les risques. Cette stratégie est spécialement conçue pour les traders à tolérance moyenne au risque, capables de saisir les opportunités et de contrôler les risques en temps opportun lorsque les tendances du marché changent.
La logique fondamentale de la stratégie repose sur les éléments clés suivants :
Il s’agit d’une stratégie de négociation quantifiée de risque moyen conçue de manière raisonnable, qui capture les tendances par le croisement de la même ligne, tout en utilisant la gestion dynamique du risque de stop-loss. Le principal avantage de la stratégie réside dans son degré élevé de systématisation. Le risque est contrôlable, mais dans l’application pratique, il faut faire attention à l’impact de l’environnement du marché sur la performance de la stratégie.
/*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")