Richard Bookstaber Momentum Breakout Strategy


Tarikh penciptaan: 2023-11-02 15:12:46 Akhirnya diubah suai: 2023-11-02 15:12:46
Salin: 1 Bilangan klik: 695
1
fokus pada
1617
Pengikut

Richard Bookstaber Momentum Breakout Strategy

Gambaran keseluruhan

Strategi terobosan momentum adalah berdasarkan kepada konsep Richard Buxtaber yang dikemukakan pada tahun 1984 bahawa apabila terdapat turun naik yang besar, pasaran cenderung untuk terus berjalan ke arah itu. Oleh itu, strategi ini menggunakan ATR untuk mengukur turun naik dan menghantar isyarat perdagangan apabila perubahan harga penutupan melebihi beberapa kali nilai terendah ATR.

Prinsip Strategi

Strategi ini mula-mula mengira indikator ATR untuk mengukur turun naik pasaran. Ia kemudian mengira nilai mutlak perubahan harga penutupan setiap hari. Ia menghasilkan isyarat perdagangan apabila perubahan harga penutupan melebihi beberapa kali nilai indikator ATR. Secara khusus, jika kenaikan harga penutupan lebih besar daripada ATR, lakukan lebih banyak; jika penurunan harga penutupan lebih besar daripada ATR, lakukan kosong.

Strategi ini menggunakan indikator ATR untuk menentukan secara dinamik nilai pecah. Apabila turun naik pasaran meningkat, nilai pecah akan meningkat, yang dapat mengurangkan kesalahan perdagangan. Apabila turun naik pasaran berkurang, nilai pecah akan menurun, yang dapat menangkap peluang pecah tepat pada masanya.

Analisis kelebihan

  • Hentian ATR dinamik dapat mengawal risiko dengan berkesan, menjadikan titik hentian berubah mengikut turun naik pasaran.
  • Dengan menggunakan penembusan untuk menghasilkan isyarat perdagangan, anda boleh menangkap perubahan trend pasaran.
  • Parameter yang dioptimumkan mempunyai ruang yang luas untuk menyesuaikan diri dengan varieti dan kitaran yang berbeza.
  • Strategi ini mudah difahami dan dilaksanakan.

Analisis risiko

  • Indeks ATR bertindak balas lambat terhadap kejadian yang tidak dijangka, mungkin terlepas kejayaan pertama.
  • Kelemahan keseimbangan multi ruang, hanya melakukan lebih banyak atau hanya melakukan masa lapang adalah lebih baik daripada perdagangan dua hala.
  • Parameter strategi mudah dioptimumkan dan mungkin tidak berkesan.
  • Perdagangan sering berlaku, dan kos transaksi mungkin tinggi.

Anda boleh mempertimbangkan untuk memfilter masa perdagangan dengan penunjuk lain untuk meningkatkan kecekapan. Anda juga boleh memilih parameter yang lebih baik untuk ciri-ciri varieti. Anda boleh menggunakan teknologi seperti algoritma Martingale untuk mengawal frekuensi perdagangan.

Arah pengoptimuman

  • Anda boleh mempertimbangkan untuk menggunakan indikator lain untuk menentukan arah trend, untuk mengelakkan perdagangan yang salah. Contohnya RSI, MACD dan sebagainya.
  • Anda boleh menambah modul pengurusan kedudukan untuk menyesuaikan kedudukan mengikut keadaan pasaran.
  • Kombinasi parameter yang optimum boleh dipilih untuk pelbagai jenis.
  • Parameter pengoptimuman automatik boleh digabungkan dengan teknologi pembelajaran mesin.

ringkaskan

Strategi penembusan momentum mudah dan langsung, menggunakan penembusan untuk menghasilkan isyarat perdagangan. Hentikan ATR membolehkan ia menyesuaikan diri dengan turun naik pasaran. Strategi ini bergantung kepada pengoptimuman parameter yang dapat memperoleh kesan yang baik. Tetapi ada juga beberapa masalah, seperti kehilangan penembusan pertama, perdagangan yang kerap, dan sebagainya.

Kod sumber strategi
/*backtest
start: 2022-10-26 00:00:00
end: 2023-11-01 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © EduardoMattje

//@version=5
strategy("Volatility System", overlay=false, margin_long=0, margin_short=0, default_qty_type=strategy.percent_of_equity, 
 default_qty_value=100, process_orders_on_close=true, initial_capital=20000)

// Inputs

var averageLength = input.int(14, "Average length", 2)
var multiplier = input.float(2.0, "Multiplier", 0.0, step=0.1)

// Calculations

atr = ta.atr(averageLength) * multiplier
closingChange = ta.change(close, 1)

atrPenetration(int signal) =>
    res = closingChange * signal > atr[1]

longCondition = atrPenetration(1)
shortCondition = atrPenetration(-1)

// Order calls

if (longCondition)
    strategy.entry(strategy.direction.long, strategy.long)

if (shortCondition)
    strategy.entry(strategy.direction.short, strategy.short)

// Visuals

plot(atr, "ATR", color.white, 2)
plot(math.abs(closingChange), "Absolute close change", color.red)