Đây là một chiến lược sử dụng các giá quan trọng trên các đường thời gian khác nhau để tạo ra tín hiệu giao dịch bằng cách tạo ra các dấu hiệu phá vỡ kép. Nó có thể vào vị trí mua hoặc bán khi giá xu hướng phá vỡ mức hỗ trợ hoặc kháng cự quan trọng để nắm bắt xu hướng đường dài trung bình.
Chiến lược phân tích giá cả đồng thời trên hai trục thời gian khác nhau (tf và tf2), trục thời gian tf dài hơn, phản ánh xu hướng đường dài trung bình; trục thời gian tf2 ngắn hơn, phản ánh chuyển động ngắn hạn. Chiến lược giám sát các tín hiệu giao dịch sau:
Các điều kiện hình thành tín hiệu giao dịch là: up1 và up2 đồng thời là đúng, cho thấy đường dài trung bình và ngắn hạn đều lạc quan, khi đó làm nhiều; dn1 và dn2 đồng thời là đúng, cho thấy đường dài trung bình và ngắn hạn đều giảm, khi đó làm trống.
Chiến lược này cũng bổ sung một số điều kiện lọc, chẳng hạn như bộ lọc ngược và bộ lọc màu K, để ngăn chặn sự phá vỡ xu hướng không thực sự tạo ra tín hiệu sai.
Nhìn chung, chiến lược này tận dụng lợi thế của phân tích nhiều giai đoạn thời gian, tạo ra tín hiệu giao dịch chất lượng cao trong khi đảm bảo xu hướng đường dài trung bình phù hợp với dự kiến, tránh bị nhiễu bởi tiếng ồn thị trường ngắn hạn.
Chiến lược này theo dõi các đợt phá vỡ giá quan trọng trên cả hai trục thời gian, có thể bắt được thời điểm vào rõ ràng trong giai đoạn bắt đầu xu hướng.
Việc đột phá đồng thời trên hai trục thời gian khác nhau có thể làm giảm đáng kể tín hiệu sai do dao động ngẫu nhiên và cải thiện chất lượng tín hiệu.
Thêm vào đó là tính năng phân tích màu K-Line, có thể lọc ra một số tín hiệu đột phá có chất lượng thấp và ngăn chặn thiệt hại nghiêm trọng.
Chiến lược này chỉ cần hai tham số theo thời gian để hoạt động, tùy chọn tham số linh hoạt và phù hợp với các giống khác nhau.
Cấu trúc chiến lược rõ ràng, dễ hiểu nguyên tắc; cũng có thể điều chỉnh tham số theo đặc điểm của trường hợp, để tối ưu hóa chiến lược.
So với đột phá đơn, đột phá kép có thể gây ra một số chậm trễ vào cửa và bỏ lỡ lợi nhuận từ thị trường mạnh mẽ ban đầu.
Các loại khác nhau và chu kỳ thị trường, lựa chọn mức giá quan trọng phù hợp là rất quan trọng, nếu không có thể nhận được tín hiệu sai.
Ngay cả khi có hai lần đột phá, có thể có trường hợp đột phá không thành công và sau đó nhanh chóng quay trở lại, dẫn đến tổn thất.
Trong xu hướng, có thể xảy ra một sự đảo ngược đột ngột khi nhập vào muộn, gây ra tổn thất lớn hơn khi không thể dừng lỗ vào thời điểm đó.
Mặc dù đơn giản, nhưng để tìm ra sự kết hợp tham số tốt nhất vẫn cần rất nhiều thử nghiệm lặp lại, và việc tối ưu hóa rất khó.
Có thể thiết lập dừng di chuyển hoặc dừng thời gian để dừng lỗ trước khi lỗ mở rộng.
Bạn có thể thử nghiệm các tham số độ rộng khác nhau, hoặc thử nghiệm các phương pháp lọc khác.
Có thể thay đổi giá quan trọng theo sự thay đổi của thị trường, thay vì thiết lập tĩnh.
Có thể tối ưu hóa các tham số tốt nhất cho các giống khác nhau bằng cách học máy.
Có thể thêm xác nhận số lượng giao dịch, tránh vô số tín hiệu giả mạo.
Chiến lược này nhìn chung là một chiến lược theo dõi xu hướng thực tế đơn giản. Nó sử dụng phân tích hai trục thời gian cùng một lúc, vào khi đường dài trung bình phù hợp với dự kiến, có thể lọc một phần tiếng ồn hiệu quả. Các tín hiệu chiến lược rõ ràng, dễ đọc, thiết lập tham số cũng tương đối trực quan.
/*backtest
start: 2023-10-15 00:00:00
end: 2023-11-14 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=2
strategy(title = "Noro's Levels Strategy v1.0", shorttitle = "Levels str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0)
//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Capital, %")
tf = input('W', title = "timeframe 1")
tf2 = input('D', title = "timeframe 2")
src = input(ohlc4, "Source")
ap = input(true, defval = true, title = "antipila")
cf = input(true, defval = true, title = "color filter")
fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year")
toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year")
frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month")
tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month")
fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day")
today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day")
//Signals
level = request.security(syminfo.tickerid, tf, src[1])
level2 = request.security(syminfo.tickerid, tf2, src[1])
plot(level, linewidth = 3, color = silver)
plot(level2, linewidth = 3, color = gray)
up1 = close > level and ap == false ? true : low > level ? true : false
dn1 = close < level and ap == false ? true : high < level ? true : false
up2 = close > level2 and ap == false ? true : low > level2 ? true : false
dn2 = close < level2 and ap == false ? true : high < level2 ? true : false
//Trading
lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1]
if up1 and up2 and (close < open or cf == false)
strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if dn1 and dn2 and (close > open or cf == false)
strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))
if time > timestamp(toyear, tomonth, today, 23, 59)
strategy.close_all()