Chiến lược giá đột phá kép theo trục thời gian


Ngày tạo: 2023-11-15 17:27:36 sửa đổi lần cuối: 2023-11-15 17:27:36
sao chép: 0 Số nhấp chuột: 424
1
tập trung vào
1237
Người theo dõi

Chiến lược giá đột phá kép theo trục thời gian

Tổng quan

Đâ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.

Nguyên tắc chiến lược

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:

  1. Khi giá phá vỡ cấp ((level) lên trên tf, ghi up1=true
  2. Khi giá phá vỡ mức xuống trên trục thời gian tf, ghi dn1 = true
  3. Khi giá phá vỡ cấp ((level2) lên trên tf2 thì ghi up2=true
  4. Khi giá phá vỡ mức xuống trên trục thời gian tf2, ghi dn2 = true

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.

Phân tích lợi thế chiến lược

  1. Xuyên qua các điểm hỗ trợ hoặc kháng cự quan trọng để nắm bắt xu hướng đường dài

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.

  1. Xác nhận kép giảm tín hiệu sai

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.

  1. Bộ lọc ngược và màu K

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.

  1. Thiết lập tham số đơn giản

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.

  1. Dễ hiểu và tối ưu hóa

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.

Phân tích rủi ro chiến lược

  1. Sự đột phá kép đã gây ra sự chậm trễ trong việc nhập họ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.

  1. Chọn vị trí kháng cự hỗ trợ quan trọng

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.

  1. Sự đột phá thất bại

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.

  1. Xu hướng giảm

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 đó.

  1. Khó khăn trong việc tối ưu hóa tham số

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ó.

Hướng tối ưu hóa chiến lược

  1. Tăng chiến lược dừng lỗ

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.

  1. Tối ưu hóa điều kiện lọc

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.

  1. Động lực giá quan trọng

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.

  1. Tối ưu hóa tham số đa giống

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.

  1. Xác nhận tăng giá

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.

Tóm tắt

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.

Mã nguồn chiến lược
/*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()