Strategi Perdagangan Rata-rata Pergerakan Ganda Berdasarkan CMO dan WMA


Tanggal Pembuatan: 2024-01-25 17:44:49 Akhirnya memodifikasi: 2024-01-25 17:44:49
menyalin: 0 Jumlah klik: 583
1
fokus pada
1617
Pengikut

Strategi Perdagangan Rata-rata Pergerakan Ganda Berdasarkan CMO dan WMA

Ringkasan

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.

Prinsip Strategi

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:

  1. Perhitungan perubahan harga harian (xMom)
  2. SMA untuk perubahan harga pada n hari, sebagai momentum harga yang sebenarnya untuk mom ((xSMA_mom))
  3. Perhitungan perubahan harga bersih dalam n hari (xMomLength)
  4. Untuk menstandarisasi net price change (nRes), metode ini dibagi dengan SMA
  5. Untuk standar net price change m hari WMA, dapatkan CMO ((xWMACMO)

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.

Analisis Keunggulan

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.

Analisis risiko

Risiko utama dari strategi ini adalah:

  1. Parameter CMO dan WMA yang tidak tepat menyebabkan terlalu banyak sinyal palsu
  2. Tidak mampu menangani pasar yang bergejolak dengan efektif akan menghasilkan frekuensi perdagangan yang terlalu tinggi dan biaya slippage
  3. Ketidakmampuan untuk mengidentifikasi tren jangka panjang yang sebenarnya, risiko kerugian yang mungkin ada dalam posisi jangka panjang

Ada beberapa cara untuk mengoptimalkannya:

  1. Menyesuaikan parameter CMO dan WMA untuk menemukan kombinasi parameter optimal
  2. Menambahkan kondisi penyaringan tambahan, seperti volume energi perdagangan, untuk menghindari perdagangan dalam situasi yang bergolak
  3. Menggabungkan indikator dengan periode yang lebih lama, seperti garis 90 hari, untuk menghindari kehilangan peluang dalam tren garis panjang

Arah optimasi

Strategi ini berfokus pada pengoptimalan parameter, pemfilteran sinyal, dan stop loss:

  1. Optimalisasi parameter CMO dan WMA: Temukan kombinasi parameter optimal dengan menjelajahi

  2. Filter sinyal dengan indikator tambahan seperti volume perdagangan, indikator kuat dan lemah, untuk menghindari terobosan palsu

  3. Menambahkan mekanisme stop loss dinamis, stop loss keluar ketika harga kembali turun di bawah CMO dan WMA

  4. Breakout Failure Mode dapat dianggap sebagai sinyal masuk, yaitu CMO dan WMA yang menembus titik kritis terlebih dahulu, tetapi segera jatuh kembali

  5. Indikator siklus yang lebih panjang dapat digunakan untuk menilai tren besar dan menghindari perdagangan berlawanan

Meringkaskan

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.

Kode Sumber Strategi
/*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")