
Esta estratégia é uma estratégia de negociação quantitativa de alta frequência que combina dois métodos clássicos de negociação: negociação de momentum e reversão à média. A estratégia é executada em um período de 5 minutos, usando a Média Móvel Exponencial (MME) para capturar oportunidades de tendência, enquanto usa as Bandas de Bollinger para identificar condições de preço de sobrecompra e sobrevenda, alcançando vantagens complementares da lógica de negociação dupla. A estratégia é projetada com configuração de parâmetros flexível, e você pode escolher habilitar o modo de negociação simples ou combinado de acordo com diferentes condições de mercado.
A estratégia adota um design lógico de negociação de duas camadas:
Esta estratégia combina dois métodos clássicos de negociação, momentum e reversão à média, para construir um sistema de negociação quantitativa de alta frequência com forte adaptabilidade e riscos controláveis. O design modular e a flexibilidade de parâmetros da estratégia lhe dão um bom valor prático. Por meio da otimização contínua e melhoria do gerenciamento de risco, espera-se atingir retornos estáveis em negociações reais.
/*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)