
Esta estrategia es una estrategia de trading cuantitativo de alta frecuencia que combina dos métodos de trading clásicos: trading de impulso y reversión a la media. La estrategia se ejecuta en un marco de tiempo de 5 minutos, utilizando la media móvil exponencial (EMA) para capturar oportunidades de tendencia mientras utiliza las bandas de Bollinger para identificar condiciones de precios de sobrecompra y sobreventa, logrando ventajas complementarias de la lógica de negociación dual. La estrategia está diseñada con una configuración de parámetros flexible y usted puede elegir habilitar el modo de negociación único o combinado según las diferentes condiciones del mercado.
La estrategia adopta un diseño de lógica comercial de dos capas:
Esta estrategia combina dos métodos de trading clásicos, el impulso y la reversión a la media, para construir un sistema de trading cuantitativo de alta frecuencia con fuerte adaptabilidad y riesgos controlables. El diseño modular y la flexibilidad de parámetros de la estrategia le otorgan un buen valor práctico. Mediante la optimización y la mejora continuas de la gestión de riesgos, se espera lograr rendimientos estables en operaciones reales.
/*backtest
start: 2024-12-06 00:00:00
end: 2025-01-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Momentum and Mean Reversion Strategy", shorttitle = "MMV_V1", overlay=true)
// --- Inputit ja parametrit ---
use_momentum = input.bool(true, title="Käytä Momentum-strategiaa")
use_mean_reversion = input.bool(true, title="Käytä Keskiarvoon Palautumista (BB)")
// Momentum-parametrit
short_ema_period = input.int(50, title="Lyhyt EMA")
long_ema_period = input.int(400, title="Pitkä EMA")
// Bollinger Band -parametrit
bb_length = input.int(20, title="BB Pituus")
bb_std = input.float(2.0, title="BB Standardipoikkeama")
// --- Momentum-strategia: EMA-risteämä ---
short_ema = ta.ema(close, short_ema_period)
long_ema = ta.ema(close, long_ema_period)
momentum_long_signal = ta.crossover(short_ema, long_ema)
momentum_short_signal = ta.crossunder(short_ema, long_ema)
// --- Keskiarvoon palautuminen: Bollinger Bands ---
[bb_upper, bb_middle, bb_lower] = ta.bb(close, bb_length, bb_std)
bb_long_signal = ta.crossover(close, bb_lower) // Osto, kun hinta nousee alemman BB:n yli
bb_short_signal = ta.crossunder(close, bb_upper) // Myynti, kun hinta laskee ylemmän BB:n ali
// --- Kaupankäyntilogiikka ---
if (use_momentum and momentum_long_signal)
strategy.entry("Momentum Long", strategy.long)
if (use_momentum and momentum_short_signal)
strategy.entry("Momentum Short", strategy.short)
if (use_mean_reversion and bb_long_signal)
strategy.entry("BB Long", strategy.long)
if (use_mean_reversion and bb_short_signal)
strategy.entry("BB Short", strategy.short)