Strategi pengujian balik berdasarkan indikator transformasi Fisher

Penulis:ChaoZhang, Tanggal: 2024-01-25 14:22:36
Tag:

img

Gambaran umum

Strategi ini adalah strategi backtesting berdasarkan indikator transformasi Fisher. Rumus transformasi Fisher dapat mengkonversi data harga menjadi distribusi normal untuk mengidentifikasi harga ekstrem dan titik balik. Strategi ini menggabungkan indikator transformasi Fisher untuk menentukan tren harga dan mencapai perdagangan otomatis.

Prinsip Strategi

  1. Menghitung indikator HL2
  2. Menghitung maksimum xMaxH dan minimum xMinL dari HL2 dalam periode Panjang terbaru
  3. Hitung indikator transformasi Fisher:
    • nValue1 adalah 0,33 × ((standarisasi HL2) + 0,67 × nValue1 dari periode sebelumnya
    • nValue2 membatasi nValue1 antara -0,99 dan 0,99
    • nFish adalah transformasi logaritma dari nValue2
  4. Tentukan apakah nFish positif atau negatif untuk menentukan arah posisi
  5. Posisi sinyal possig, jika perdagangan terbalik diatur, mengambil posisi berlawanan
  6. Sinyal masuk: possig=1 untuk panjang, possig=-1 untuk pendek

Analisis Keuntungan

  1. Indikator transformasi Fisher dapat mengidentifikasi harga ekstrim dan titik balik untuk secara akurat menentukan tren
  2. Menyaring fluktuasi dengan menggabungkan indikator HL2 meningkatkan tingkat kemenangan
  3. Perdagangan terbalik dapat diatur untuk beradaptasi dengan lingkungan pasar yang berbeda
  4. Perdagangan otomatis tanpa penilaian manual mengurangi biaya perdagangan

Analisis Risiko

  1. Indikator transformasi Fisher memiliki lag dan mungkin melewatkan perubahan harga jangka pendek
  2. Risiko stop loss yang tinggi dalam tren volatilitas
  3. Pengaturan perdagangan terbalik yang tidak tepat dapat menyebabkan perdagangan yang salah sistemik
  4. Kurangnya verifikasi siklus silang, ada risiko positif palsu tertentu

Solusi Risiko:

  1. Sesuaikan parameter dengan tepat untuk memperpendek keterlambatan
  2. Meningkatkan rentang stop loss untuk mengendalikan kerugian transaksi tunggal
  3. Mengoptimalkan perdagangan terbalik dikombinasikan dengan indikator lain untuk penyaringan
  4. Meningkatkan mekanisme verifikasi yang berbeda dari tren, tingkat harga, siklus, dll

Arah Optimasi Strategi

  1. Menggabungkan indikator tren untuk memastikan tren utama konsisten
  2. Meningkatkan indikator siklus untuk meningkatkan keakuratan penilaian pembalikan harga
  3. Verifikasi beberapa kerangka waktu untuk menghindari positif palsu
  4. Mengatur rentang stop loss secara dinamis
  5. Mengoptimalkan parameter untuk memaksimalkan tingkat kemenangan dan faktor keuntungan

Optimasi di atas dapat meningkatkan tingkat kemenangan strategi, mengunci keuntungan, mengendalikan risiko, dan mendapatkan hasil perdagangan yang lebih stabil dan efisien.

Ringkasan

Strategi backtesting indikator transformasi Fisher mengintegrasikan indikator transformasi Fisher untuk menentukan titik pembalikan harga dan arah tren. Strategi ini memiliki penilaian yang akurat dan tingkat otomatisasi yang tinggi. Melalui optimasi parameter, hasil perdagangan yang stabil dan efisien dapat diperoleh. Tetapi ada juga risiko tertentu seperti lag dan positif palsu. Optimasi lebih lanjut diperlukan dengan memperkenalkan beberapa mekanisme verifikasi dan metode penyesuaian dinamis untuk membuat strategi lebih fleksibel dan kuat.


/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
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(1, color=white)
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