Strategi Momentum

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

Ringkasan

Strategi momentum adalah strategi dagangan yang mengikuti trend harga berdasarkan pergerakan harga. Ia menghasilkan isyarat dagangan dengan mengira perubahan harga dalam tempoh tertentu. Apabila trend kenaikan harga dikenal pasti, ia akan mencetuskan isyarat beli. Apabila trend penurunan harga dikenal pasti, ia akan mencetuskan isyarat jual. Strategi ini menggunakan silang penunjuk momentum ganda untuk menghasilkan isyarat dagangan.

Logika Strategi

Strategi ini mengira momentum harga dengan mengukur perubahan harga penutupan berbanding dengan harga penutupan N tempoh yang lalu.

Penunjuk momentum pertama MOM0 dikira sebagai:

MOM0 = CLOSE - CLOSE[N]

di mana CLOSE adalah harga penutupan tempoh semasas dan CLOSE[N] adalah harga penutupan N tempoh lalu. MOM0 > 0 menunjukkan harga penutupan semasa lebih tinggi daripada N tempoh lalu, manakala MOM0 < 0 menunjukkan harga penutupan semasa lebih rendah daripada N tempoh lalu.

Penunjuk momentum kedua MOM1 dikira sebagai berikut:

MOM1 = MOM0 - MOM0[1]

Ia mengira perbezaan antara MOM0 semasa dan MOM0 tempoh sebelumnya. MOM1 > 0 menunjukkan MOM0 meningkat, sementara MOM1 < 0 menunjukkan MOM0 menurun.

Penunjuk momentum ketiga MOM2 dikira sebagai:

MOM2 = CLOSE - CLOSE[1]

Ia mengira perbezaan antara harga penutupan semasa dan harga penutupan tempoh sebelumnya.

Apabila MOM0 > 0 dan MOM1 > 0, ia menunjukkan momentum secara konsisten meningkat dan mencetuskan isyarat beli. Apabila MOM0 < 0 dan MOM2 < 0, ia menunjukkan momentum secara konsisten jatuh dan mencetuskan isyarat jual.

Kod ini juga merangkumi syarat masa time_cond untuk hanya menghasilkan isyarat semasa julat masa pengujian belakang yang ditentukan.

Analisis Kelebihan

  • Mencatatkan trend perubahan harga tanpa mengira tahap harga itu sendiri, mengelakkan mengejar tinggi dan membunuh rendah
  • Penunjuk crossover momentum berganda menapis pecah palsu dan mengelakkan isyarat yang salah
  • Pemeriksaan masa dan keadaan tambahan mengelakkan perdagangan yang tidak perlu
  • Logik yang mudah dan mudah difahami, mudah dilaksanakan
  • Parameter fleksibel yang boleh diselaraskan untuk persekitaran pasaran yang berbeza

Analisis Risiko

  • Indikator momentum mempunyai kelewatan dan mungkin terlepas titik perubahan
  • Perpindahan dua penunjuk meningkatkan penapisan tetapi juga mungkin kehilangan beberapa peluang
  • Tidak dapat menentukan kekuatan dan kelajuan harga naik atau turun
  • Parameter perlu dipilih dengan teliti, tetapan yang terlalu sensitif boleh meningkatkan kekerapan perdagangan dan kos seluncur
  • Prestasi bergantung pada pengoptimuman parameter, parameter perlu diselaraskan untuk tempoh yang berbeza

Risiko boleh dikurangkan dengan memperpendek tempoh momentum, menambah penentuan trend, atau mengkonfigurasi stop loss.

Arahan pengoptimuman

  • Uji kaedah pengiraan momentum yang berbeza seperti ROC, RSI dll.
  • Tambah penentuan trend untuk mengelakkan whipsaws di pasaran pelbagai
  • Menggunakan strategi stop loss untuk mengawal kerugian perdagangan tunggal
  • Gabungkan dengan penunjuk jumlah untuk memastikan sokongan jumlah
  • Memperkenalkan algoritma pembelajaran mesin untuk pengoptimuman parameter dinamik
  • Strategi pelbagai jangka masa untuk membezakan trend jangka pendek dan jangka panjang
  • Pertimbangkan strategi arbitraj rentas pasaran yang menggunakan hubungan harga antara pasaran

Ringkasan

Strategi momentum mengikuti trend perubahan harga dan bukannya tahap harga, dengan berkesan mengenal pasti arah momentum pasaran untuk menangkap pergerakan harga menaik dan menurun. Walau bagaimanapun, momentum mempunyai ciri-ciri yang tertinggal dan pemilihan parameter dan pengoptimuman kombinasi adalah penting untuk prestasi strategi. Strategi ini menggunakan silang penunjuk momentum ganda sebagai asas, menapis beberapa bunyi bising. Prestasi dapat ditingkatkan dan risiko dikawal dengan pengoptimuman parameter yang berterusan, mengintegrasikan penunjuk teknikal 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 lanjut