Импульс 2.0

Автор:Чао Чжан, Дата: 2022-05-10 10:24:44
Тэги:Тенденции

Momentum 2.0 - это нормализованный импульсный осциллятор с движущимся базовым уровнем. Значение осциллятора нормализуется его стандартным отклонением, подобно методу z-score. Вместо нулевого уровня индикатор использует базовый уровень, рассчитанный как перевернутое долгосрочное среднее значение осциллятора. Движущийся базовый уровень помогает уменьшить количество ложных сигналов. В восходящем тренде базовый уровень ниже нуля, в нисходящем он выше него. Это позволяет учитывать эффект стабильности тренда. В этом случае, чтобы сформировать обратный сигнал, осциллятор должен пересечь более низкое значение в восходящем тренде и более высокое значение в нисходящем тренде.

Как использовать Когда осциллятор пересекает базовый уровень, он дает бычий сигнал, когда ниже он дает медвежий сигнал. Цвет гистограммы показывает текущее направление импульса цены. Зеленый указывает на подъем, а красный - на падение. Синяя линия представляет собой базовый уровень.

Установки Период осциллятора - определяет период осциллятора импульса Период базового уровня - определяет период, используемый для длительного среднего при расчете базового уровня и нормализации осциллятора.

обратная проверка

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)

Связанные

Больше