Chiến lược này sử dụng các suy nghĩ của các đợt sóng và trung bình quay trở lại để nắm bắt các biến động bất thường trong ngắn hạn của giá cổ phiếu, để thực hiện giao dịch định hướng trên cổ phiếu. Chiến lược này trước tiên xây dựng một mô hình tỷ lệ giá của cổ phiếu so với chỉ số thị trường, sau đó sử dụng tỷ lệ tương phản của kỹ thuật đợt sóng của Carlman để dự đoán và đợt sóng.
Ý tưởng cốt lõi của chiến lược này là xây dựng mô hình tỷ lệ của giá cổ phiếu với giá chỉ số thị trường. Tỷ lệ này có thể phản ánh mức giá của mỗi cổ phiếu so với tổng thể thị trường. Khi tỷ lệ cao, cho rằng cổ phiếu được đánh giá quá cao, tạo ra tín hiệu bán; khi tỷ lệ thấp, cho rằng cổ phiếu được đánh giá thấp, tạo ra tín hiệu mua.
Để làm mịn các tín hiệu tỷ lệ, các chiến lược sử dụng thuật toán Karlman . Các tín hiệu Karlman sẽ cân nặng các giá trị quan sát thực tế của tỷ lệ với giá trị dự đoán, cập nhật dự báo tỷ lệ trong thời gian thực. Và tính toán một giá trị Karlman .
Ngoài ra, chiến lược cũng xem xét yếu tố khối lượng giao dịch. Chỉ khi khối lượng giao dịch lớn, tín hiệu giao dịch thực sự sẽ được tạo ra, điều này có thể ngăn chặn một số giao dịch sai.
Ưu điểm lớn nhất của chiến lược này là sử dụng thuật toán Kalman Wave để làm mịn và dự đoán tỷ lệ giá hiệu quả. So với mô hình hồi phục trung bình đơn giản, Kalman Wave có thể phản ánh tốt hơn sự thay đổi động lực của giá, đặc biệt là khi giá dao động mạnh. Điều này cho phép chiến lược phát hiện bất thường giá và tạo ra tín hiệu giao dịch chính xác.
Thứ hai, việc kết hợp khối lượng giao dịch cũng tăng cường tính ứng dụng thực tế của chiến lược. Việc lọc khối lượng giao dịch hợp lý giúp tránh một số tín hiệu sai và giảm chi phí giao dịch không cần thiết.
Nhìn chung, chiến lược này kết hợp thành công các kỹ thuật khác nhau, bao gồm sóng Kalman, hồi phục giá trị trung bình và phân tích khối lượng giao dịch, tạo thành một chiến lược giao dịch định lượng mạnh mẽ.
Mặc dù chiến lược này là hoàn hảo về mặt lý thuyết và kỹ thuật, nhưng vẫn có một số rủi ro tiềm ẩn cần quan tâm trong ứng dụng thực tế.
Đầu tiên là rủi ro mô hình. Một số tham số quan trọng trong mô hình Karman, chẳng hạn như chênh lệch nhiễu quá trình, chênh lệch nhiễu quan sát, cần được ước tính dựa trên dữ liệu lịch sử. Nếu ước tính không chính xác hoặc môi trường thị trường thay đổi đáng kể, sẽ dẫn đến sự lệch trong dự báo của mô hình.
Tiếp theo là rủi ro chi phí trượt. Việc giao dịch thường xuyên sẽ tạo ra chi phí trượt nhiều hơn, làm giảm lợi nhuận chiến lược.
Cuối cùng, có một số rủi ro về hệ thống thị trường khi sử dụng chỉ số thị trường làm chuẩn. Khi toàn bộ thị trường biến động mạnh, tỷ lệ giá của từng cổ phiếu với thị trường cũng sẽ bất thường. Khi đó, chiến lược sẽ tạo ra tín hiệu sai. Chúng ta có thể xem xét chọn chỉ số ổn định hơn làm chuẩn.
Chiến lược này có thể được tối ưu hóa thêm:
Sử dụng mô hình học sâu phức tạp hơn để phù hợp và dự đoán tỷ lệ giá. Điều này có thể cải thiện độ chính xác và độ bền của mô hình.
Tối ưu hóa quy tắc lọc khối lượng giao dịch, thiết lập ngưỡng giao dịch năng động và thông minh hơn. Điều này có thể làm giảm khả năng giao dịch sai.
Kiểm tra các chỉ số thị trường khác nhau như một chuẩn mực chiến lược, chọn chỉ số ít biến động hơn và ổn định hơn. Điều này có thể làm giảm tác động của rủi ro hệ thống thị trường.
Kết hợp với phân tích cơ bản của cổ phiếu, tránh giao dịch một số cổ phiếu cơ bản rõ ràng xấu đi. Điều này có thể lọc ra các thương hiệu có chất lượng tốt hơn.
Sử dụng dữ liệu intraday tần số cao để phản hồi và tối ưu hóa chiến lược, điều này có thể cải thiện hiệu suất thực tế của chiến lược.
Chiến lược này đã thành công trong việc sử dụng mô hình sóng Kallmann để nắm bắt các biến động bất thường trong ngắn hạn của giá cổ phiếu. Đồng thời, việc đưa ra tín hiệu khối lượng giao dịch cũng tăng cường tính thực tế của chiến lược. Mặc dù vẫn còn một số rủi ro mô hình và rủi ro thị trường, nhưng đây là một chiến lược giao dịch định lượng rất triển vọng.
/*backtest
start: 2023-12-21 00:00:00
end: 2023-12-28 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © xXM3GAXx
//@version=5
strategy("My strategy", overlay=true)
//SPY or QQQ
context = request.security("BTC_USDT:swap", timeframe.period, input(close))
//our stock
particular = input(close)
//ratio
src = ta.roc(particular, 1) / math.abs(ta.roc(context, 1))
//kalman calculation
Sharpness = input.float(1.0)
K = input.float(1.0)
greencolor = color.lime
redcolor = color.red
velocity = 0.0
kfilt = 0.0
Distance = src - nz(kfilt[1], src)
Error = nz(kfilt[1], src) + Distance * math.sqrt(Sharpness*K/ 100)
velocity := nz(velocity[1], 0) + Distance*K / 100
kfilt := Error + velocity
//2 std devs up and down
upper = kfilt[1] + 2 * ta.stdev(kfilt, input(20))
lower = kfilt[1] - 2 * ta.stdev(kfilt, input(20))
//plotting for visuals
plot(kfilt, color=velocity > 0 ? greencolor : redcolor, linewidth = 2)
plot(upper)
plot(lower)
//plot(ta.ema(ta.roc(particular, 1)/ta.roc(context, 1), 5), color = #00ffff, linewidth=2)
//volume data
vol = volume
volema = ta.ema(volume, 10)
//buy when ratio too low
longCondition = kfilt<=lower and vol>=volema
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
//sell when ratio too high
shortCondition = kfilt>=upper and vol>=volema
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)