Chiến lược lợi nhuận chỉ số KST là một chiến lược chọn cổ phiếu được áp dụng cho chu kỳ 30 phút của SPY. Chiến lược này sử dụng các dấu hiệu chéo KST để xác định thời gian vào và ra.
Chiến lược này chủ yếu dựa trên chỉ số KST.
Các tín hiệu mua và bán được xác định bởi các thập giá vàng và thập giá chết giữa đường KST và đường tín hiệu:
Những lợi thế chính của chiến lược này là:
Chỉ số KST xem xét toàn diện các biến động giá trong các thời gian khác nhau, làm cho chiến lược ổn định và đáng tin cậy hơn.
Trung bình trọng của các đường cong ROC trong chỉ số KST đảm bảo rằng những thay đổi giá dài hạn đóng một vai trò hàng đầu, giúp nắm bắt xu hướng thị trường.
Hoạt động tốt trong các sản phẩm thanh khoản cao như SPY.
Ngoài ra còn có một số rủi ro cho chiến lược này:
Giống như các chỉ số MA, chỉ số KST có thể tạo ra tín hiệu sai trong thị trường bên.
Các bước vào và ra hoàn toàn dựa trên chỉ số mà không xem xét các yếu tố cơ bản hoặc chế độ thị trường, dẫn đến tổn thất lớn trong các sự kiện quan trọng.
Vũ trụ đầu tư chỉ chứa SPY, vì vậy rủi ro một tài sản có thể cao.
Các cách tối ưu hóa chiến lược:
Tối ưu hóa các thông số KST để tìm kết hợp tốt nhất.
Bao gồm chỉ số biến động để tránh tín hiệu sai trong thời gian thị trường hỗn loạn.
Thêm lệnh dừng lỗ để hạn chế rủi ro giảm trên mỗi giao dịch.
Mở rộng nhóm cổ phiếu để bao gồm các cổ phiếu cá nhân đáp ứng các tiêu chí nhất định để cải thiện độ bền.
Chiến lược này xác định xu hướng ngắn hạn trong SPY bằng chỉ số KST, với kết quả backtest tốt. Chúng ta có thể cải thiện sự ổn định và hiệu suất trong thế giới thực thông qua điều chỉnh tham số, kiểm soát rủi ro và mở rộng các tiêu chí lựa chọn cổ phiếu. Làm cho nó có thể áp dụng phổ quát hơn.
/*backtest start: 2022-11-20 00:00:00 end: 2023-11-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("KST Strategy", shorttitle="KST", overlay=true) roclen1 = input.int(11, minval=1, title="ROC Length #1") roclen2 = input.int(15, minval=1, title="ROC Length #2") roclen3 = input.int(20, minval=1, title="ROC Length #3") roclen4 = input.int(33, minval=1, title="ROC Length #4") smalen1 = input.int(9, minval=1, title="SMA Length #1") smalen2 = input.int(14, minval=1, title="SMA Length #2") smalen3 = input.int(8, minval=1, title="SMA Length #3") smalen4 = input.int(15, minval=1, title="SMA Length #4") siglen = input.int(9, minval=1, title="Signal Line Length") smaroc(roclen, smalen) => ta.sma(ta.roc(close, roclen), smalen) kst = smaroc(roclen1, smalen1) + 2 * smaroc(roclen2, smalen2) + 3 * smaroc(roclen3, smalen3) + 4 * smaroc(roclen4, smalen4) sig = ta.sma(kst, siglen) // Plot the KST and Signal Line plot(kst, color=#009688, title="KST") plot(sig, color=#F44336, title="Signal") hline(0, title="Zero", color=#787B86) // Strategy logic longCondition = ta.crossover(kst, sig) shortCondition = ta.crossunder(kst, sig) strategy.entry("Long", strategy.long, when=longCondition) strategy.entry("Short", strategy.short, when=shortCondition)