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