Chiến lược theo dõi xu hướng dải Bollinger trung bình động kép


Ngày tạo: 2023-12-22 14:54:20 sửa đổi lần cuối: 2023-12-22 14:54:20
sao chép: 1 Số nhấp chuột: 619
1
tập trung vào
1621
Người theo dõi

Chiến lược theo dõi xu hướng dải Bollinger trung bình động kép

Tổng quan

Chiến lược này là một chiến lược giao dịch định lượng sử dụng sự kết hợp của các đường Brin và đường trung bình để xác định xu hướng và tham gia. Nó kết hợp khả năng nhận biết xu hướng của các đường Brin và hiệu ứng sóng của đường trung bình di chuyển, có thể xác định hiệu quả xu hướng của thị trường và tham gia vào xu hướng.

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

  1. Sử dụng giá cao nhất và giá thấp nhất để tính toán đường băng Brin để đánh giá xu hướng thị trường

    • Highest và lowest tính toán kênh lên xuống
    • Trục trung bình của đường dẫn là giá trung bình của giá cao nhất và giá thấp nhất
    • Xác định vị trí của giá trên kênh để xác định hướng xu hướng
  2. Tính toán kích thước của thực thể ánh sáng mặt trời, đánh giá tín hiệu dừng và đảo ngược

    • Giá trị tuyệt đối của giá đóng cửa trừ giá mở cửa của thực thể đường dương
    • Tính giá trị trung bình của thực thể mặt trời trong chu kỳ N, so với kích thước thực thể mặt trời hiện tại, để đánh giá dừng lỗ và đảo ngược
  3. Sau khi xác nhận hướng xu hướng, nhập vào hướng lối đi

    • Xu hướng tăng lên khi nằm ở gần đường ray dưới
    • Hình ảnh của một con tàu đang đi xuống
  4. Sử dụng trung bình di chuyển để lọc các tín hiệu giả

    • Tính trung bình di chuyển của giá đóng cửa cho N chu kỳ
    • Chỉ phát tín hiệu giao dịch khi giá vượt mức trung bình

Lợi thế chiến lược

  1. Phương pháp này có tính hệ thống mạnh mẽ, kết hợp với các xu hướng đánh giá của đường dây Brin và đường trung bình di chuyển.

Brinband có thể xác định rõ ràng các kênh giá và hướng xu hướng, trung bình di chuyển để lọc sóng, kết hợp cả hai có thể xác định xu hướng hiệu quả, tránh ảnh hưởng của sự kiện bất ngờ thị trường, đảm bảo sự ổn định của hệ thống.

  1. Sử dụng kích thước của thực thể mặt trời để ngăn chặn thiệt hại và kiểm soát rủi ro hiệu quả

Bằng cách tính toán trung bình kích thước của thực thể mặt trời trong một chu kỳ nhất định, so sánh với kích thước của thực thể chu kỳ hiện tại, có thể xác định rõ ràng xu hướng đảo ngược, dừng lỗ và giảm vị thế, do đó kiểm soát rủi ro chiến lược hiệu quả.

  1. Quy tắc nhập và dừng lỗ định lượng rõ ràng

Chiến lược tham gia với điều kiện tương tác giữa đường trung bình di chuyển và hướng đi, và sử dụng quy tắc kích thước thực thể mặt trời để dừng lỗ, làm cho quy tắc tham gia và dừng lỗ của toàn bộ hệ thống được hệ thống hóa rất rõ ràng.

Phân tích rủi ro

  1. Rủi ro mất mát tiềm ẩn trong tình huống chấn động

Trong tình huống biến động, giá có thể liên tục chạm đường xuống và gây ra tổn thất nhỏ lặp lại. Tại thời điểm này, nên giảm quy mô vị trí để giảm tổn thất đơn lẻ.

  1. Rủi ro bị trúng quá nhiều biến động khi quá gần điểm dừng lỗ

Trong một xu hướng mạnh mẽ, một sự điều chỉnh ngắn hạn của giá có thể gây ra lệnh dừng lỗ, tại thời điểm này, mức dừng lỗ nên được nới lỏng thích hợp để theo dõi xu hướng.

  1. Các tham số không chính xác có thể gây ra tín hiệu sai

Thiết lập tham số của đường trung bình di chuyển và dải Brin không phù hợp, có thể xảy ra các trường hợp nhận dạng tín hiệu sai. Các tham số nên được tối ưu hóa thích hợp để tín hiệu ổn định và đáng tin cậy.

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

  1. Tối ưu hóa tham số chu kỳ trung bình di chuyển

Điều chỉnh các tham số trung bình di chuyển, giảm độ mịn, để phát hiện nhanh hơn các thay đổi xu hướng.

  1. Thử nghiệm hiệu quả của các quy tắc dừng khác nhau

Thử các quy tắc dừng khác nhau, chẳng hạn như dừng theo dõi, dừng ATR, và chọn cách dừng tốt nhất.

  1. Thêm hỗ trợ mô hình học máy

Mô hình đào tạo dựa trên một lượng lớn dữ liệu lịch sử, hỗ trợ đánh giá xu hướng và phát tín hiệu giao dịch.

Tóm tắt

Chiến lược này xem xét toàn diện về phán đoán xu hướng và kiểm soát rủi ro, sử dụng các kênh băng tần Brin và đường trung bình di chuyển để xác định xu hướng, đồng thời dừng lỗ bằng kích thước thực thể mặt trời. Chiến lược có hệ thống mạnh mẽ, quy tắc định lượng rõ ràng, có thể kiểm soát rủi ro hiệu quả để có được lợi nhuận vượt quá.

Mã nguồn chiến lược
/*backtest
start: 2023-12-14 00:00:00
end: 2023-12-21 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/


//@version=2
strategy("Noro's Bands Scalper Strategy v1.3", shorttitle = "Scalper str 1.3", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

//Settings
needlong = input(true, defval = true, title = "Long")
needshort = input(true, defval = true, title = "Short")
takepercent = input(0, defval = 0, minval = 0, maxval = 1000, title = "take, %")
needct = input(false, defval = false, title = "Counter-trend entry")
len = input(20, defval = 20, minval = 2, maxval = 200, title = "Period")
needbb = input(true, defval = true, title = "Show Bands")
needbg = input(true, defval = true, title = "Show Background")
src = close

//PriceChannel 1
lasthigh = highest(src, len)
lastlow = lowest(src, len)
center = (lasthigh + lastlow) / 2

//Distance
dist = abs(src - center)
distsma = sma(dist, len)
hd = center + distsma
ld = center - distsma
hd1 = center + distsma / 2
ld1 = center - distsma / 2

//Trend
trend = close < ld and high < center ? -1 : close > hd and low > center ? 1 : trend[1]

//Lines
colo = needbb == false ? na : black
plot(hd, color = colo, linewidth = 1, transp = 0, title = "High band")
plot(center, color = colo, linewidth = 1, transp = 0, title = "center")
plot(ld, color = colo, linewidth = 1, transp = 0, title = "Low band")

//Background
col = needbg == false ? na : trend == 1 ? lime : red
bgcolor(col, transp = 80)

//Body
body = abs(close - open)
smabody = ema(body, 30)
candle = high - low

//Engulfing
min = min(open, close)
max = max(open, close)
bar = close > open ? 1 : close < open ? -1 : 0
upeng = bar == 1 and bar[1] == -1 and min >= min[1] and max <= max[1] ? 1 : 0
dneng = bar == -1 and bar[1] == 1 and min >= min[1] and max <= max[1] ? 1 : 0

//Signals
up7 = trend == 1 and ((bar == -1 and bar[1] == -1) or (body > smabody and close < open)) ? 1 : 0
dn7 = trend == 1 and bar == 1 and bar[1] == 1 and close > strategy.position_avg_price * (100 + takepercent) / 100 ? 1 : 0
up8 = trend == -1 and bar == -1 and bar[1] == -1 and close < strategy.position_avg_price * (100 - takepercent) / 100 ? 1 : 0
dn8 = trend == -1 and ((bar == 1 and bar[1] == 1) or (body > smabody and close > open)) ? 1 : 0

if up7 == 1 or up8 == 1 
    strategy.entry("Long", strategy.long, needlong == false ? 0 : trend == -1 and needct == false ? 0 : na)

if dn7 == 1 or dn8 == 1
    strategy.entry("Short", strategy.short, needshort == false ? 0 : trend == 1 and needct == false ? 0 : na)