Strategi Momentum

Penulis:ChaoZhang, Tanggal: 2023-09-26 15:16:56
Tag:

Gambaran umum

Strategi momentum adalah strategi perdagangan yang mengikuti tren harga berdasarkan pergerakan harga. Strategi ini menghasilkan sinyal perdagangan dengan menghitung perubahan harga selama periode tertentu. Ketika tren kenaikan harga diidentifikasi, itu akan memicu sinyal beli. Ketika tren penurunan harga diidentifikasi, itu akan memicu sinyal jual. Strategi ini menggunakan crossover indikator momentum ganda untuk menghasilkan sinyal perdagangan.

Logika Strategi

Strategi ini menghitung momentum harga dengan mengukur perubahan harga penutupan dibandingkan dengan harga penutupan N periode yang lalu.

Indikator momentum pertama MOM0 dihitung sebagai berikut:

MOM0 = CLOSE - CLOSE[N]

dimana CLOSE adalah harga penutupan periode saat inis dan CLOSE[N] adalah harga penutupan N periode yang lalu. MOM0 > 0 menunjukkan harga penutupan saat ini lebih tinggi daripada N periode yang lalu, sementara MOM0 < 0 menunjukkan harga penutupan saat ini lebih rendah dari N periode yang lalu.

Indikator momentum kedua MOM1 dihitung sebagai berikut:

MOM1 = MOM0 - MOM0[1]

Ini menghitung perbedaan antara MOM0 saat ini dan periode sebelumnya MOM0. MOM1 > 0 menunjukkan MOM0 meningkat, sementara MOM1 < 0 menunjukkan MOM0 menurun.

Indikator momentum ketiga MOM2 dihitung sebagai berikut:

MOM2 = CLOSE - CLOSE[1]

Ini menghitung perbedaan antara harga penutupan saat ini dan harga penutupan periode sebelumnya.

Ketika MOM0 > 0 dan MOM1 > 0, ini menunjukkan momentum terus meningkat dan memicu sinyal beli. Ketika MOM0 < 0 dan MOM2 < 0, ini menunjukkan momentum terus menurun dan memicu sinyal jual.

Kode ini juga mencakup kondisi waktu time_cond untuk hanya menghasilkan sinyal selama rentang waktu backtesting yang ditentukan.

Analisis Keuntungan

  • Menangkap tren perubahan harga terlepas dari tingkat harga itu sendiri, menghindari mengejar tertinggi dan membunuh terendah
  • Crossover indikator momentum ganda menyaring pecah palsu dan menghindari sinyal yang salah
  • Pemeriksaan waktu dan kondisi tambahan menghindari perdagangan yang tidak perlu
  • Logika yang sederhana dan mudah dipahami, mudah diterapkan
  • Parameter fleksibel yang dapat disesuaikan dengan lingkungan pasar yang berbeda

Analisis Risiko

  • Indikator momentum memiliki lag dan mungkin melewatkan titik balik
  • Crossover indikator ganda meningkatkan filtrasi tetapi juga mungkin kehilangan beberapa kesempatan
  • Tidak dapat menentukan kekuatan dan kecepatan harga naik atau turun
  • Parameter perlu dipilih dengan hati-hati, pengaturan yang terlalu sensitif dapat meningkatkan frekuensi perdagangan dan biaya slip
  • Kinerja bergantung pada optimasi parameter, parameter perlu disesuaikan untuk periode yang berbeda

Risiko dapat dikurangi dengan memperpendek periode momentum, menambahkan penentuan tren, atau mengkonfigurasi stop loss.

Arahan Optimasi

  • Uji metode perhitungan momentum yang berbeda seperti ROC, RSI dll.
  • Tambahkan penentuan tren untuk menghindari whipsaws di pasar berkisar
  • Menggunakan strategi stop loss untuk mengendalikan kerugian perdagangan tunggal
  • Gabungkan dengan indikator volume untuk memastikan dukungan volume
  • Memperkenalkan algoritma pembelajaran mesin untuk optimasi parameter dinamis
  • Strategi multi-frame waktu untuk membedakan tren jangka pendek dan jangka panjang
  • Pertimbangkan strategi arbitrage lintas pasar yang memanfaatkan hubungan harga antara pasar

Ringkasan

Strategi momentum mengikuti tren perubahan harga bukan tingkat harga, secara efektif mengidentifikasi arah momentum pasar untuk menangkap pergerakan harga naik dan turun. Namun, momentum memiliki karakteristik tertinggal dan pemilihan parameter dan pengoptimalan kombinasi sangat penting untuk kinerja strategi. Strategi ini menggunakan crossover indikator momentum ganda sebagai dasar, menyaring beberapa kebisingan. Kinerja dapat ditingkatkan lebih lanjut dan risiko dikendalikan dengan terus mengoptimalkan parameter, mengintegrasikan indikator teknis baru, dan memanfaatkan teknik pembelajaran mesin.


/*backtest
start: 2022-09-25 00:00:00
end: 2023-02-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Momentum Strategy", overlay = false, precision = 2, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash, commission_type = strategy.commission.percent, commission_value = 0, calc_on_every_tick = true)

// Calculate start/end date and time condition
startDate  = input(timestamp("2021-01-02T00:00:00"), title = "Start Date", type = input.time)
finishDate = input(timestamp("2021-12-31T00:00:00"), title = "End Date",type = input.time)
 
time_cond  = true

i_len           =       input(defval = 12,      title = "Length",       minval = 1)
i_src           =       input(defval = close,   title = "Source")
i_percent       =       input(defval = true,    title = "Percent?")
i_mom           =       input(defval = "MOM2",  title = "MOM Choice",   options = ["MOM1", "MOM2"])

momentum(seria, length, percent) =>
	_mom        =       percent ? ( (seria / seria[length]) - 1) * 100 : seria - seria[length]
	_mom

mom0        =       momentum(i_src, i_len, i_percent)
mom1        =       momentum(mom0, 1, i_percent)
mom2        =       momentum(i_src, 1, i_percent)

momX        =       mom1

if i_mom == "MOM2"
    momX    :=     mom2

if (mom0 > 0 and momX > 0 and time_cond)
    strategy.entry("MomLE", strategy.long, stop = high + syminfo.mintick, comment = "MomLE")
else
	strategy.cancel("MomLE")
if (mom0 < 0 and momX < 0 and time_cond)
	strategy.entry("MomSE", strategy.short, stop = low - syminfo.mintick, comment = "MomSE")
else
	strategy.cancel("MomSE")

plot(mom0, color = #00bcd4, title = "MOM")
plot(mom1, color = #00FF00, title = "MOM1", display = display.none)
plot(mom2, color = #00FF00, title = "MOM2")

Lebih banyak