Chiến lược này sử dụng hai chỉ số TEMA của hai chu kỳ khác nhau để giao dịch chéo, để nắm bắt xu hướng giá trong chu kỳ giữa. Chỉ số TEMA có thể lọc hiệu quả tiếng ồn giá và nhận ra xu hướng đảo ngược.
Nguyên tắc chiến lược:
Hai đường trung bình TEMA được tính một cách nhanh và chậm. Các tham số điển hình là đường nhanh 5 chu kỳ, đường chậm 8 chu kỳ.
Khi đường nhanh vượt qua đường chậm từ phía dưới, thực hiện nhiều thao tác.
Khi đường nhanh vượt qua đường chậm từ phía trên xuống, hãy thực hiện thao tác bằng phẳng.
Có thể chọn lọc theo hướng thực thể K-line để tránh giao dịch ngược.
Thiết lập chu kỳ phản hồi, mô phỏng tín hiệu giao dịch lịch sử.
Những lợi thế của chiến lược này:
Chỉ số TEMA có tác dụng lọc tiếng ồn giá.
TEMA hợp tác nhanh chóng để nắm bắt xu hướng của chu kỳ trung gian.
Bộ lọc hướng tránh tạo lập vị trí đối kháng, giúp tăng tỷ lệ thắng.
Rủi ro của chiến lược này:
TEMA vẫn còn vấn đề về sự chậm trễ và có thể đã bỏ lỡ thời điểm tốt nhất để tham gia.
Cần tối ưu hóa các tham số để đạt được sự phù hợp tốt nhất.
Dưới sự chấn động của Musikschule, tín hiệu không thể tiếp tục được.
Tóm lại, chiến lược này theo dõi giao dịch thông qua hai TEMA giao nhau, có thể lọc hiệu quả tiếng ồn và cải thiện sự ổn định. Tuy nhiên, vấn đề về TEMA vẫn còn tồn tại và cần tối ưu hóa các tham số để phù hợp với nhịp độ 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)
_testPeriod() =>
iff(time >= startP and time <= end, true, false)
tema_length_1 = input(5, "Fast TEMA")
tema_length_2 = input(8, "Slow TEMA")
usedir = input(true, "Use bar's direction ?" )
dirtime = input(2,"direction bars")
tema(sec, length)=>
tema1= ema(sec, length)
tema2= ema(tema1, length)
tema3= ema(tema2, length)
tema = 3*tema1-3*tema2+tema3
tema1 = tema(hlc3, tema_length_1)
tema2 = tema(hlc3, tema_length_2)
dir=if close/close[dirtime] > 1
1
else
-1
plot(tema1, color=color.green, transp=50)
plot(tema2, color=color.red, transp=50)
up = crossover(tema1, tema2)
down = crossunder(tema1, tema2)
long_condition = up and (usedir ? dir==1 : true) and _testPeriod()
strategy.entry('BUY', strategy.long, when=long_condition)
short_condition = down
strategy.close('BUY', when=short_condition)