
Strategi ini disebut strategi perdagangan momentum berdasarkan CMO dan WMA. Strategi ini menggunakan Chande Momentum Oscillator (CMO) dan rata-rata bergerak berbobot (WMA) untuk membangun sinyal perdagangan. Gagasan inti adalah bahwa CMO melakukan lebih banyak ketika dia memakai WMA-nya dan kosong ketika dia memakai WMA-nya.
CMO merupakan indikator utama dari strategi tersebut. CMO terkait erat dengan indikator dinamis lainnya seperti RSI, namun memiliki keunikan tersendiri. CMO secara langsung mengukur momentum perubahan harga.
Strategi ini pertama-tama menghitung perubahan harga close dalam satu hari abs ((close - close[1]) sebagai momentum awal xMom. Kemudian menghitung panjang hari SMA xMom, dicatat sebagai xSMA_mom. Kemudian menghitung panjang hari perubahan harga xMomLength, yaitu close - close[CMO xWMACMO … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … … .
Keuntungan terbesar dari strategi ini adalah menangkap karakteristik momentum dalam tren harga. Desain berbatasan dari CMO membuatnya lebih langsung mencerminkan perubahan momentum. Dibandingkan dengan SMA, WMA lebih mampu meredam kebisingan jangka pendek.
Risiko terbesar dari strategi ini adalah biaya slippage yang ditimbulkan oleh perdagangan yang sering. CMO dan WMA adalah parameter jangka pendek yang mungkin terlalu sensitif dan menghasilkan beberapa pembalikan yang tidak perlu. Ini sangat serius ketika variasi fluktuasi besar. Selain itu, parameter tetap tidak dapat beradaptasi dengan perubahan lingkungan pasar.
Anda dapat mempertimbangkan untuk memperkenalkan parameter CMO dan WMA yang dioptimalkan untuk menyesuaikan parameter, sehingga dapat menyesuaikan secara dinamis; atau menambahkan kondisi penyaringan untuk mengurangi transaksi yang tidak berarti. Tentu saja, mengurangi volatilitas varietas melalui kombinasi juga merupakan pilihan.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Menambahkan mekanisme parameter CMO yang dapat beradaptasi. Menemukan parameter optimal dalam berbagai lingkungan fluktuasi.
Menambahkan mekanisme parameter WMA yang dapat beradaptasi. Efek smoothing berubah sesuai dengan volatilitas;
Menambahkan kondisi penyaringan, seperti dengan memperkenalkan Indeks Volatilitas, dan kontrol yang tidak perlu dibalik;
Mempertimbangkan kombinasi dengan indikator lain untuk meningkatkan stabilitas;
Mengoptimalkan mekanisme stop loss. Mengatur garis stop loss yang dinamis, mengontrol secara aktif kerugian satu roda.
Strategi ini didasarkan pada pelacakan tren sederhana dan efektif oleh CMO dan WMA. Keuntungan dari strategi ini adalah menangkap karakteristik pergerakan harga dengan jelas. Namun, ada juga kelemahan dari kemampuan menahan posisi yang buruk setelah beberapa keuntungan.
/*backtest
start: 2022-11-21 00:00:00
end: 2023-11-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 13/02/2017
// This indicator plots Chandre Momentum Oscillator and its WMA on the
// same chart. This indicator plots the absolute value of CMO.
// The CMO is closely related to, yet unique from, other momentum oriented
// indicators such as Relative Strength Index, Stochastic, Rate-of-Change,
// etc. It is most closely related to Welles Wilder?s RSI, yet it differs
// in several ways:
// - It uses data for both up days and down days in the numerator, thereby
// directly measuring momentum;
// - The calculations are applied on unsmoothed data. Therefore, short-term
// extreme movements in price are not hidden. Once calculated, smoothing
// can be applied to the CMO, if desired;
// - The scale is bounded between +100 and -100, thereby allowing you to clearly
// see changes in net momentum using the 0 level. The bounded scale also allows
// you to conveniently compare values across different securities.
////////////////////////////////////////////////////////////
strategy(title="CMO & WMA", shorttitle="CMO & WMA")
Length = input(9, minval=1)
LengthWMA = input(9, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
xMom = abs(close - close[1])
xSMA_mom = sma(xMom, Length)
xMomLength = close - close[Length]
nRes = 100 * (xMomLength / (xSMA_mom * Length))
xWMACMO = wma(nRes, LengthWMA)
pos = iff(nRes > xWMACMO, 1,
iff(nRes <= xWMACMO, -1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue)
plot(nRes, color=blue, title="CMO")
plot(xWMACMO, color=red, title="WMA")