Fisher Transform Backtest Strategi

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

img

Ringkasan

Strategi uji balik Transform Fisher mengira transformasi Fisher harga untuk mengenal pasti titik pembalikan harga dan menjana isyarat dagangan dengan sewajarnya. Strategi memproses harga menggunakan formula transformasi Fisher untuk menghilangkan ciri-ciri bukan Gaussian dari pengedaran harga, menghasilkan penunjuk standard dengan pengedaran Gaussian kira-kira. Strategi menentukan pembalikan harga berdasarkan titik belokan kurva transformasi Fisher dan menghasilkan isyarat panjang dan pendek.

Prinsip Strategi

Inti strategi ini adalah untuk memproses harga menggunakan formula transformasi Fisher untuk menghapuskan ciri-ciri bukan Gaussian dalam pengedaran harga semula jadi.

y = 0.5 * ln((1+x)/(1-x))

Di sini x adalah harga yang diproses, yang diperoleh dengan mencari harga tertinggi dan terendah dalam tempoh Panjang yang paling baru menggunakan fungsi tertinggi dan terendah, dan kemudian menormalkan seperti berikut:

x = (harga - minimum) / ((maksimum - minimum) - 0.5

Harga yang diproses dengan cara ini mendekati pengedaran Gaussian. x kemudiannya digantikan ke dalam formula transformasi Fisher untuk mendapatkan lengkung transformasi Fisher. Titik lenturan dalam pembalikan isyarat harga lengkung transformasi Fisher.

Apabila kurva transformasi Fisher berubah dari positif kepada negatif, isyarat jual dihasilkan. Apabila ia berubah dari negatif kepada positif, isyarat beli dihasilkan.

Analisis Kelebihan

  1. Transformasi Fisher menghilangkan ciri-ciri bukan Gauss dari harga, menghasilkan harga yang lebih baik, harga standard dan kurang isyarat palsu

  2. Mencatatkan titik pembalikan harga, mengelakkan mengejar puncak dan bawah

  3. Penyesuaian parameter yang fleksibel untuk sensitiviti pembalikan penyesuaian

  4. Arahan yang boleh disesuaikan, disesuaikan dengan pelbagai persekitaran pasaran

  5. Logik mudah difahami dan dilaksanakan

Analisis Risiko

  1. Tetapan parameter yang tidak betul boleh terlepas belokan atau menghasilkan isyarat palsu

  2. Slippage dalam perdagangan langsung boleh menghalang pelaksanaan isyarat yang sempurna

  3. Sukar untuk mengenal pasti giliran apabila harga berubah-ubah

  4. Sukar untuk dilaksanakan dalam perdagangan langsung dengan keperluan untuk mengesahkan pembalikan

Penyelesaian:

  1. Mengoptimumkan parameter dengan menyesuaikan Panjang

  2. Ringankan kriteria kemasukan dengan sewajarnya untuk memastikan mengisi

  3. Menapis isyarat palsu yang menggabungkan penunjuk lain

  4. Mengikuti peraturan dan menguruskan risiko

Arahan pengoptimuman

  1. Mengoptimumkan parameter Panjang untuk mencari kombinasi terbaik

  2. Tambah penapis untuk mengelakkan isyarat palsu e.g. purata bergerak, penunjuk turun naik dll.

  3. Menggabungkan stop loss untuk mengawal kerugian setiap perdagangan

  4. Tambah mekanisme kemasukan semula untuk mengesan trend berterusan

Kesimpulan

Strategi uji balik Transform Fisher mengenal pasti titik pembalikan harga dengan menghilangkan ciri harga bukan Gaussian. Ia adalah strategi pembalikan purata yang mudah dilaksanakan. Kelebihannya terletak pada parameter fleksibel untuk menangkap giliran sementara kelemahan utamanya adalah kesukaran pelaksanaan langsung dengan keperluan peraturan kemasukan yang ketat. Pelbagai kaedah boleh digunakan untuk mengoptimumkan strategi ini untuk penerapan praktikal.


/*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 lanjut