Impulso 2.0

Autora:ChaoZhang, Data: 2022-05-10 10:24:44
Tags:Tendências

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

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)

Relacionados

Mais.