Chiến lược hộp trắng Robot kênh giá

Tác giả:ChaoZhang, Ngày: 2024-02-28 17:51:14
Tags:

img

Tổng quan

Chiến lược hộp trắng Robot kênh giá là một chiến lược giao dịch cơ học đơn giản dựa trên chỉ số kênh giá. Nó sử dụng giới hạn trên và dưới của kênh giá để xác định các điểm nhập và thoát. Chiến lược đi dài trên xu hướng tăng và đi ngắn trên xu hướng giảm.

Chiến lược logic

Logic cốt lõi của Chiến lược hộp trắng Robot kênh giá là:

  1. Sử dụng các hàm cao nhất và thấp nhất để tính toán mức cao nhất và thấp nhất của các thanh len gần đây, được định nghĩa là giới hạn trên và dưới của kênh giá
  2. Tính toán giá trung bình của kênh giá: (cao nhất cao nhất + thấp nhất thấp) / 2
  3. Đi dài khi giá vượt quá giới hạn trên của kênh giá
  4. Đi ngắn khi giá phá vỡ dưới giới hạn dưới của kênh giá
  5. Khóa vị trí khi giá kéo trở lại mức giá giữa kênh giá

Chiến lược cũng có một số tham số có thể cấu hình:

  • Chiều dài kênh giá len: mặc định 50 thanh
  • Hướng giao dịch: dài, ngắn có thể được cấu hình riêng biệt
  • Kích thước giao dịch: mặc định 100% vốn chủ sở hữu tài khoản
  • Stop loss: tùy chọn sử dụng giá trung bình làm stop loss
  • Thời gian giao dịch: chỉ giao dịch trong phạm vi ngày được cấu hình

Bằng cách điều chỉnh các thông số này, chiến lược có thể được điều chỉnh tốt hơn cho các sản phẩm và môi trường thị trường khác nhau.

Phân tích lợi thế

Chiến lược hộp trắng Robot kênh giá có những lợi thế sau:

  1. Logic đơn giản, dễ hiểu và thực hiện
  2. Sử dụng đầy đủ chỉ số kênh giá để xác định xu hướng và đảo ngược
  3. Các thông số có thể cấu hình cao để thích nghi tốt hơn
  4. Cơ chế dừng lỗ tích hợp để hạn chế lỗ
  5. Hỗ trợ bộ lọc thời gian để tránh tác động của các sự kiện lớn

Tóm lại, đó là một chiến lược xu hướng đơn giản nhưng thực tế, có thể đạt được kết quả tốt sau khi điều chỉnh tham số.

Phân tích rủi ro

Chiến lược hộp trắng Robot kênh giá cũng có một số rủi ro:

  1. Chỉ số kênh giá nhạy cảm với tham số len, thử nghiệm độc lập và tối ưu hóa cần thiết cho các khung thời gian và sản phẩm khác nhau
  2. Theo dõi stop loss có nguy cơ bị dừng sớm, khoảng cách stop loss cần điều chỉnh dựa trên biến động thị trường
  3. Giao dịch vô nghĩa quá mức trong thị trường giới hạn phạm vi và bên cạnh, tăng chi phí giao dịch và trượt

Để giảm những rủi ro này, tối ưu hóa cần được thực hiện trong các khía cạnh sau:

  1. Sử dụng Walk Forward Analysis để tự động tối ưu hóa các thông số
  2. Thêm vùng đệm để dừng giá lỗ để tránh bị dừng ra
  3. Thêm bộ lọc xu hướng để tránh giao dịch trên thị trường bên

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

Có chỗ cho việc tối ưu hóa hơn nữa của Chiến lược hộp trắng Robot kênh giá:

  1. Thêm đánh giá xu hướng khung thời gian cao hơn để tránh giao dịch ngược xu hướng
  2. Sử dụng chênh lệch giá giữa các sản phẩm tương quan để thiết lập các tham số và sử dụng các cơ hội điều chỉnh
  3. Thêm bộ đệm ngẫu nhiên để dừng giá lỗ để giảm nguy cơ dừng ra
  4. Điều chỉnh động tham số kênh giá len dựa trên biến động thị trường
  5. Đào tạo đại lý với các phương pháp học sâu để tối ưu hóa chiến lược cho các sản phẩm cụ thể

Các kỹ thuật tối ưu hóa này có thể giúp cải thiện thêm sự ổn định và lợi nhuận của chiến lược.

Tóm lại

Chiến lược Price Channel Robot White Box là một chiến lược theo xu hướng đơn giản nhưng thực tế. Nó xác định hướng xu hướng và điểm đảo ngược bằng cách sử dụng chỉ số kênh giá để đưa ra quyết định giao dịch. Chiến lược này dễ hiểu và thực hiện, và có thể đạt được lợi nhuận tốt sau khi điều chỉnh tham số.


/*backtest
start: 2023-02-21 00:00:00
end: 2024-02-27 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//Noro

//@version=4
strategy(title = "Robot WhiteBox Channel", shorttitle = "Robot WhiteBox Channel", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0, commission_value = 0.1)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
needstop = input(true, defval = true, title = "Stop-loss")
lotsize = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %")
len = input(50, minval = 1, title = "Price Channel Length")
showll = input(true, defval = true, title = "Show lines")
showbg = input(false, defval = false, title = "Show Background")
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")

//Price Channel
h = highest(high, len)
l = lowest(low, len)
center = (h + l) / 2

//Lines
pccol = showll ? color.black : na
slcol = showll ? color.red : na
plot(h, offset = 1, color = pccol)
plot(center, offset = 1, color = slcol)
plot(l, offset = 1, color = pccol)

//Background
size = strategy.position_size
bgcol = showbg == false ? na : size > 0 ? color.lime : size < 0 ? color.red : na
bgcolor(bgcol, transp = 70)

//Trading
truetime = time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)
lot = 0.0
lot := size != size[1] ? strategy.equity / close * lotsize / 100 : lot[1]
if h > 0
    strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = h, when = strategy.position_size <= 0 and truetime)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = l, when = strategy.position_size >= 0 and truetime)
    strategy.entry("S Stop", strategy.long, 0, stop = center, when = strategy.position_size[1] <= 0 and needstop)
    strategy.entry("L Stop", strategy.short, 0, stop = center, when = strategy.position_size[1] >= 0 and needstop)
if time > timestamp(toyear, tomonth, today, 23, 59)
    strategy.close_all()
    strategy.cancel("Long")
    strategy.cancel("Short")

Thêm nữa