
Chiến lược phá vỡ nhiều khung thời gian tạo ra tín hiệu giao dịch đáng tin cậy hơn bằng cách kết hợp các tín hiệu phá vỡ giá trên hai khung thời gian khác nhau. Chiến lược này đồng thời tính toán tín hiệu phá vỡ giá trên các khung thời gian ngắn hơn như 1 giờ, 2 giờ, 3 giờ và khung thời gian dài hơn như 4 giờ, đường mặt trời. Khi tín hiệu trên hai khung thời gian đồng bộ, sẽ tạo ra tín hiệu mua hoặc bán, giao dịch theo hướng tương ứng.
Lý luận cốt lõi của chiến lược này là tính toán các tín hiệu phá vỡ giá trên hai khung thời gian khác nhau, sau đó thực hiện bộ lọc phù hợp. Cụ thể, chiến lược sẽ tính toán liệu giá có phá vỡ mức chỉ định trên một khung thời gian ngắn hơn (ví dụ như đường 1 giờ) và tương ứng tính toán liệu giá có phá vỡ mức chỉ định trên một khung thời gian dài hơn (ví dụ như đường 4 giờ). Chỉ khi các tín hiệu phá vỡ trên hai khung thời gian phù hợp, tức là khi giá trên cả hai khung thời gian đều phá vỡ hoặc giảm mức chỉ định, chiến lược sẽ tạo ra tín hiệu giao dịch.
Điều kiện tạo ra tín hiệu mua là giá đóng cửa hoặc giá thấp nhất trên khung thời gian ngắn và khung thời gian dài đều vượt qua mức giá tương ứng. Điều kiện tạo ra tín hiệu bán là giá đóng cửa hoặc giá cao nhất trên khung thời gian ngắn và khung thời gian dài đều vượt qua mức giá tương ứng.
Lợi thế lớn nhất của chiến lược này là tín hiệu giao dịch của nó có độ tin cậy cao. Bằng cách yêu cầu giá phá vỡ mức tương ứng trên cả hai khung thời gian, một số tiếng ồn có thể được loại bỏ một cách hiệu quả và tránh các giao dịch sai. Ngoài ra, các tín hiệu phá vỡ trên các khung thời gian khác nhau có thể xác minh lẫn nhau, làm cho cơ hội giao dịch hiệu quả hơn. Ngoài ra, chiến lược cung cấp một sự linh hoạt, cho phép chọn hai khung thời gian được sử dụng kết hợp, và nguồn dữ liệu, người dùng có thể điều chỉnh theo nhu cầu của mình.
Rủi ro chính của chiến lược này là trong giai đoạn Zeit thị trường yên tĩnh, có thể xảy ra giá trên cả hai khung thời gian sẽ không có đột phá. Khi đó, chiến lược sẽ không tạo ra bất kỳ tín hiệu giao dịch nào và có thể bỏ lỡ cơ hội giao dịch. Ngoài ra, giữa hai khung thời gian cũng có một khoảng thời gian trễ, có thể dẫn đến hiệu quả của tín hiệu. Ngoài ra, chiến lược không có logic dừng lỗ, có rủi ro lớn.
Chiến lược này có thể được tối ưu hóa theo một số khía cạnh: 1) tăng logic dừng lỗ để kiểm soát rủi ro; 2) tối ưu hóa sự kết hợp của khung thời gian để tăng hiệu quả giao dịch; 3) tăng nhiều khung thời gian để kết hợp, làm cho tín hiệu giao dịch nghiêm ngặt hơn; 4) lọc kết hợp với các chỉ số khác, cải thiện chất lượng tín hiệu; 5) phát triển cơ chế Exiting, kiểm soát lợi nhuận tốt hơn.
Chiến lược phá vỡ nhiều khung thời gian là một chiến lược theo dõi xu hướng đáng tin cậy hơn bằng cách so sánh các bước đột phá giá trên hai khung thời gian, cải thiện chất lượng tín hiệu. Tuy nhiên, cũng có một số thiếu sót, có thể được tối ưu hóa liên tục để trở thành một chiến lược giao dịch định lượng ổn định và đáng tin cậy.
/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-28 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//Noro
//2018
//@version=3
strategy(title = "Noro's Levels Strategy v1.1", shorttitle = "Levels str 1.1", 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, %")
tf1 = input('W', title = "timeframe 1")
tf2 = input('D', title = "timeframe 2")
src = input(ohlc4, "Source")
ap = input(true, defval = true, title = "use saw filter")
cf = input(true, defval = true, title = "гыу color filter")
showlines = input(true, defval = true, title = "Show lines")
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")
//Levels
level1 = request.security(syminfo.tickerid, tf1, src)
level2 = request.security(syminfo.tickerid, tf2, src)
col = showlines ? silver : na
p1 = plot(level1, linewidth = 3, color = col, title = "Level 1")
p2 = plot(level2, linewidth = 3, color = col, title = "Level 2")
//Signals
up1 = close > level1 and ap == false ? true : low > level1 ? true : false
dn1 = close < level1 and ap == false ? true : high < level1 ? 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
size = strategy.position_size
lot = 0.0
lot := size != 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()