动量2.0是具有移动基态的归一化动量振荡器。振荡器值通过其标准偏差进行归一化,类似于z评分技术。指示器使用作为振荡器的反向长期平均值计算的基准电平,而不是零电平。与动量振荡器使用的零电平交叉信号类似,我们的振荡器计算基极电平交叉信号。 移动基准电平有助于减少错误信号的数量。在上升趋势中,基准面低于零,在下降趋势中,基准面高于零。这使我们能够考虑到趋势稳定性效应。在这种情况下,为了形成反转信号,振荡器必须在上升趋势中穿过一个较低的值,在下降趋势中穿过一个较高的值。
如何使用 当振荡器穿过基面以上时,发出看涨信号,低于基面时发出看跌信号。信号分别显示为绿色和红色标签。 直方图的颜色显示了当前价格走势的方向。绿色表示向上移动,红色表示向下移动。蓝线表示基准标高。
设置 振荡器周期-确定动量振荡器的周期 基极周期-确定在计算基极和规范化振荡器时用于长期平均的周期
回测测试
/*backtest start: 2021-12-01 09:00:00 end: 2022-05-30 15:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_CTP","currency":"FUTURES"}] args: [["v_input_1",6],["v_input_int_1",100],["ContractType","rb2210",360008]] */ // 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=6, title="振荡器周期") base_level_window = input.int(defval=100, title="基础等级周期", minval=100) // 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)