
Chiến lược này kết hợp các đường trung bình di chuyển của Hall và các đợt sóng Kalman để xác định và theo dõi xu hướng giá, thuộc chiến lược theo dõi xu hướng. Nó sử dụng các đường trung bình di chuyển của Hall trong hai chu kỳ khác nhau để xây dựng tín hiệu giao dịch và xử lý trơn tru với các đợt sóng Kalman nhằm cải thiện chất lượng tín hiệu và sự ổn định của chiến lược.
Chiến lược sử dụng trung bình di chuyển Hall 24 chu kỳ và trung bình di chuyển Hall ba chu kỳ để xây dựng tín hiệu giao dịch.
Khi hma trên đeo hma3, tạo ra tín hiệu mua; khi hma dưới đeo hma3, tạo ra tín hiệu bán.
Chiến lược tắt bộ lọc Kalman theo mặc định, sau khi bật bộ lọc Kalman, xử lý bộ lọc Kalman cho hma và hma3 để lọc ra tiếng ồn quá mức và nâng cao chất lượng tín hiệu.
Các bước dự đoán và điều chỉnh của sóng Kallmann loại bỏ tiếng ồn ngẫu nhiên trong tín hiệu. Mỗi lần đo, chênh lệch với dự đoán trước đó được sử dụng như một điểm điều chỉnh để dự đoán chính xác hơn các giá trị đo tiếp theo. Bằng cách dự đoán và điều chỉnh lặp đi lặp lại, ảnh hưởng của tiếng ồn có thể được giảm dần, làm cho tín hiệu trở nên mịn hơn.
Chiến lược này sử dụng các sóng Kármán để tăng cường sự ổn định của chiến lược trung bình di chuyển, loại bỏ tác động của biến động ngẫu nhiên và theo dõi xu hướng liên tục.
Hệ thống trung bình di chuyển kép có khả năng nhận diện xu hướng liên tục tốt hơn so với trung bình di chuyển đơn.
Hole Moving Average được tính toán bằng cách tăng trọng lượng, cho giá gần đây trọng lượng lớn hơn và có thể nắm bắt sự thay đổi giá một cách nhạy cảm hơn.
Bộ lọc KALMAN có thể lọc hiệu quả tiếng ồn ngẫu nhiên trong tín hiệu, giảm tín hiệu giả và cải thiện chất lượng tín hiệu.
Các tham số chiến lược có thể được điều chỉnh, độ dài chu kỳ và lợi nhuận của sóng Kalman có thể được điều chỉnh theo thị trường và thích ứng với các tình huống khác nhau.
Chiến lược sử dụng kỹ thuật xây dựng tín hiệu xuyên chu kỳ để nhận ra xu hướng lâu dài hơn và tránh bị lừa bởi quá nhiều biến động ngẫu nhiên.
Giao diện trực quan hiển thị tín hiệu và trạng thái xu hướng, dễ dàng sử dụng.
Chiến lược trung bình di chuyển kép dễ tạo ra tín hiệu sai tại các điểm biến xu hướng và không thể nắm bắt được sự biến đổi kịp thời.
Đường trung bình di chuyển có thể bị tụt hậu, có thể bỏ lỡ cơ hội biến đổi giá nhanh chóng.
Không được sử dụng trong các tình huống biến động mạnh, nên tránh sử dụng trong giai đoạn chấn động.
Các thiết lập tham số của bộ lọc Kalman có thể ảnh hưởng đến hiệu suất của chiến lược, và tăng cường quá mức có thể lọc các tín hiệu hiệu quả.
Cài đặt chu kỳ dài sẽ không đáp ứng nhạy cảm, còn thiết lập chu kỳ ngắn dễ bị ảnh hưởng bởi tiếng ồn, cần điều chỉnh tham số theo thị trường.
Thời gian giữ nhiều vị trí không cố định, có giai đoạn không giữ vị trí, làm giảm hiệu quả sử dụng vốn.
Bạn có thể thử sử dụng các tham số tối ưu hóa động chuyển động trung bình thích ứng, điều chỉnh độ dài chu kỳ theo tỷ lệ dao động.
Sử dụng chỉ số biến động để đánh giá tình trạng thị trường, tránh giao dịch trong thị trường biến động và chỉ giao dịch khi xu hướng rõ ràng.
Có thể thiết lập chiến lược dừng lỗ, tránh tổn thất mở rộng, nâng cao khả năng kiểm soát rủi ro.
Tối ưu hóa các tham số lọc Kalman, cân bằng độ nhạy theo dõi và độ lọc tiếng ồn.
Kết hợp với các chỉ số khác để xác nhận hiệu quả của tín hiệu, chẳng hạn như chỉ số năng lượng, độ bền của xu hướng theo Brin.
Có thể sử dụng các phương tiện học máy để đào tạo tham số, làm cho chiến lược trở nên mạnh mẽ hơn và thích ứng hơn.
Chiến lược này có thể xác định hiệu quả các xu hướng duy trì và cải thiện chất lượng tín hiệu thông qua phương pháp theo dõi xu hướng bằng đường trung bình di chuyển của hai Hall và đường viền Kalman. Tuy nhiên, cần chú ý đến việc tối ưu hóa tham số, điều chỉnh phù hợp với thị trường và kiểm soát rủi ro để có được lợi nhuận ổn định.
/*backtest
start: 2022-10-25 00:00:00
end: 2023-10-31 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Hull Trend with Kahlman Strategy Backtest", shorttitle="HMA-Kahlman Trend Strat", overlay=true)
src = input(hl2, "Price Data")
length = input(24, "Lookback")
showcross = input(true, "Show cross over/under")
gain = input(10000, "Gain")
k = input(true, "Use Kahlman")
hma(_src, _length) =>
wma((2 * wma(_src, _length / 2)) - wma(_src, _length), round(sqrt(_length)))
hma3(_src, _length) =>
p = length/2
wma(wma(close,p/3)*3 - wma(close,p/2) - wma(close,p),p)
kahlman(x, g) =>
kf = 0.0
dk = x - nz(kf[1], x)
smooth = nz(kf[1],x)+dk*sqrt((g/10000)*2)
velo = 0.0
velo := nz(velo[1],0) + ((g/10000)*dk)
kf := smooth+velo
a = k ? kahlman(hma(src, length), gain) : hma(src, length)
b = k ? kahlman(hma3(src, length), gain) : hma3(src, length)
c = b > a ? color.lime : color.red
crossdn = a > b and a[1] < b[1]
crossup = b > a and b[1] < a[1]
p1 = plot(a,color=c,linewidth=1,transp=75)
p2 = plot(b,color=c,linewidth=1,transp=75)
fill(p1,p2,color=c,transp=55)
plotshape(showcross and crossdn ? a : na, location=location.absolute, style=shape.labeldown, color=color.red, size=size.tiny, text="S", textcolor=color.white, transp=0, offset=-1)
plotshape(showcross and crossup ? a : na, location=location.absolute, style=shape.labelup, color=color.green, size=size.tiny, text="B", textcolor=color.white, transp=0, offset=-1)
longCondition = crossup
if (longCondition)
strategy.entry("LE", strategy.long)
shortCondition = crossdn
if (shortCondition)
strategy.entry("SE", strategy.short)