Strategi ini menggunakan Chande Momentum Oscillator (CMO) untuk menentukan tahap overbought dan oversold untuk isyarat perdagangan. Nilai CMO mutlak selama 3 tempoh adalah purata untuk meluruskan osilator untuk mengenal pasti ekstrem.
Logik utama termasuk:
CMO mencerminkan momentum perubahan harga. Nilai mutlak yang tinggi mewakili perbezaan harga memasuki zon overbought / oversold. Strategi ini menggunakan ciri CMO ini, menggunakan purata pelbagai tempoh untuk meluruskan kurva untuk mengenal pasti ekstrem.
Pengurangan:
Strategi ini boleh dipertingkatkan melalui:
Strategi ini menggunakan CMO untuk mengenal pasti overbought / oversold untuk perdagangan pembalikan purata. Purata pelbagai tempoh membantu mengelakkan isyarat palsu. CMO sendiri mempunyai asas teori yang kukuh untuk mengukur perbezaan. Peningkatan melalui parameter, berhenti, dan penapis yang lebih baik dapat menjadikannya 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")