Strategi Dual Bandpass Filter diadaptasi dari strategi yang diterbitkan oleh Broder dalam majalah Stocks & Commodities pada tahun 2010. Strategi ini menghasilkan sinyal perdagangan dengan menghitung nilai filter bandpass Broder
Langkah-langkah utama dari strategi ini adalah:
Inisialisasi parameter termasuk panjang bandpassLength
, koefisien fluktuasiDelta
, batas zona pendekSellZone
, dan batas zona panjangBuyZone
.
Menghitung filter bandpass BroderBP
menggunakan serangkaian fungsi trigonometri.
Menentukan arah posisi: pergi pendek jikaBP
berada di atasSellZone
; pergi panjang jika di bawahBuyZone
; Jika tidak, mempertahankan posisi saat ini.
Sinyal output: menghasilkan sinyal panjang/pendek berdasarkan arah posisi.
Tetapkan warna bar berdasarkan hasil sinyal.
Gambar kurva filter bandpass.
Strategi ini menangkap fluktuasi jangka pendek menggunakan filter bandpass Broder, dan menghasilkan sinyal perdagangan ketika fluktuasi mencapai magnitudo tertentu untuk mengikuti tren.
Lebih sensitif terhadap fluktuasi pasar berdasarkan filter bandpass Broder, yang dapat menangkap tren jangka pendek.
Sensitivitas dapat disesuaikan melalui penyesuaian parameter untuk beradaptasi dengan lingkungan pasar yang berbeda.
Logika strategi yang sederhana dan jelas, mudah dipahami dan diimplementasikan.
Parameter dapat dengan mudah dioptimalkan untuk menemukan kombinasi terbaik.
Kurva filter bandpass visual secara intuitif menunjukkan fluktuasi pasar.
Filter bandpass yang terlalu dioptimalkan dapat menjadi terlalu sensitif dan menghasilkan sinyal palsu.
Tidak dapat menentukan titik akhir fluktuasi, dapat menyebabkan kerugian berkembang.
Frekuensi perdagangan yang tinggi dapat meningkatkan biaya dan risiko slip.
Rentan terhadap peristiwa angsa hitam yang memicu sinyal palsu.
Parameter perlu disesuaikan untuk produk dan pasar yang berbeda.
Pertimbangkan untuk mengatur stop loss untuk mengendalikan kerugian per perdagangan.
Perpanjang waktu keluar atau tambahkan filter untuk mengurangi sinyal palsu.
Mengoptimalkan parameter untuk menemukan kombinasi terbaik, mengevaluasi tingkat kemenangan, rasio keuntungan, rasio Sharpe dll.
Tambahkan filter seperti rata-rata bergerak silang, pola harga untuk menghindari perdagangan di daerah non-trending.
Pertimbangkan untuk menggabungkan parameter di berbagai instrumen untuk perdagangan keranjang untuk mendiversifikasi risiko.
Tambahkan logika stop loss untuk mengendalikan kerugian per perdagangan, seperti stop dinamis atau trailing stop.
Tambahkan profit taking seperti moving profit stops untuk mengunci keuntungan.
Mengoptimalkan sinyal masuk untuk menghindari sinyal palsu di pasar rentang. Pertimbangkan periode menahan yang lebih lama atau sinyal breakout.
Memperluas ke sistem arbitrage lintas aset menggunakan perbedaan harga untuk lindung nilai.
Optimasi backtest untuk pilihan aset terbaik dan strategi rebalancing.
Strategi Dual Bandpass Filter menilai fluktuasi harga menggunakan filter bandpass Broder
/*backtest start: 2022-10-17 00:00:00 end: 2023-10-23 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=2 //////////////////////////////////////////////////////////// // Copyright by HPotter v1.0 18/09/2018 // The related article is copyrighted material from // Stocks & Commodities Mar 2010 // You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect... // // You can change long to short in the Input Settings // WARNING: // - For purpose educate only // - This script to change bars colors. //////////////////////////////////////////////////////////// strategy(title="Bandpass Filter Strategy ver 2.0") Length = input(20, minval=1) Delta = input(0.5) SellZone = input(5, step = 0.01) BuyZone = input(-5, step = 0.01) reverse = input(false, title="Trade reverse") hline(BuyZone, color=green, linestyle=line) hline(SellZone, color=red, linestyle=line) xPrice = hl2 hline(0, color=blue, linestyle=line) beta = cos(3.14 * (360 / Length) / 180) gamma = 1 / cos(3.14 * (720 * Delta / Length) / 180) alpha = gamma - sqrt(gamma * gamma - 1) BP = 0.5 * (1 - alpha) * (xPrice - xPrice[2]) + beta * (1 + alpha) * nz(BP[1]) - alpha * nz(BP[2]) pos = iff(BP > SellZone, 1, iff(BP <= BuyZone, -1, nz(pos[1], 0))) possig = iff(reverse and pos == 1, -1, iff(reverse and pos == -1, 1, pos)) if (possig == 1) strategy.entry("Long", strategy.long) if (possig == -1) strategy.entry("Short", strategy.short) barcolor(possig == -1 ? red: possig == 1 ? green : blue ) plot(BP, color=red, title="Bandpass Filter Strategy")