Strategi ini terutama menggunakan harga tinggi, rendah dan dekat hari perdagangan sebelumnya sebagai level support dan resistance untuk hari ini.
Kode ini pertama-tama mendefinisikan fungsi menghitungSupportResistance untuk menghitung level support dan resistance, yang mengekstrak harga tertinggi, terendah dan penutupan hari perdagangan sebelumnya sebagai level support dan resistance hari ini.
Kemudian dalam logika utama, fungsi ini dipanggil untuk mendapatkan tiga tingkat harga ini dan memetakan mereka.
Dalam logika backtesting, jika harga penutupan lebih rendah dari level terendah hari sebelumnya sementara harga saat ini lebih tinggi dari level terendah yang membentuk breakout, itu akan menjadi long.
Melalui model breakout ini, penilaian tren dan generasi sinyal perdagangan dilaksanakan.
Menggunakan data hari perdagangan sebelumnya untuk membangun level support dan resistance hari ini, menghindari masalah optimasi parameter
Tingkat support dan resistance berasal dari data perdagangan pasar riil, dengan beberapa nilai referensi
Model backtesting yang sederhana dan mudah dipahami dan diterapkan
Tampilan visual dari level support dan resistance membentuk persepsi harga
Pemantauan real-time dari breakout, menangkap peluang perdagangan tepat waktu
Tingkat support dan resistance berubah dari waktu ke waktu, sulit untuk menentukan validitas
Tidak dapat memprediksi arah tren, risiko kehilangan pembalikan
Mudah terpengaruh oleh kebocoran palsu, risiko masuk dini
Tidak dapat menentukan keberlanjutan penyusutan, kemungkinan stop loss awal
Kegagalan dukungan dan resistensi individu lebih mungkin di bawah fluktuasi pasar yang besar
Pengendalian:
Gabungkan lebih banyak faktor untuk menilai validitas breakout
Memperluas rentang stop loss yang tepat untuk menangkap tren
Posisi terbuka dalam batch, mengurangi dampak dari fluktuasi individu
Tambahkan lebih banyak data historis seperti 5 hari, 10 hari garis untuk menentukan tingkat
Masukkan indikator lain seperti volume untuk menilai validitas breakout
Set stop loss berdasarkan volatilitas aktual
Mengoptimalkan manajemen modal, mengendalikan kerugian tunggal
Secara keseluruhan ini adalah strategi breakout yang khas, sederhana dan intuitif. Dengan membangun dukungan dan resistensi hari saat ini dengan data hari sebelumnya dan backtesting breakout dari level-level tersebut untuk panjang/pendek. Pro mudah dipahami dan langsung memvisualisasikan level; kontra adalah risiko breakout palsu dan ketidakpastian keberlanjutan. Langkah selanjutnya adalah meningkatkan validitas breakout, mengendalikan risiko, mengoptimalkan manajemen modal dll.
/*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)