
Bei dieser Strategie handelt es sich um eine hochfrequente quantitative Handelsstrategie, die zwei klassische Handelsmethoden kombiniert: Momentum-Trading und Mean Reversion. Die Strategie läuft in einem 5-Minuten-Zeitrahmen und nutzt den Exponential Moving Average (EMA), um Trendchancen zu erfassen, während Bollinger Bands zum Einsatz kommen, um überkaufte und überverkaufte Preisbedingungen zu identifizieren. Dadurch werden die komplementären Vorteile der dualen Handelslogik erreicht. Die Strategie ist mit einer flexiblen Parameterkonfiguration ausgestattet und Sie können je nach Marktbedingungen den einzelnen oder kombinierten Handelsmodus aktivieren.
Die Strategie basiert auf einer zweischichtigen Handelslogik:
Diese Strategie kombiniert zwei klassische Handelsmethoden, Momentum und Mean Reversion, um ein hochfrequentes quantitatives Handelssystem mit starker Anpassungsfähigkeit und kontrollierbaren Risiken aufzubauen. Der modulare Aufbau und die Parameterflexibilität der Strategie verleihen ihr einen guten Praxiswert. Durch kontinuierliche Optimierung und Verbesserung des Risikomanagements sind im realen Handel stabile Renditen zu erwarten.
/*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)