Chiến lược đột phá nhiều khung thời gian

Tác giả:ChaoZhang, Ngày: 2023-12-29 16:17:56
Tags:

img

Tổng quan

Chiến lược đột phá nhiều khung thời gian tạo ra các 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 đột phá giá từ hai khung thời gian khác nhau. Chiến lược tính toán các tín hiệu đột phá giá đồng thời trên các khung thời gian ngắn hơn như 1 giờ, 2 giờ, 3 giờ, v.v. và các khung thời gian dài hơn như 4 giờ, hàng ngày, v.v. Nó sẽ chỉ tạo ra tín hiệu mua hoặc bán khi các tín hiệu từ hai khung thời gian ở cùng một hướng để thực hiện các giao dịch tương ứng.

Chiến lược logic

Lý thuyết cốt lõi của chiến lược này là tính toán tín hiệu đột phá giá trên hai khung thời gian khác nhau tương ứng và sau đó khớp chúng để lọc. Cụ thể, chiến lược sẽ kiểm tra xem giá có phá vỡ mức nhất định trong một khung thời gian ngắn hơn (ví dụ 1 giờ) và cũng nếu giá phá vỡ mức tương ứng trong một khung thời gian dài hơn (ví dụ 4 giờ). Chỉ khi các tín hiệu đột phá từ hai khung thời gian ở cùng một hướng, tức là giá trên cả hai khung thời gian phá vỡ lên hoặc xuống, chiến lược sẽ tạo ra các tín hiệu giao dịch.

Điều kiện cho tín hiệu mua là giá đóng hoặc giá thấp trên cả khung thời gian ngắn và dài vượt quá mức giá của chúng. Điều kiện cho tín hiệu bán là giá đóng hoặc giá cao trên cả hai khung thời gian vượt dưới mức của chúng. Bằng cách khớp tín hiệu trên các khung thời gian theo cách này, chiến lược có thể lọc ra một số tín hiệu sai và làm cho tín hiệu đáng tin cậy hơn.

Phân tích lợi thế

Lợi thế lớn nhất của chiến lược này là độ tin cậy cao hơn của các tín hiệu giao dịch của nó. Bằng cách yêu cầu giá đột phá trên các mức trong hai khung thời gian, nó có thể lọc hiệu quả một số tiếng ồn và tránh giao dịch xấu. Ngoài ra, các tín hiệu đột phá từ các khung thời gian khác nhau có thể xác nhận lẫn nhau, làm cho các cơ hội giao dịch hiệu quả hơn. Hơn nữa, chiến lược cung cấp một số tính linh hoạt bằng cách cho phép người dùng chọn khung thời gian để kết hợp và nguồn dữ liệu vv theo nhu cầu của riêng họ.

Phân tích rủi ro

Rủi ro chính của chiến lược này là trong thời gian bình tĩnh của thị trường Zeitgeists, giá có thể không bùng nổ trong bất kỳ khung thời gian nào. Trong trường hợp đó, 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. Ngoài ra, có một số khoảng thời gian giữa hai khung thời gian có thể dẫn đến tín hiệu không hiệu quả. Hơn nữa, chiến lược không bao gồm logic dừng lỗ và có rủi ro lớn hơn.

Hướng dẫn tối ưu hóa

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau: 1) Thêm logic dừng lỗ để kiểm soát rủi ro; 2) Tối ưu hóa sự kết hợp khung thời gian để cải thiện hiệu quả; 3) Thêm nhiều khung thời gian cho sự kết hợp để làm cho tín hiệu giao dịch nghiêm ngặt hơn; 4) Kết hợp các chỉ số khác để lọc để cải thiện chất lượng tín hiệu; 5) Phát triển các cơ chế thoát để kiểm soát lợi nhuận tốt hơn, v.v.

Kết luận

Chiến lược đột phá nhiều khung thời gian cải thiện chất lượng tín hiệu bằng cách so sánh các đột phá giá qua các khung thời gian và là một chiến lược theo xu hướng tương đối đáng tin cậy. Nhưng nó cũng có một số nhược điểm. Thông qua tối ưu hóa liên tục, nó có thể 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()

Thêm nữa