Fisher Transform Backtest Strategi

Penulis:ChaoZhang, Tanggal: 2023-12-04 13:43:05
Tag:

img

Gambaran umum

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.

Prinsip Strategi

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.

Analisis Keuntungan

  1. Transformasi Fisher menghilangkan fitur non-Gaussian dari harga, menghasilkan harga yang lebih baik, harga standar dan lebih sedikit sinyal palsu

  2. Menangkap titik pembalikan harga, menghindari mengejar atas dan bawah

  3. Pengaturan parameter yang fleksibel untuk sensitivitas pembalikan pengaturan

  4. Kearah yang dapat disesuaikan, beradaptasi dengan berbagai lingkungan pasar

  5. Logika sederhana mudah dimengerti dan diterapkan

Analisis Risiko

  1. Pengaturan parameter yang tidak benar dapat melewatkan tikungan atau menghasilkan sinyal palsu

  2. Slippage dalam perdagangan langsung dapat mencegah eksekusi sinyal yang sempurna

  3. Sulit untuk mengidentifikasi belokan ketika harga tidak stabil

  4. Sulit diterapkan dalam perdagangan langsung dengan kebutuhan untuk mengkonfirmasi pembalikan

Solusi:

  1. Mengoptimalkan parameter dengan menyesuaikan Length

  2. Meredakan kriteria masuk dengan tepat untuk memastikan mengisi

  3. Menyaring sinyal palsu yang menggabungkan indikator lain

  4. Ikuti aturan secara ketat dan mengelola risiko

Arahan Optimasi

  1. Optimalkan parameter Length untuk menemukan kombinasi terbaik

  2. Tambahkan filter untuk menghindari sinyal palsu misalnya rata-rata bergerak, indikator volatilitas dll.

  3. Menggabungkan stop loss untuk mengendalikan kerugian per perdagangan

  4. Tambahkan mekanisme re-entry untuk melacak tren yang terus berlanjut

Kesimpulan

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")

Lebih banyak