Momentum Breakout Backtest Sokongan dan Strategi Rintangan


Tarikh penciptaan: 2024-02-22 16:07:14 Akhirnya diubah suai: 2024-02-22 16:07:14
Salin: 0 Bilangan klik: 619
1
fokus pada
1617
Pengikut

Momentum Breakout Backtest Sokongan dan Strategi Rintangan

Gambaran keseluruhan

Strategi ini menggunakan harga tertinggi, harga terendah dan harga penutupan pada hari perdagangan sebelumnya sebagai tahap sokongan dan rintangan pada hari itu, melakukan lebih banyak ketika memecahkan tahap rintangan, dan membuat kosong ketika menguji kembali tahap sokongan, merupakan strategi pemecahan yang tipikal.

Prinsip Strategi

Kod pertama mendefinisikan fungsi untuk mengira tahap rintangan sokongan, calculatedSupportResistance, yang mengambil harga tertinggi, terendah dan harga penutupan hari perdagangan sebelumnya sebagai tahap rintangan sokongan hari itu.

Kemudian fungsi ini dipanggil dalam logik utama untuk mendapatkan tiga bit harga dan menunjukkannya dalam peta.

Dalam logik pengulangan, jika harga penutupan lebih rendah daripada harga terendah hari sebelumnya dan harga semasa lebih tinggi daripada harga terendah itu merupakan penembusan, maka lebih banyak; jika harga penutupan lebih tinggi daripada harga tertinggi hari sebelumnya dan harga semasa lebih rendah daripada harga tertinggi yang merupakan penembusan, maka kosong.

Model terobosan seperti ini membolehkan penilaian trend dan penjanaan isyarat perdagangan.

Kelebihan Strategik

  1. Menggunakan data dari hari perdagangan sebelumnya untuk membina tahap rintangan sokongan hari itu, mengelakkan masalah pengoptimuman parameter
  2. Tahap rintangan sokongan diambil dari data perdagangan pasaran sebenar dan mempunyai nilai rujukan tertentu
  3. Model pengesahan mudah, mudah difahami dan mudah dilaksanakan
  4. Memaparkan sokongan dan rintangan secara visual, membentuk persepsi harga
  5. Pemantauan dalam masa nyata terhadap penembusan, menangkap peluang perdagangan tepat pada masanya

Risiko Strategik

  1. Tahap rintangan sokongan akan berubah dari masa ke masa, tidak dapat menentukan keberkesanannya
  2. Tidak dapat meramalkan arah trend, risiko kehilangan perubahan
  3. Mudah terdedah kepada penembusan palsu, risiko kemasukan awal
  4. Tidak dapat menentukan keberlanjutan penembusan, kemungkinan penamatan awal
  5. Saham-saham mungkin kehilangan sokongan apabila pasaran besar bergolak

Kaedah pencegahan:

  1. Kesan Penyelesaian Berpeluang
  2. Memperbesar markah hentian yang sesuai untuk memastikan trend ditangkap
  3. Menubuhkan kedudukan secara berturut-turut untuk mengurangkan kesan turun naik saham

Pengoptimuman Strategi

  1. Tambah lebih banyak data sejarah untuk menilai tahap rintangan sokongan, seperti harga 5 hari, 10 hari
  2. Kaedah untuk menilai keberkesanan penembusan dengan jumlah dagangan
  3. Tetapkan Stop Loss Berdasarkan Fluktuasi Kenyataannya
  4. Pengurusan wang yang optimum dan kawalan kerugian tunggal

ringkaskan

Strategi ini secara keseluruhannya adalah strategi penembusan yang tipikal, mudah dan intuitif, membina rintangan sokongan pada hari itu melalui data hari perdagangan sebelumnya, mengesan semula titik tersebut. Kelebihannya adalah mudah difahami untuk dilaksanakan, dan rintangan sokongan dapat dilihat secara langsung; Kelemahannya adalah terdapat risiko penembusan palsu, tidak dapat menentukan kesinambungan trend. Langkah seterusnya dapat dioptimumkan dari segi menentukan keberkesanan penembusan, mengawal risiko, mengoptimumkan pengurusan dana dan sebagainya.

Kod sumber strategi
/*backtest
start: 2024-01-22 00:00:00
end: 2024-02-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Support and Resistance with Backtesting", overlay=true)

// Function to calculate support and resistance levels
calculateSupportResistance() =>
    highPrevDay = request.security(syminfo.tickerid, "D", high[1], lookahead=barmerge.lookahead_on)
    lowPrevDay = request.security(syminfo.tickerid, "D", low[1], lookahead=barmerge.lookahead_on)
    closePrevDay = request.security(syminfo.tickerid, "D", close[1], lookahead=barmerge.lookahead_on)
    [highPrevDay, lowPrevDay, closePrevDay]

// Call the function to get support and resistance levels
[supResHigh, supResLow, supResClose] = calculateSupportResistance()

// Plotting support and resistance levels
plot(supResHigh, color=color.red, linewidth=2, title="Previous Day High")
plot(supResLow, color=color.green, linewidth=2, title="Previous Day Low")
plot(supResClose, color=color.blue, linewidth=2, title="Previous Day Close")

// Backtesting logic
backtestCondition = close[1] < supResLow and close > supResLow
strategy.entry("Long", strategy.long, when=backtestCondition)

// Plotting buy/sell arrows for backtesting
plotarrow(backtestCondition ? 1 : na, colorup=color.green, offset=-1, transp=0)