Strategi Mengikuti Tren Menggunakan Indikator Momentum Harga


Tanggal Pembuatan: 2024-01-17 13:58:19 Akhirnya memodifikasi: 2024-01-17 13:58:19
menyalin: 1 Jumlah klik: 540
1
fokus pada
1617
Pengikut

Strategi Mengikuti Tren Menggunakan Indikator Momentum Harga

Ringkasan

Strategi ini adalah strategi pelacakan tren yang dilakukan dengan menggunakan indikator dinamika harga. Strategi ini menilai tren pasar dengan menghitung perubahan harga penutupan dalam periode tertentu, dan melakukan operasi jual beli atau jual beli yang sesuai ketika harga mengalami tren naik atau turun yang berkelanjutan.

Prinsip Strategi

Indikator utama dari strategi ini adalah momentum harga. Formula untuk menghitung momentum adalah:

momentum = close - close[n]

Di mana n mewakili panjang siklus momentum. Ketika momentum > 0, berarti harga telah naik dalam siklus saat ini; Ketika momentum < 0, berarti harga telah turun dalam siklus saat ini.

Strategi ini pertama-tama menetapkan parameter confirmBars, yang mewakili berapa banyak garis K yang diperlukan untuk menilai tren sebelum melakukan perdagangan. Dalam jangkauan pengembalian, jika momentum > 0 terus berlanjut pada garis akar K dari confirmBars, maka masuk lebih banyak; Jika momentum < 0 terus berlanjut pada garis akar K dari confirmBars, maka masuk kosong.

Kunci dari strategi ini untuk menilai tren adalah menghitung jumlah K-line berturut-turut yang memiliki momentum lebih besar atau kurang dari 0, dengan menggunakan variabel bcount dan scount. Mereka akan menjadi +1 jika kondisi yang sesuai terpenuhi, dan 0 jika tidak terpenuhi.

Keunggulan Strategis

Ini adalah strategi pelacakan tren yang lebih sederhana, dengan keuntungan berikut:

  1. Logika sederhana, implementasi yang mudah dipahami
  2. Indeks momentum sensitif terhadap perubahan harga dan dapat menangkap tren dengan cepat
  3. Konfigurasi parameter untuk menyesuaikan sensitivitas penilaian
  4. Dapat digunakan dalam berbagai lingkungan pasar

Risiko Strategis

Strategi ini juga memiliki beberapa risiko:

  1. Terlibat dalam beberapa transaksi bergolak dan over-trading
  2. Parameter yang perlu dikonfigurasi dengan baik, terutama confirmBars yang memfilter getaran
  3. Tidak mampu menanggapi dampak dari kejutan pasar
  4. Retesting akan berbeda dengan hard disk, perlu revisi data dan tambahan parameter optimasi

Arah optimasi strategi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Meningkatkan logika stop loss dan mengendalikan risiko transaksi tunggal
  2. Menambahkan filter penembusan untuk menghindari sinyal palsu yang disebabkan oleh getaran harga
  3. Parameter seperti ConfirmBars disesuaikan dengan varietas dan kondisi pasar
  4. Menambahkan penilaian multi-faktor, dikombinasikan dengan indikator lain untuk konfirmasi masuk
  5. Menggunakan metode pembelajaran mesin untuk menyesuaikan parameter dan aturan penyaringan

Meringkaskan

Secara keseluruhan, strategi pemecahan momentum ini adalah salah satu strategi pelacakan tren yang sederhana dan praktis yang cocok sebagai strategi masuk untuk perdagangan kuantitatif. Dalam proses penerapannya, perlu diperhatikan untuk mengontrol frekuensi perdagangan, mencegah over-trading dan biaya transaksi yang terlalu tinggi.

Kode Sumber Strategi
/*backtest
start: 2024-01-09 00:00:00
end: 2024-01-16 00:00:00
period: 2h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Momentum Strategy [TS Trader]", overlay=true)

confirmBars = input(1)
momentumLength = input(14, title="Momentum Length")

price = close
momentum = close - close[momentumLength]

// === INPUT BACKTEST RANGE ===
fromYear = input.int(2019, title="Backtest Start Year")
fromMonth = input.int(1, title="Backtest Start Month", minval=1, maxval=12)
fromDay = input.int(1, title="Backtest Start Day", minval=1, maxval=31)
toYear = input.int(2023, title="Backtest End Year")
toMonth = input.int(12, title="Backtest End Month", minval=1, maxval=12)
toDay = input.int(31, title="Backtest End Day", minval=1, maxval=31)

startTimestamp = timestamp(fromYear, fromMonth, fromDay, 00, 00)
endTimestamp = timestamp(toYear, toMonth, toDay, 23, 59)

inBacktestRange = true

// === STRATEGY LOGIC ===
bcond = momentum > 0
bcount = 0
bcount := bcond ? nz(bcount[1]) + 1 : 0
if (bcount == confirmBars and inBacktestRange)
    strategy.entry("Buy", strategy.long, comment="Long")

scond = momentum < 0
scount = 0
scount := scond ? nz(scount[1]) + 1 : 0
if (scount == confirmBars and inBacktestRange)
    strategy.entry("Sell", strategy.short, comment="Short")

// Plotting Momentum
plot(momentum, title="Momentum", color=color.purple)