Gambaran umum: Strategi ini menilai arah tren berdasarkan arah harga penutupan N candlestick berturut-turut. Sinyal perdagangan dihasilkan ketika harga penutupan N candlestick berturut-turut memenuhi kondisi. Ukuran N ditetapkan oleh parameter input confirmBars. Strategi ini terutama memanfaatkan arah harga penutupan N candlestick berturut-turut untuk menentukan kekuatan tren. N yang lebih besar membutuhkan lebih banyak candlestick untuk mengkonfirmasi tren, yang dapat menyaring pecah palsu tetapi juga dapat melewatkan tahap awal tren.
Prinsipnya:
Strategi ini melacak hubungan antara harga penutupan lilin terakhir dan yang sebelumnya untuk menilai kekuatan kenaikan dan penurunan harga. Secara khusus, ia mendefinisikan dua variabel bcount dan scount untuk mencatat jumlah harga penutupan lilin berturut-turut yang naik dan turun.
Ketika bcount mencapai nilai yang ditetapkan oleh confirmBars, itu berarti bahwa harga penutupan lilin berturut-turut confirmBars telah naik, menghasilkan sinyal beli. Ketika diskon mencapai nilai yang ditetapkan oleh confirmBars, itu berarti bahwa harga penutupan lilin berturut-turut confirmBars telah turun, menghasilkan sinyal jual.
Dengan menilai arah harga penutupan dari beberapa candlestick berturut-turut, fluktuasi pasar jangka pendek dapat secara efektif disaring, dan sinyal perdagangan hanya dihasilkan di bawah tren yang relatif kuat.
Analisis Keuntungan:
Efektif menyaring kebisingan dan mengkonfirmasi tren
Strategi ini mengharuskan N candlestick berturut-turut menutup harga untuk memenuhi kondisi sebelum menghasilkan sinyal perdagangan. Ini menyaring dampak fluktuasi pasar normal pada perdagangan dan memastikan bahwa posisi hanya dibuka di bawah tren yang kuat.
Parameter kekuatan penyaringan yang dapat disesuaikan Dengan menyesuaikan ukuran parameter confirmBars, kekuatan fluktuasi harga penyaringan dapat dikendalikan.
Analisis Risiko:
Mungkin melewatkan peluang tren awal Strategi ini membutuhkan beberapa candlestick berturut-turut menutup harga untuk memenuhi kondisi sebelum menghasilkan sinyal, sehingga sering melewatkan peluang tren awal dan tidak dapat melacak tren secara tepat waktu.
Kemungkinan untuk menghentikan kerugian Ketika jumlah konfirmasi confirmBars diatur terlalu besar, mudah disesatkan oleh garis jangka pendek terbalik pada tahap awal tren, yang mengakibatkan stop loss breakout.
Arahan Optimasi:
Menyaring kebocoran palsu dengan indikator lain
Indikator teknis lainnya seperti Bollinger Bands dan RSI dapat digunakan untuk melakukan penyaringan sekunder pada sinyal beli dan jual untuk mengurangi kemungkinan pecah palsu.
Mengatur parameter secara dinamis Cobalah untuk menyesuaikan secara dinamis parameter confirmBars berdasarkan kondisi pasar. Tingkatkan nilai parameter di pasar yang tidak stabil untuk menyaring kebisingan; Kurangi nilai parameter ketika tren jelas untuk melacak tren.
Ringkasan:
Strategi ini mencapai efek menyaring kejutan dan mengkonfirmasi tren dengan menilai arah harga penutupan beberapa candlestick berturut-turut. Ini dapat secara efektif mengurangi perdagangan yang salah yang disebabkan oleh fluktuasi pasar jangka pendek dan hanya menghasilkan sinyal perdagangan ketika tren jelas. Dengan menyesuaikan ukuran parameter confirmBars, pengguna dapat menyeimbangkan hubungan antara efek penyaring dan menangkap peluang tren. Namun, strategi ini cenderung dihentikan sejak awal dimulainya tren dan gagal melacak tren secara terus menerus. Disarankan untuk mengoptimalkan dengan indikator lain atau mencoba penyesuaian parameter dinamis untuk mengejar pengembalian yang lebih baik.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Confirm Bars Strategy [TS Trader]", overlay=true) confirmBars = input(1) // === 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 === bcount = 0 bcount := close[1] < close ? nz(bcount[1]) + 1 : 0 if (bcount == confirmBars and inBacktestRange) strategy.entry("Buy", strategy.long, comment="Long") scount = 0 scount := close[1] > close ? nz(scount[1]) + 1 : 0 if (scount == confirmBars and inBacktestRange) strategy.entry("Sell", strategy.short, comment="Short")