Bagaimana Fisher Transform dihitung?

Pelajari langkah-langkah perhitungan Fisher Transform, input, dan keterbatasannya.

Bagaimana Fisher Transform dihitung?

Apa itu Fisher Transform (dan mengapa rumusnya terlihat berbeda)

Fisher Transform adalah transformasi matematis yang dirancang untuk mengubah deret waktu (seringkali deret harga) menjadi bentuk yang berperilaku lebih seperti osilator tanpa batas. Ini disebut “transform” karena memetakan ulang nilai menggunakan fungsi non-linear, bukan karena melakukan prediksi statistik.

Dalam praktiknya, ide utamanya adalah:

  1. kurangi deret input menjadi nilai terikat menggunakan rentang tertinggi/terendah bergulir,
  2. terapkan pemetaan non-linear gaya Fisher (terkait dengan rasio log),
  3. perbarui nilai yang dipetakan secara rekursif sehingga indikator merespons dengan lancar, bukan murni “titik demi titik.”

Karena pemetaannya non-linear dan rentang dihitung dalam jendela, skala keluaran dan sensitivitas yang tepat sangat bergantung pada pengaturan yang Anda pilih dan data yang Anda masukkan ke dalam perhitungan.

Perhitungan inti: rumus, parameter, dan input

Perhitungan Fisher Transform yang banyak digunakan mengikuti struktur umum ini. Detail implementasi yang tepat bervariasi menurut sumber, tetapi mekanisme di bawah ini menangkap komponen-komponen penting.

Parameter dan input

Anda memerlukan:

  • Deret input: biasanya nilai harga turunan (misalnya, harga median), yang disediakan untuk setiap langkah waktu.
  • Panjang jendela lookback (N): jumlah bar yang digunakan untuk menghitung minimum dan maksimum bergulir.
  • Rekursi/iterasi: pemetaan Fisher menggunakan pembaruan rekursif yang merujuk pada nilai terhitung sebelumnya.

Langkah 1: hitung nilai ternormalisasi bergulir

Untuk setiap langkah waktu t (mulai hanya setelah data yang cukup ada untuk lookback), hitung min dan max bergulir dari deret input selama N langkah terakhir:

  • Terendah(t) = min dari input selama jendela
  • Tertinggi(t) = max dari input selama jendela

Kemudian hitung posisi ternormalisasi dalam rentang, seringkali dalam bentuk:

  • x(t) = 2 × ((\frac{Input(t) - Terendah(t)}{Tertinggi(t) - Terendah(t)})) − 1

Ini memetakan input saat ini ke nilai terikat (secara konseptual antara −1 dan +1) berdasarkan posisinya dalam rentang min/max terbarunya.

Asumsi untuk contoh perhitungan: Anda harus mendefinisikan apa itu “Input(t)”, dan Anda harus menggunakan N yang sama dan definisi jendela yang sama (inklusif/eksklusif dari bar saat ini) secara konsisten saat mereproduksi nilai.

Langkah 2: terapkan pemetaan non-linear gaya Fisher

Hitung nilai antara yang memetakan nilai ternormalisasi terikat ke domain mirip Fisher menggunakan transformasi rasio-log. Pola umumnya adalah:

  • f(t) = 0,5 × ln((\frac{1 + x(t)}{1 - x(t)}))

Untuk menghindari singularitas (pembagian dengan nol atau log dari nol) ketika x(t) mendekati ±1, implementasi biasanya menyertakan pengaman seperti menjepit x(t) ke interval yang sedikit lebih kecil (misalnya, mencegah tepat −1 dan +1).

Langkah 3: pembaruan rekursif (penghalusan melalui nilai sebelumnya)

Banyak rumus Fisher Transform memperbarui nilai yang dipetakan menggunakan keluaran sebelumnya. Struktur rekursif yang umum adalah:

  • fish(t) = fish(t−1) + f(t)

dan terkadang faktor penghalusan tambahan atau variabel “sebelumnya” antara diperkenalkan. Bentuk rekursif yang tepat menentukan daya tanggap indikator.

Langkah 4: pembulatan atau penskalaan opsional

Beberapa implementasi menskalakan ulang atau membulatkan deret akhir agar mudah dibaca. Ini adalah pilihan tampilan, bukan konsep matematika inti.

Garis besar contoh pengerjaan yang dapat Anda verifikasi secara mandiri

Karena tidak ada data pasar real-time yang diasumsikan di sini, cara paling andal untuk mempelajari perhitungannya adalah dengan mereproduksinya pada kumpulan data hipotetis kecil.

Pengaturan contoh (tentukan asumsi terlebih dahulu)

  • Pilih N = 5.
  • Pilih Input(t) untuk setiap langkah waktu (misalnya, deret harga median) yang Anda sediakan sebagai nilai numerik.
  • Putuskan bagaimana Anda menangani titik “N pertama” (biasanya Anda mulai menghasilkan keluaran hanya setelah jendela lengkap).
  • Putuskan bagaimana Anda menjepit x(t) ketika rentangnya terlalu kecil.

Hitung nilai antara langkah demi langkah

Untuk setiap langkah waktu di mana jendela ada:

  1. Temukan Terendah(t) dan Tertinggi(t) dari N nilai input terakhir.
  2. Hitung x(t) menggunakan (2 × ((Input−Terendah)/(Tertinggi−Terendah)) − 1).
  3. Amankan x(t) sehingga tidak mencapai ±1 secara tepat.
  4. Hitung f(t) = 0,5 × ln((1 + x)/(1 − x)).
  5. Perbarui fish(t) menggunakan rekursi yang dipilih, seperti fish(t) = fish(t−1) + f(t) (dengan fish(t−1) diinisialisasi sesuai konvensi pilihan Anda).

Cara memeriksa apakah Anda mengimplementasikannya dengan benar

Ketika Anda mengimplementasikan langkah yang sama dengan asumsi yang sama, Anda harus mencocokkan:

  • nilai min/max bergulir,
  • urutan x(t) antara,
  • pemetaan Fisher f(t),
  • dan urutan fish(t) rekursif.

Jika salah satu urutan antara berbeda, keluaran akhir juga akan berbeda. Inilah sebabnya mengapa fokus verifikasi harus pada mereproduksi perhitungan antara, bukan hanya garis akhir.

Keterbatasan dan mode kegagalan (apa yang dapat merusak perhitungan)

Meskipun Fisher Transform adalah rumus yang terdefinisi, keluaran yang dihitung dapat sangat bervariasi tergantung pada bagaimana Anda mengimplementasikan detail dan bagaimana perilaku data Anda.

1) Rentang kecil atau datar di jendela lookback

Jika Tertinggi(t) − Terendah(t) menjadi sangat kecil, normalisasi ((Input−Terendah)/(Tertinggi−Terendah)) menjadi tidak stabil. Hal ini dapat menyebabkan x(t) melonjak tiba-tiba menuju ±1, yang kemudian mendorong pemetaan log menuju nilai ekstrem.

Implikasi material: Anda harus mendefinisikan pengaman untuk rentang mendekati nol (misalnya, melewati pembaruan atau menjepit rasio yang dihitung).

2) Singularitas dalam transformasi rasio-log

Pemetaan (ln((1+x)/(1−x))) tidak terdefinisi tepat pada x = 1 atau x = −1. Data nyata dan pembulatan masih dapat menghasilkan nilai yang sangat dekat dengan batas-batas tersebut.

Implikasi material: implementasi biasanya menjepit x(t) sedikit di dalam (−1, +1) untuk menghindari nilai tak terhingga.

3) Inisialisasi rekursif dan konvensi yang tidak konsisten

Karena perhitungan sering menggunakan keluaran sebelumnya, pilihan fish(0) awal (atau nilai fish pertama yang dihitung) memengaruhi nilai-nilai berikutnya.

Implikasi material: dua implementasi yang menggunakan rumus yang sama tetapi konvensi awal yang berbeda dapat menyimpang.

4) Definisi input mengubah segalanya

Jika “Input(t)” adalah ukuran harga yang berbeda (close vs. median vs. harga tertimbang), nilai min/max bergulir berubah, sehingga x(t) dan oleh karena itu keluaran Fisher berubah.

Implikasi material: Anda harus memperlakukan definisi deret input sebagai bagian dari perhitungan, bukan sebagai detail eksternal.

5) Masalah kualitas data

Bar yang hilang, stempel waktu yang tidak teratur, dan data yang di-resample dapat mengubah jendela min/max bergulir. Bahkan tanpa “prediksi pasar” apa pun, mekanika perhitungan ini dapat mendistorsi garis indikator.

Perdagangan forex dan CFD memiliki risiko besar. Informasi FoxiForex bersifat edukatif dan bukan nasihat keuangan pribadi. Penempatan bersponsor diberi label dengan jelas.