Le momentum 2.0

Auteur:ChaoZhang est là., Date: 2022-05-10 10h24 et 44 min
Les étiquettes:Les tendances

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

img


/*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)

Relationnée

Plus de