Momentum 2.0

Penulis:ChaoZhang, Tanggal: 2022-05-10 10:24:44
Tag:Tren

Momentum 2.0 adalah osilator Momentum yang dinormalisasi dengan tingkat dasar yang bergerak. Nilai osilator dinormalisasi oleh penyimpangan standarnya, mirip dengan teknik z-score. Alih-alih tingkat nol, indikator menggunakan tingkat dasar yang dihitung sebagai nilai rata-rata jangka panjang terbalik dari osilator. Tingkat dasar yang bergerak membantu mengurangi jumlah sinyal palsu. Dalam tren naik, tingkat dasar berada di bawah nol, dalam tren turun, di atasnya. Ini memungkinkan kita untuk memperhitungkan efek stabilitas tren. Dalam hal ini, untuk membentuk sinyal pembalikan, osilator harus melintasi nilai yang lebih rendah dalam tren naik dan nilai yang lebih tinggi dalam tren turun.

Cara Menggunakannya Ketika osilator melintasi di atas level dasar, itu memberikan sinyal bullish, ketika di bawah itu memberikan sinyal bearish. Warna histogram menunjukkan arah momentum harga saat ini. Hijau menunjukkan pergerakan ke atas dan merah menunjukkan pergerakan ke bawah. Garis biru mewakili tingkat dasar.

Pengaturan Periode osilator - menentukan periode osilator Momentum Basis Level Periode - menentukan periode yang digunakan untuk rata-rata jangka panjang saat menghitung basis level dan menormalkan osilator

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)

Berkaitan

Lebih banyak