Strategi Mengikuti Aliran Menggunakan Penunjuk Momentum Harga


Tarikh penciptaan: 2024-01-17 13:58:19 Akhirnya diubah suai: 2024-01-17 13:58:19
Salin: 1 Bilangan klik: 540
1
fokus pada
1617
Pengikut

Strategi Mengikuti Aliran Menggunakan Penunjuk Momentum Harga

Gambaran keseluruhan

Strategi ini adalah strategi pengesanan trend yang dilaksanakan menggunakan indikator pergerakan harga. Ia menilai trend pasaran dengan mengira perubahan harga penutupan dalam tempoh tertentu, dan melakukan operasi jual beli atau jual beli yang sesuai apabila harga menunjukkan trend kenaikan atau penurunan yang berterusan.

Prinsip Strategi

Indikator utama strategi ini adalah momentum harga. Rumus untuk mengira momentum ialah:

momentum = close - close[n]

Di mana n mewakili panjang kitaran momentum. Apabila momentum > 0, menunjukkan bahawa harga telah meningkat dalam kitaran semasa; Apabila momentum < 0, menunjukkan bahawa harga telah menurun dalam kitaran semasa.

Strategi ini mula-mula menetapkan parameter ConfirmBars, yang mewakili beberapa garis K yang diperlukan untuk membuat keputusan trend sebelum melakukan perdagangan. Dalam jangka masa, jika momentum > 0 berterusan pada garis K, masuk lebih banyak; jika momentum < 0 berterusan pada garis K, masuk kosong.

Kunci strategi ini untuk menentukan trend adalah dengan mengkaji jumlah K baris yang berturut-turut momentum lebih besar atau kurang dari 0, dilakukan dengan bcount dan scount. Mereka akan + 1 apabila syarat yang sesuai dipenuhi, dan 0 jika tidak dipenuhi.

Kelebihan Strategik

Ini adalah strategi trend-following yang lebih mudah dan mempunyai kelebihan berikut:

  1. Logik mudah dan mudah difahami
  2. Indeks momentum sensitif terhadap perubahan harga dan dapat menangkap trend dengan cepat
  3. Parameter yang boleh dikonfigurasi untuk menyesuaikan sensitiviti penilaian
  4. Boleh digunakan dalam pelbagai persekitaran pasaran

Risiko Strategik

Strategi ini mempunyai beberapa risiko:

  1. Kemungkinan untuk bertukar-tukar dan bertukar-tukar berlebihan
  2. Parameter yang perlu dikonfigurasikan dengan baik, terutamanya confirmBars yang menapis getaran
  3. Kegagalan untuk bertindak balas terhadap kejutan pasaran
  4. Pemantauan akan berbeza dengan cakera keras, perlu semak semula data dan menambah parameter pengoptimuman

Arah pengoptimuman strategi

Strategi ini boleh dioptimumkan dalam beberapa aspek:

  1. Menambah logik stop loss, mengawal risiko transaksi tunggal
  2. Menambah penapis penembusan untuk mengelakkan isyarat palsu yang disebabkan oleh turun naik harga
  3. Parameter seperti ConfirmBars disesuaikan mengikut varieti dan keadaan pasaran
  4. Menambah penilaian pelbagai faktor, digabungkan dengan penandatanganan lain
  5. Menggunakan kaedah pembelajaran mesin untuk menyesuaikan parameter dan peraturan penapisan

ringkaskan

Secara keseluruhannya, strategi pemecahan dinamik adalah strategi trend yang mudah dan praktikal, yang sesuai sebagai salah satu strategi permulaan perdagangan kuantitatif. Dalam proses penerapan, perhatian perlu diberikan untuk mengawal frekuensi perdagangan, mencegah perdagangan berlebihan dan kos perdagangan yang terlalu tinggi. Pada masa yang sama, parameter dan peraturan penapisan perlu disesuaikan dan dioptimumkan mengikut varieti dan persekitaran pasaran sebenar, agar strategi dapat memberikan kesan maksimum.

Kod 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)