
Strategi ini adalah strategi perdagangan garis lurus ganda yang didasarkan pada indikator pergerakan harga Chandra Momentum Oscillator (CMO) dan rata-rata bergerak berbobot (WMA). Attempts to identify trend reversals and continuation.
Strategi ini pertama-tama menghitung CMO, indikator yang mengukur perubahan dinamika harga secara online. Positif menunjukkan momentum naik, negatif menunjukkan momentum turun. Kemudian menghitung WMA dari CMO.
Langkah-langkah penting dalam menghitung CMO adalah:
Keuntungan dari strategi ini adalah menangkap titik balik dari tren harga jangka menengah. Ukuran mutlak CMO mencerminkan intensitas tren harga yang berjalan, WMA menguntungkan untuk terobosan palsu gelombang.
Keuntungan terbesar dari strategi ini adalah menggunakan nilai absolut dari indikator CMO untuk menilai sentimen massa pasar, filter WMA untuk mengidentifikasi titik balik tren jangka menengah. Strategi ini lebih mampu menangkap tren jangka menengah dengan ruang elastisitas yang lebih besar dibandingkan dengan strategi rata-rata bergerak tunggal.
CMO menstandarisasi perubahan harga, memetakan mereka ke dalam kisaran -100 hingga -100 untuk menilai sentimen pasar; ukuran mutlak mewakili kekuatan tren saat ini. WMA melakukan fluks tambahan terhadap CMO untuk menghindari terlalu banyak sinyal palsu.
Risiko utama dari strategi ini adalah:
Ada beberapa cara untuk mengoptimalkannya:
Strategi ini berfokus pada pengoptimalan parameter, pemfilteran sinyal, dan stop loss:
Optimalisasi parameter CMO dan WMA: Temukan kombinasi parameter optimal dengan menjelajahi
Filter sinyal dengan indikator tambahan seperti volume perdagangan, indikator kuat dan lemah, untuk menghindari terobosan palsu
Menambahkan mekanisme stop loss dinamis, stop loss keluar ketika harga kembali turun di bawah CMO dan WMA
Breakout Failure Mode dapat dianggap sebagai sinyal masuk, yaitu CMO dan WMA yang menembus titik kritis terlebih dahulu, tetapi segera jatuh kembali
Indikator siklus yang lebih panjang dapat digunakan untuk menilai tren besar dan menghindari perdagangan berlawanan
Strategi ini secara keseluruhan menggunakan indikator CMO untuk menilai kekuatan tren dan titik pivot, digabungkan dengan WMA untuk menghasilkan sinyal perdagangan riak-riak, dan merupakan sistem linier ganda yang khas. Dibandingkan dengan strategi MA tunggal, memiliki keunggulan untuk menangkap tren menengah yang lebih elastis. Namun, ada ruang untuk pengoptimalan dalam pengaturan parameter dan riak-riak, dengan mengontrol frekuensi perdagangan dengan tepat dan memperkenalkan stop loss dinamis, dapat meningkatkan stabilitas sistem lebih lanjut.
/*backtest
start: 2023-12-25 00:00:00
end: 2024-01-24 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 18/10/2018
// 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 Backtest ver 2.0", shorttitle="CMO & WMA")
Length = input(9, minval=1)
LengthWMA = input(9, minval=1)
BuyZone = input(60, step = 0.01)
SellZone = input(-60, step = 0.01)
reverse = input(false, title="Trade reverse")
hline(BuyZone, color=green, linestyle=line)
hline(SellZone, color=red, linestyle=line)
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 = 0.0
pos := iff(xWMACMO > BuyZone, 1,
iff(xWMACMO < SellZone, -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")