モメント2.0は,動くベースレベルを持つ正規化されたモメントオシレーターである.オシレーターの値は,zスコア技術に類似した標準偏差によって正規化される.ゼロレベルではなく,インジケーターの反転した長期平均値として計算されたベースレベルを使用する.モメントオシレーターに使用されるゼロレベルクロスシグナルと同様に,私たちのオシレーターはベースレベルクロスシグナルを計算する. 動いているベースレベルは,誤った信号の数を減らすのに役立ちます.上昇傾向ではベースレベルはゼロ以下,下落傾向ではそれ以上です. これにより,トレンド安定効果を考慮することができます. この場合,逆転信号を形成するには,振動器は上昇傾向における低値と下落傾向における高値を横断する必要があります.
使用方法 オシレータがベースレベルを超えると上昇信号,下には下落信号が表示されます.信号はそれぞれ緑色と赤色で表示されます. ヒストグラムの色は,現在の価格勢力の方向を示します.緑は上向き,赤は下向きを示します.青い線はベースレベルを表します.
設定 オシレーター周期 - モメントオシレーターの周期を決定する ベースレベル期間 - ベースレベルを計算しオシレーターを正規化する際に長期平均化に使用される期間を決定する.
バックテスト
/*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)