Momentum 2.0 es un oscilador de momento normalizado con un nivel base móvil. El valor del oscilador se normaliza por su desviación estándar, similar a la técnica de puntaje z. En lugar del nivel cero, el indicador utiliza el nivel base calculado como el valor promedio invertido a largo plazo del oscilador. Similar a la señal de cruce de nivel cero utilizada para el oscilador de momento, nuestro oscilador calcula la señal de cruce de nivel base. El nivel de base móvil ayuda a reducir el número de señales falsas. En una tendencia alcista, el nivel de base está por debajo de cero, en una tendencia bajista está por encima de él. Esto nos permite tener en cuenta el efecto de estabilidad de la tendencia. En este caso, para formar una señal de inversión, el oscilador debe cruzar un valor más bajo en una tendencia alcista y un valor más alto en una tendencia bajista.
Cómo utilizar Cuando el oscilador cruza por encima del nivel base, da una señal alcista, cuando por debajo da una señal bajista. El color del histograma muestra la dirección actual del impulso del precio. El verde indica un movimiento ascendente y el rojo indica un movimiento descendente. La línea azul representa el nivel base.
Configuración Período del oscilador - determina el período del oscilador de impulso Período de nivel base - determina el período utilizado para la media a largo plazo al calcular el nivel base y normalizar el oscilador.
Prueba posterior
/*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)