
Strategi ini didasarkan pada indikator konversi Fisher yang dirancang oleh analis teknis John Ehlers, untuk mengidentifikasi secara otomatis titik-titik pembalikan tren harga, melakukan perdagangan otomatis posisi panjang dan pendek. Kelebihannya terbesar adalah akurasi dan ketepatan waktu untuk mengidentifikasi pembalikan harga.
Strategi ini menggunakan rumus konversi Fisher untuk menstandarisasi harga, menghasilkan urutan harga yang mendekati distribusi Gaussian. Formula konversi Fisher adalah: y = 0,5 * ln (((1+x) / ((1-x))). Melalui konversi ini, nilai ekstrim harga dapat dikonversi menjadi peristiwa yang relatif lebih jarang.
Secara khusus, langkah-langkah strategi adalah sebagai berikut:
Keuntungan terbesar dari strategi ini adalah akurasi dan ketepatan waktu dari sinyal perdagangan. Karena urutan harga yang dihasilkan oleh konversi Fischer hampir sesuai dengan distribusi Gaussian, indikator konversi Fischer dapat dengan cepat mengidentifikasi dan bereaksi sesuai ketika harga berbalik.
Risiko terbesar dari strategi ini adalah bahwa urutan harga setelah konversi Fisher tidak selalu sesuai dengan distribusi Gaussian yang rasional. Ketika pasar mengalami fluktuasi yang tidak biasa, seperti retakan, melompat, dan sebagainya, dapat menyebabkan indikator konversi Fisher mengirimkan sinyal yang salah. Pada saat ini jika masih perdagangan mekanis, dapat menyebabkan kerugian yang lebih besar.
Untuk mengurangi risiko ini, Anda dapat mempertimbangkan untuk memfilter sinyal perdagangan dalam kombinasi dengan indikator lain, untuk menghindari tetap berdagang saat ada ketidaknormalan pasar. Atau Anda dapat menyesuaikan parameter dengan tepat, mengurangi frekuensi perdagangan dan skala kerugian tunggal.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Strategi ini didasarkan pada indikator konversi Fisher yang dirancang oleh Ehlers, yang dapat dengan cepat dan akurat mengidentifikasi titik-titik reversal harga sehingga dapat menangkap peluang perdagangan tepat waktu. Kelebihannya terbesar adalah akurasi dan waktu sinyal perdagangan. Namun, ada juga risiko tertentu yang memerlukan pengoptimalan parameter dan aturan perdagangan untuk mengurangi risiko.
/*backtest
start: 2023-12-08 00:00:00
end: 2024-01-07 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version = 2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 15/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.
//
// 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")
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 > nz(nFish[1]), 1,
iff(nFish < nz(nFish[1]), -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")