
Эта стратегия представляет собой высокочастотную количественную торговую стратегию, которая сочетает в себе два классических метода торговли: импульсную торговлю и возврат к среднему. Стратегия работает на 5-минутном таймфрейме, используя экспоненциальную скользящую среднюю (EMA) для отслеживания трендовых возможностей, а также полосы Боллинджера для определения состояний перекупленности и перепроданности, достигая дополнительных преимуществ двойной торговой логики. Стратегия разработана с гибкой настройкой параметров, и вы можете выбрать режим одиночной или комбинированной торговли в зависимости от различных рыночных условий.
Стратегия использует двухуровневую торговую логику:
Эта стратегия объединяет два классических метода торговли: импульс и возврат к среднему значению, для создания высокочастотной количественной торговой системы с высокой адаптивностью и контролируемыми рисками. Модульная конструкция и гибкость параметров стратегии придают ей хорошую практическую ценность. Ожидается, что благодаря постоянной оптимизации и улучшению управления рисками она будет достигать стабильной прибыли в реальной торговле.
/*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)