
Cette stratégie est une stratégie de trading quantitative à haute fréquence qui combine deux méthodes de trading classiques : le trading de momentum et le retour à la moyenne. La stratégie fonctionne sur une période de 5 minutes, en utilisant la moyenne mobile exponentielle (EMA) pour capturer les opportunités de tendance tout en utilisant les bandes de Bollinger pour identifier les conditions de prix de surachat et de survente, obtenant ainsi les avantages complémentaires de la logique de trading double. La stratégie est conçue avec une configuration de paramètres flexible et vous pouvez choisir d’activer le mode de trading simple ou combiné en fonction des différentes conditions du marché.
La stratégie adopte une conception logique de trading à deux niveaux :
Cette stratégie combine deux méthodes de trading classiques, le momentum et le retour à la moyenne, pour construire un système de trading quantitatif à haute fréquence avec une forte adaptabilité et des risques contrôlables. La conception modulaire et la flexibilité des paramètres de la stratégie lui confèrent une bonne valeur pratique. Grâce à une optimisation et une amélioration continues de la gestion des risques, on s’attend à ce qu’elle génère des rendements stables dans le cadre de transactions réelles.
/*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)