O Momentum 2.0 é um oscilador de Momentum normalizado com um nível de base móvel. O valor do oscilador é normalizado por seu desvio padrão, semelhante à técnica de pontuação z. Em vez do nível zero, o indicador usa o nível de base calculado como o valor médio invertido de longo prazo do oscilador. Semelhante ao sinal de cruzamento de nível zero usado para o oscilador de Momentum, nosso oscilador calcula o sinal de cruzamento de nível base. O nível de base móvel ajuda a reduzir o número de sinais falsos. Em uma tendência de alta, o nível de base está abaixo de zero, em uma tendência de baixa, ele está acima dele. Isso nos permite levar em conta o efeito de estabilidade da tendência. Neste caso, para formar um sinal de reversão, o oscilador deve cruzar um valor menor em uma tendência de alta e um valor maior em uma tendência de baixa.
Como utilizar Quando o oscilador cruza acima do nível de base, ele dá um sinal de alta, quando abaixo ele dá um sinal de baixa. A cor do histograma mostra a direção atual do momento do preço. O verde indica um movimento ascendente e o vermelho indica um movimento descendente. A linha azul representa o nível de base.
Configurações Período do oscilador - determina o período do oscilador de momento Período do nível de base - determina o período utilizado para a média a longo prazo no cálculo do nível de base e na normalização do oscilador
backtest
/*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)