Strategi ini terutamanya menggunakan harga tinggi, rendah dan dekat hari dagangan sebelumnya sebagai tahap sokongan dan rintangan untuk hari semasa. Ia menjadi panjang apabila tahap rintangan dipecahkan dan menjadi pendek apabila tahap sokongan diuji kembali.
Kod ini pertama-tama mentakrifkan fungsi menghitungSupportResistance untuk mengira tahap sokongan dan rintangan, yang mengekstrak harga tinggi, rendah dan penutupan hari dagangan sebelumnya sebagai tahap sokongan dan rintangan hari ini.
Kemudian dalam logik utama, fungsi ini dipanggil untuk mendapatkan ketiga-tiga tahap harga ini dan merangka mereka.
Dalam logik backtesting, jika harga penutupan lebih rendah daripada harga rendah hari sebelumnya sementara harga semasa lebih tinggi daripada harga rendah yang membentuk pecah, ia pergi panjang.
Melalui model pecah ini, penilaian trend dan penjanaan isyarat perdagangan dilaksanakan.
Gunakan data hari dagangan sebelumnya untuk membina tahap sokongan dan rintangan hari ini, mengelakkan masalah pengoptimuman parameter
Tahap sokongan dan rintangan berasal dari data perdagangan pasaran sebenar, dengan beberapa nilai rujukan
Model backtesting yang mudah dan mudah difahami dan dilaksanakan
Penampilan visual tahap sokongan dan rintangan membentuk persepsi harga
Pemantauan masa nyata pelarian, menangkap peluang dagangan tepat pada masanya
Tahap sokongan dan rintangan berubah dari masa ke masa, sukar untuk menentukan kesahihan
Tidak dapat meramalkan arah trend, risiko pembalikan yang hilang
Mudah terjejas oleh pelarian palsu, risiko kemasukan awal
Tidak dapat menentukan kelangsungan gangguan, kemungkinan kehilangan berhenti awal
Kegagalan sokongan dan rintangan individu lebih mungkin di bawah turun naik pasaran yang besar
Tindakan balas:
Gabungkan lebih banyak faktor untuk menilai keabsahan pelarian
Memperluas julat stop loss yang sesuai untuk menangkap trend
Posisi terbuka dalam kumpulan, mengurangkan kesan turun naik individu
Tambah lebih banyak data sejarah seperti garis 5 hari, 10 hari untuk menentukan tahap
Menggabungkan penunjuk lain seperti jumlah untuk menilai kesahihan pecah
Set stop loss berdasarkan turun naik sebenar
Mengoptimumkan pengurusan modal, mengawal kerugian tunggal
Secara keseluruhan ini adalah strategi breakout biasa, mudah dan intuitif. Dengan membina sokongan dan rintangan hari ini dengan data hari sebelumnya dan menguji balik breakout tahap-tahap tersebut untuk panjang / pendek. Kelebihan mudah difahami dan secara langsung memvisualisasikan tahap; kelemahan adalah risiko breakout palsu dan ketidakpastian kelestarian. Langkah seterusnya adalah meningkatkan kesahihan breakout, mengawal risiko, mengoptimumkan pengurusan modal dan lain-lain.
/*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)