Strategi backtest Fisher Transform menghitung transformasi Fisher dari harga untuk mengidentifikasi titik pembalikan harga dan menghasilkan sinyal perdagangan sesuai. Strategi memproses harga menggunakan rumus transformasi Fisher untuk menghilangkan fitur non-Gaussian dari distribusi harga, menghasilkan indikator standar dengan distribusi Gaussian perkiraan. Strategi menentukan pembalikan harga berdasarkan titik infleksi kurva transformasi Fisher dan menghasilkan sinyal panjang dan pendek.
Inti dari strategi ini adalah memproses harga menggunakan rumus transformasi Fisher untuk menghilangkan fitur non-Gaussian dari distribusi harga alami.
y = 0,5 * ln (((1+x) / (((1-x))
Di sini x adalah harga yang diproses, yang diperoleh dengan terlebih dahulu menemukan harga tertinggi dan terendah selama periode Panjang terbaru menggunakan fungsi tertinggi dan terendah, dan kemudian menormalkan sebagai berikut:
x = (harga - minimum) / (maksimum - minimum) - 0,5
Harga yang diproses dengan cara ini mendekati distribusi Gaussian. x kemudian digantikan ke dalam rumus transformasi Fisher untuk mendapatkan kurva transformasi Fisher. Titik lentur dalam pembalikan sinyal harga kurva transformasi Fisher.
Ketika kurva transformasi Fisher berubah dari positif menjadi negatif, sinyal jual dihasilkan. Ketika berubah dari negatif menjadi positif, sinyal beli dihasilkan.
Transformasi Fisher menghilangkan fitur non-Gaussian dari harga, menghasilkan harga yang lebih baik, harga standar dan lebih sedikit sinyal palsu
Menangkap titik pembalikan harga, menghindari mengejar atas dan bawah
Pengaturan parameter yang fleksibel untuk sensitivitas pembalikan pengaturan
Kearah yang dapat disesuaikan, beradaptasi dengan berbagai lingkungan pasar
Logika sederhana mudah dimengerti dan diterapkan
Pengaturan parameter yang tidak benar dapat melewatkan tikungan atau menghasilkan sinyal palsu
Slippage dalam perdagangan langsung dapat mencegah eksekusi sinyal yang sempurna
Sulit untuk mengidentifikasi belokan ketika harga tidak stabil
Sulit diterapkan dalam perdagangan langsung dengan kebutuhan untuk mengkonfirmasi pembalikan
Solusi:
Mengoptimalkan parameter dengan menyesuaikan Length
Meredakan kriteria masuk dengan tepat untuk memastikan mengisi
Menyaring sinyal palsu yang menggabungkan indikator lain
Ikuti aturan secara ketat dan mengelola risiko
Optimalkan parameter Length untuk menemukan kombinasi terbaik
Tambahkan filter untuk menghindari sinyal palsu misalnya rata-rata bergerak, indikator volatilitas dll.
Menggabungkan stop loss untuk mengendalikan kerugian per perdagangan
Tambahkan mekanisme re-entry untuk melacak tren yang terus berlanjut
Strategi backtest Fisher Transform mengidentifikasi titik pembalikan harga dengan menghilangkan fitur harga non-Gaussian. Ini adalah strategi pembalikan rata-rata yang mudah diterapkan. Keuntungannya terletak pada parameter fleksibel untuk menangkap giliran sementara kelemahan utamanya adalah kesulitan implementasi langsung dengan kebutuhan akan aturan masuk yang ketat. Berbagai metode dapat digunakan untuk mengoptimalkan strategi ini untuk penerapan praktis.
/*backtest start: 2023-11-26 00:00:00 end: 2023-12-03 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version = 2 //////////////////////////////////////////////////////////// // Copyright by HPotter v2.0 22/12/2016 // Market prices do not have a Gaussian probability density function // as many traders think. Their probability curve is not bell-shaped. // But trader can create a nearly Gaussian PDF for prices by normalizing // them or creating a normalized indicator such as the relative strength // index and applying the Fisher transform. Such a transformed output // creates the peak swings as relatively rare events. // Fisher transform formula is: y = 0.5 * ln ((1+x)/(1-x)) // The sharp turning points of these peak swings clearly and unambiguously // identify price reversals in a timely manner. // // For signal used zero. // You can change long to short in the Input Settings // Please, use it only for learning or paper trading. Do not for real trading. //////////////////////////////////////////////////////////// strategy(title="Fisher Transform Indicator by Ehlers Backtest", shorttitle="Fisher Transform Indicator by Ehlers") Length = input(10, minval=1) reverse = input(false, title="Trade reverse") hline(0, color=blue) xHL2 = hl2 xMaxH = highest(xHL2, Length) xMinL = lowest(xHL2,Length) nValue1 = 0.33 * 2 * ((xHL2 - xMinL) / (xMaxH - xMinL) - 0.5) + 0.67 * nz(nValue1[1]) nValue2 = iff(nValue1 > .99, .999, iff(nValue1 < -.99, -.999, nValue1)) nFish = 0.5 * log((1 + nValue2) / (1 - nValue2)) + 0.5 * nz(nFish[1]) pos = iff(nFish > 0, 1, iff(nFish < 0, -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(nFish, color=green, title="Fisher") plot(nz(nFish[1]), color=red, title="Trigger")