Chiến lược giao dịch giao cắt đường trung bình TEMA
Chiến lược này sử dụng hai chỉ báo TEMA với chu kỳ khác nhau để thực hiện giao dịch cắt nhau, nhằm nắm bắt xu hướng giá ở chu kỳ trung gian. Chỉ báo TEMA có thể lọc nhiễu giá một cách hiệu quả và nhận diện sự đảo chiều xu hướng.
Nguyên lý chiến lược:
-
Tính toán lần lượt hai đường trung bình TEMA nhanh và chậm. Thông số điển hình là đường nhanh 5 chu kỳ, đường chậm 8 chu kỳ.
-
Khi đường nhanh vượt lên trên đường chậm từ dưới lên, thực hiện hành động mua (long).
-
Khi đường nhanh cắt xuống dưới đường chậm từ trên xuống, thực hiện hành động đóng vị thế bán (short).
-
Có thể tùy chọn lọc theo hướng của thân nến (K线实体) để tránh giao dịch ngược chiều.
-
Thiết lập chu kỳ backtest để mô phỏng các tín hiệu giao dịch trong quá khứ.
Ưu điểm của chiến lược:
-
Chỉ báo TEMA có tác dụng lọc nhiễu giá mạnh mẽ.
-
Sự kết hợp TEMA nhanh và chậm giúp nắm bắt xu hướng chu kỳ trung gian.
-
Việc lọc theo hướng tránh vào lệnh ngược xu hướng, có thể nâng cao xác suất chiến thắng.
Rủi ro của chiến lược:
-
TEMA vẫn tồn tại vấn đề độ trễ, có thể bỏ lỡ thời điểm vào lệnh tối ưu.
-
Cần tối ưu hóa tổ hợp tham số để đạt được độ phù hợp tốt nhất.
-
Trong thị trường dao động (Musikschule – có thể là lỗi typo, ý chỉ thị trường đi ngang/dao động), khó có thể liên tục thu được tín hiệu.
Tóm lại, chiến lược này theo dõi giao dịch thông qua sự cắt nhau của hai đường TEMA, có thể lọc nhiễu hiệu quả và nâng cao tính ổn định. Tuy nhiên, vấn đề độ trễ của TEMA vẫn tồn tại, cần tối ưu hóa tham số để thích ứng với nhịp điệu thị trường.
/*backtest
start: 2022-09-11 00:00:00
end: 2023-09-11 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Tema",overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075)
startP = timestamp(input(2017, "Start Year"), input(12, "Start Month"), input(17, "Start Day"), 0, 0)
end = timestamp(input(9999, "End Year"), input(1, "End Month"), input(1, "End Day"), 0, 0)- 1
