Momentum 2.0 est un oscillateur de Momentum normalisé avec un niveau de base mobile. La valeur de l'oscillateur est normalisée par son écart type, similaire à la technique du z-score. Au lieu du niveau zéro, l'indicateur utilise le niveau de base calculé comme la valeur moyenne inverse à long terme de l'oscillateur. Le niveau de base en mouvement aide à réduire le nombre de faux signaux. Dans une tendance haussière, le niveau de base est inférieur à zéro, dans une tendance baissière, il est supérieur. Cela nous permet de prendre en compte l'effet de stabilité de la tendance. Dans ce cas, pour former un signal d'inversion, l'oscillateur doit franchir une valeur inférieure dans une tendance haussière et une valeur plus élevée dans une tendance baissière.
Comment l' utiliser Lorsque l'oscillateur dépasse le niveau de base, il donne un signal haussier, lorsqu'il est en dessous, il donne un signal baissier. La couleur de l'histogramme montre la direction actuelle de la dynamique des prix. Le vert indique un mouvement à la hausse et le rouge indique un mouvement à la baisse. La ligne bleue représente le niveau de base.
Réglages Période de l'oscillateur - détermine la période de l'oscillateur Momentum Période de niveau de base - détermine la période utilisée pour la moyenne à long terme lors du calcul du niveau de base et de la normalisation de l'oscillateur
test de retour
/*backtest start: 2022-04-09 00:00:00 end: 2022-05-08 23:59:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © AstrideUnicorn //@version=5 indicator("Momentum 2.0", overlay = false) source = close // Script Inputs window = input(defval=15, title="Oscillator Period") base_level_window = input.int(defval=450, title="Base Level Period", minval=300) // Calculate normalized and smoothed momentum oscillator momentum = ta.mom(source, window) momentum_normalized = ( momentum ) / ta.stdev(momentum, base_level_window) momentum_smoothed = ta.linreg(momentum_normalized, 30,0) // Calculated the base-level momentum_base = -ta.ema(momentum_normalized,base_level_window) // Calculate base-level cross signals bullish = ta.crossover(momentum_smoothed, momentum_base) bearish = ta.crossunder(momentum_smoothed, momentum_base) if bullish strategy.entry("Enter Long", strategy.long) else if bearish strategy.entry("Enter Short", strategy.short)