
Strategi ini adalah berdasarkan kepada penunjuk penukaran Fisher yang direka oleh pakar analisis teknikal John Ehlers, untuk mengenal pasti titik-titik perubahan trend harga secara automatik, melakukan perdagangan automatik untuk kedudukan panjang dan pendek. Kelebihannya yang terbesar adalah ketepatan dan ketepatan masa untuk mengenal pasti perubahan harga.
Strategi ini menggunakan formula pertukaran Fischer untuk menstandardkan harga, menghasilkan urutan harga yang berkisar kepada pengedaran Gaussian. Formula pertukaran Fischer adalah: y = 0.5 * ln (((1+x) / ((1-x))). Dengan penukaran ini, nilai teratas harga boleh ditukar kepada peristiwa yang agak jarang berlaku.
Secara khusus, langkah-langkah strategi adalah seperti berikut:
Kelebihan terbesar strategi ini adalah ketepatan dan ketepatan masa isyarat dagangan. Oleh kerana urutan harga yang dihasilkan oleh penukaran Fischer hampir sesuai dengan pengedaran Gaussian, penunjuk penukaran Fischer dapat dengan cepat mengiktiraf dan bertindak balas dengan sewajarnya apabila harga berbalik.
Risiko terbesar dalam strategi ini adalah bahawa urutan harga selepas penukaran Fisher tidak semestinya sesuai dengan pengedaran Gaussian yang rasional. Apabila pasaran mengalami turun naik yang tidak normal, seperti keretakan, lompatan, dan lain-lain, ia boleh menyebabkan indikator penukaran Fisher menghantar isyarat yang salah. Pada masa ini, jika masih perdagangan mekanikal, ia mungkin menyebabkan kerugian yang lebih besar.
Untuk mengurangkan risiko ini, anda boleh mempertimbangkan untuk memfilter isyarat perdagangan dalam kombinasi dengan petunjuk lain, untuk mengelakkan perdagangan ketika pasaran tidak normal. Atau anda boleh menyesuaikan parameter dengan sewajarnya, mengurangkan frekuensi perdagangan dan skala kerugian tunggal.
Strategi ini boleh dioptimumkan dalam beberapa aspek:
Strategi ini berdasarkan kepada penunjuk penukaran Fisher yang direka oleh Ehlers, yang dapat mengenal pasti dengan cepat dan tepat titik-titik perubahan harga, sehingga dapat menangkap peluang perdagangan tepat pada masanya. Kelebihannya yang terbesar adalah ketepatan dan ketepatan isyarat perdagangan.
/*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")