Strategi ini menggunakan Chande Momentum Oscillator (CMO) untuk menentukan tingkat overbought dan oversold untuk sinyal perdagangan. Nilai CMO absolut selama 3 periode di rata-rata untuk meluruskan osilator untuk mengidentifikasi ekstrem.
Logika utama meliputi:
CMO mencerminkan momentum perubahan harga. Nilai absolut yang tinggi mewakili perbedaan harga memasuki zona overbought / oversold. Strategi ini memanfaatkan karakteristik CMO ini, menggunakan rata-rata multi-periode untuk meratakan kurva untuk mengidentifikasi ekstrem.
Pengurangan:
Strategi ini dapat ditingkatkan melalui:
Strategi ini menggunakan CMO untuk mengidentifikasi overbought / oversold untuk perdagangan reversi rata-rata. Rata-rata multi-periode membantu menghindari sinyal palsu. CMO sendiri memiliki dasar teoritis yang kuat untuk mengukur divergensi. Peningkatan melalui parameter yang lebih baik, berhenti, dan filter dapat membuatnya menjadi strategi perdagangan osilator yang stabil.
/*backtest start: 2023-09-11 00:00:00 end: 2023-09-14 07:00:00 period: 30m basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 ////////////////////////////////////////////////7//////////// // Copyright by HPotter v1.0 21/02/2017 // This indicator plots the absolute value of CMO averaged over three // different lengths. This indicator plots a classical-looking oscillator, // which is really an averaged value based on three different periods. // // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="CMOabsav", shorttitle="CMOabsav") Length1 = input(5, minval=1) Length2 = input(10, minval=1) Length3 = input(20, minval=1) TopBand = input(58, minval=1) LowBand = input(5, minval=0) reverse = input(false, title="Trade reverse") hline(0, color=green, linestyle=hline.style_dashed) hline(TopBand, color=purple, linestyle=hline.style_solid) hline(LowBand, color=red, linestyle=hline.style_solid) xMom = close - close[1] xMomabs = abs(close - close[1]) nSum1 = sum(xMom, Length1) nSumAbs1 = sum(xMomabs, Length1) nSum2 = sum(xMom, Length2) nSumAbs2 = sum(xMomabs, Length2) nSum3 = sum(xMom, Length3) nSumAbs3 = sum(xMomabs, Length3) nRes = abs(100 * (nSum1 / nSumAbs1 + nSum2 / nSumAbs2 + nSum3 / nSumAbs3 ) / 3) pos = iff(nRes > TopBand, 1, iff(nRes < LowBand, -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="CMOabsav")