
Chiến lược này dựa trên phương pháp đo đạc của chỉ số biến đổi Fisher. Công thức biến đổi Fisher có thể chuyển dữ liệu giá thành phân bố chính xác, được sử dụng để xác định điểm giá cực và điểm biến đổi. Chiến lược này kết hợp với chỉ số biến đổi Fisher để xác định xu hướng giá, để thực hiện giao dịch tự động.
Giải quyết rủi ro:
Các chiến lược tối ưu hóa trên có thể làm tăng thêm chiến lược chiến thắng, khóa lợi nhuận, kiểm soát rủi ro, để có được kết quả giao dịch ổn định và hiệu quả hơn.
Phương pháp đo đạc chỉ số chuyển đổi của Fisher tích hợp các chỉ số chuyển đổi của Fisher để xác định điểm biến đổi giá và hướng xu hướng. Phương pháp này là chính xác, có mức độ tự động hóa cao, có thể đạt được kết quả giao dịch ổn định và hiệu quả thông qua tối ưu hóa tham số. Tuy nhiên, cũng có một số rủi ro như chậm trễ, dương tính giả, cần phải giới thiệu cơ chế xác minh nhiều lần và cách điều chỉnh động để tối ưu hóa hơn nữa, làm cho chiến lược có tính linh hoạt và thô lỗ.
/*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")