Đây là một chiến lược sử dụng các mức chính trên các khung thời gian khác nhau để tạo ra các tín hiệu giao dịch đột phá đôi. Nó có thể nhập vào các vị trí dài hoặc ngắn khi giá xu hướng vượt qua các mức hỗ trợ hoặc kháng cự chính để nắm bắt các xu hướng trung và dài hạn.
Chiến lược phân tích hành động giá đồng thời trên hai khung thời gian khác nhau (tf và tf2), với tf là khung thời gian dài hơn phản ánh xu hướng trung và dài hạn, và tf2 là khung thời gian ngắn hơn phản ánh các động thái ngắn hạn.
Các tín hiệu giao dịch được hình thành khi up1 và up2 là đúng với nhau, chỉ ra dài và ngắn hạn là cả hai tăng, đi dài; khi dn1 và dn2 là cả hai đúng, chỉ ra dài và ngắn hạn cả hai giảm, đi ngắn.
Chiến lược này cũng kết hợp một số bộ lọc như đầu scalping ngược và nến màu để tránh các tín hiệu sai từ các đột phá không theo xu hướng.
Nhìn chung, chiến lược tận dụng tối đa lợi thế của phân tích nhiều khung thời gian, đảm bảo xu hướng trung và dài hạn đáp ứng kỳ vọng trong khi tránh can thiệp từ tiếng ồn thị trường ngắn hạn, tạo ra các tín hiệu giao dịch chất lượng cao.
Nhận các xu hướng trung và dài hạn bằng cách phá vỡ các mức chính
Bằng cách theo dõi sự đột phá các mức chính trong hai khung thời gian, nó có thể nắm bắt các tín hiệu nhập cảnh rõ ràng tại các giai đoạn bắt đầu xu hướng.
Xác nhận hai lần làm giảm đáng kể các tín hiệu sai
Yêu cầu đột phá đồng thời trên hai khung thời gian khác nhau làm giảm đáng kể các tín hiệu sai từ biến động ngẫu nhiên, cải thiện chất lượng tín hiệu.
Các bộ lọc như vỏ đầu đảo ngược và đèn chùm màu
Thêm scalping ngược và bộ lọc nến màu có thể loại bỏ một số tín hiệu thoát chất lượng thấp và ngăn ngừa tổn thất lớn.
Cài đặt tham số đơn giản
Chiến lược chỉ cần hai tham số khung thời gian để hoạt động, cung cấp điều chỉnh linh hoạt cho các sản phẩm khác nhau.
Dễ hiểu và tối ưu hóa
Cấu trúc rõ ràng làm cho nó dễ hiểu logic, và các tham số có thể được điều chỉnh dựa trên điều kiện thị trường để tối ưu hóa.
Lần nhập cảnh bị trì hoãn do đột nhập đôi
So với đột phá đơn, đột phá kép có thể gây ra một số sự chậm trễ vào, bỏ lỡ lợi nhuận xu hướng mạnh mẽ ban đầu.
Lựa chọn cấp độ chính
Chọn các mức chính phù hợp cho các sản phẩm và chu kỳ thị trường khác nhau là rất quan trọng, nếu không nó có thể tạo ra các tín hiệu sai.
Thất bại thoát
Ngay cả khi có hai lần thoát, vẫn có khả năng thất bại và rút lui nhanh chóng, gây ra tổn thất.
Lợi nhuận từ sự đảo ngược xu hướng
Các mục nhập xu hướng muộn có thể phải đối mặt với sự đảo ngược đột ngột, không thể thoát ra kịp thời thông qua dừng lỗ và phải chịu tổn thất lớn.
Tối ưu hóa tham số khó khăn
Mặc dù đơn giản, việc tìm thấy tập hợp tham số tối ưu vẫn đòi hỏi phải thử nghiệm rộng rãi, với độ khó tối ưu cao.
Thêm các chiến lược dừng lỗ
Có thể thiết lập trailing stop hoặc time stop để dừng lỗ trước khi mất mát trở nên quá lớn.
Tối ưu hóa bộ lọc
Có thể kiểm tra các thông số kích thước đầu ngược khác nhau hoặc các phương pháp lọc khác.
Mức chìa khóa động
Làm cho các mức chính thay đổi năng động với sự thay đổi của thị trường thay vì các mức tĩnh.
Tối ưu hóa tham số đa sản phẩm
Sử dụng máy học để tối ưu hóa các bộ tham số tốt nhất cho các sản phẩm khác nhau.
Thêm xác nhận âm lượng
Tích hợp xác nhận âm lượng để tránh tín hiệu đột phá sai mà không có âm lượng.
Nhìn chung, đây là một chiến lược theo xu hướng đơn giản và thực tế. Bằng cách phân tích hai khung thời gian, nó đi vào sự phù hợp hướng trung hạn đến dài hạn để lọc tiếng ồn hiệu quả. Các tín hiệu rõ ràng và dễ hiểu, với các thiết lập tham số trực quan. Nhưng nó cũng có các vấn đề như nhập nhầm thời gian, khó chọn các mức chính. Tóm lại, chiến lược này hoạt động tốt hơn như một công cụ xác nhận xu hướng để kết hợp với các yếu tố khác, nhưng vẫn có nhiều chỗ để tối ưu hóa như một hệ thống giao dịch độc lập.
/*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()