Strategi Pemfilteran Momentum Moving Average

Penulis:ChaoZhang, Tanggal: 2023-12-12 12:35:05
Tag:

img

Gambaran umum

Ini adalah strategi perdagangan rata-rata bergerak yang dibangun dengan teknik penyaringan momentum. Ini menetapkan ambang perubahan harga untuk menyaring fluktuasi harga kecil, hanya memilih pergerakan harga besar untuk perhitungan, sehingga meningkatkan stabilitas strategi.

Logika Strategi

Indikator inti dari strategi ini adalah Chande Momentum Oscillator (CMO) yang disaring oleh momentum. Chande Momentum Oscillator adalah sejenis indikator momentum yang menilai momentum tren dengan menghitung rasio jumlah nilai absolut hari naik dan turun terhadap jumlah kenaikan dan penurunan harga. Strategi ini memperbaikinya dengan menetapkan ambang minimum perubahan harga yang disebut Filter. Hanya ketika perubahan harga melebihi ambang ini akan berpartisipasi dalam perhitungan CMO. Ini menyaring banyak fluktuasi kecil di pasar dan membuat indikator lebih stabil dan dapat diandalkan.

Berdasarkan perhitungan indikator, ia menetapkan garis atas TopBand dan garis bawah LowBand. Ketika indikator melebihi dua garis ini, sinyal perdagangan dihasilkan. Akhirnya, parameter input terbalik dapat membalikkan sinyal asli untuk mewujudkan operasi terbalik.

Analisis Keuntungan

Ini adalah strategi yang sangat stabil dan dapat diandalkan mengikuti tren. Dengan mengadopsi teknik penyaringan momentum, ini dapat secara efektif menyaring kebisingan pasar dan mencegah terjebak. Strategi ini memiliki ruang pengoptimalan parameter yang besar, parameter seperti Filter, TopBand, LowBand, dll dapat disesuaikan untuk mengoptimalkan indikator strategi. Ini juga memiliki fungsi perdagangan terbalik yang dapat beradaptasi secara fleksibel dengan lingkungan pasar yang berbeda.

Analisis Risiko

Strategi ini terutama bergantung pada trend-mengikuti, sehingga rentan untuk menghasilkan sinyal palsu dan kerugian di pasar yang terikat kisaran. Selain itu, optimasi parameter yang tidak tepat juga dapat menyebabkan frekuensi perdagangan yang berlebihan atau sinyal yang tidak stabil. Akhirnya, penggunaan yang tidak tepat dari parameter perdagangan terbalik dapat menyebabkan kerugian yang tidak perlu.

Untuk mengurangi risiko ini, parameter harus dioptimalkan secara wajar untuk membuat sinyal lebih stabil dan dapat diandalkan; hindari menggunakan strategi ini di pasar yang terikat rentang, pilih alat strategi yang lebih cocok; gunakan fungsi perdagangan terbalik dengan hati-hati, hindari mengaktifkannya ketika optimasi parameter tidak ideal.

Arahan Optimasi

Strategi dapat dioptimalkan dalam aspek berikut:

  1. Mengoptimalkan nilai parameter Filter, memastikan penyaringan kebisingan pasar sambil menjaga frekuensi perdagangan tidak terlalu rendah.

  2. Optimalkan rentang parameter TopBand dan LowBand agar sesuai dengan rentang volatilitas pasar untuk mencegah sinyal palsu.

  3. Menggunakan analisis berjalan ke depan dan metode lain untuk mengoptimalkan parameter secara dinamis sehingga parameter strategi beradaptasi dengan perubahan pasar.

  4. Tambahkan logika stop loss dan atur titik stop loss yang wajar untuk mengendalikan kerugian.

  5. Filter dengan indikator teknis lainnya seperti MACD, KD untuk menghindari perdagangan palsu di pasar non-trending.

Ringkasan

Ini adalah strategi tren yang sangat praktis. Ini mengadopsi teknik penyaringan momentum untuk secara efektif mengekang kebisingan pasar dan membuat sinyal yang lebih jelas dan lebih dapat diandalkan. Melalui optimasi parameter dan optimasi logika, ini dapat disetel menjadi alat perdagangan kuantitatif yang dapat diandalkan dan stabil. Namun, risiko dari menggunakannya di pasar yang terikat rentang dan optimasi parameter yang tidak tepat perlu dicatat. Secara umum, ini adalah templat strategi dengan prospek aplikasi yang besar.


/*backtest
start: 2023-11-11 00:00:00
end: 2023-12-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 02/03/2017
// This indicator plots a CMO which ignores price changes which are less 
// than a threshold value. CMO was developed by Tushar Chande. A scientist, 
// an inventor, and a respected trading system developer, Mr. Chande developed 
// the CMO to capture what he calls "pure momentum". For more definitive 
// information on the CMO and other indicators we recommend the book The New 
// Technical Trader by Tushar Chande and Stanley Kroll.
// 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.
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
fFilter(xSeriesSum, xSeriesV, Filter) =>
    iff(xSeriesV > Filter, xSeriesSum, 0)

strategy(title="CMOfilt", shorttitle="CMOfilt")
Length = input(9, minval=1)
Filter = input(3, minval=1)
TopBand = input(70, minval=1)
LowBand = input(-70, maxval=-1)
reverse = input(false, title="Trade reverse")
hline(0, color=gray, linestyle=line)
hline(TopBand, color=red, linestyle=line)
hline(LowBand, color=green, linestyle=line)
xMom = close - close[1]
xMomAbs = abs(close - close[1])
xMomFilter = fFilter(xMom, xMomAbs, Filter)
xMomAbsFilter = fFilter(xMomAbs,xMomAbs, Filter)
nSum = sum(xMomFilter, Length)
nAbsSum = sum(xMomAbsFilter, Length)
nRes =   100 * nSum / nAbsSum
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="CMOfilt")


Lebih banyak