Chiến lược nhìn lại trung tâm cao nhất / thấp nhất

Tác giả:ChaoZhang, Ngày: 2023-12-28 15:42:10
Tags:

img

Tổng quan

Chiến lược Highest/Lowest Center Lookback là một chiến lược theo xu hướng. Ý tưởng chính của nó là tính toán giá trung bình của giá cao nhất và thấp nhất trong một khoảng thời gian nhất định trong quá khứ như là giá chuẩn, và sau đó tính toán vùng vào và vùng ra dựa trên giá chuẩn này kết hợp với biến động. Khi giá bước vào vùng vào, mua dài; khi giá bước vào vùng ra, đóng vị trí.

Chiến lược logic

Chiến lược được thực hiện chủ yếu thông qua các bước sau:

  1. Tính toán giá cao nhất h và giá thấp nhất l trong các khoảng thời gian lookback_length trước đây và làm mịn chúng với EMA
  2. Tính toán giá giữa của h và l như giá trung tâm
  3. Tính toán volatility vola dựa trên ATR và ATR multiplier
  4. Tính toán vùng vào phía trên và vùng ra phía dưới dựa trên trung tâm và vola
  5. Khi giá phá vỡ giá trên trên, đi dài; khi giá phá vỡ dưới thấp hơn, đóng vị trí

Bằng cách này, nó có thể theo dõi xu hướng trong thời gian khi giá bước vào trạng thái xu hướng; đồng thời, rủi ro có thể được kiểm soát thông qua biến động.

Phân tích lợi thế

Chiến lược này có những lợi thế sau:

  1. Có thể theo dõi hiệu quả xu hướng và nắm bắt thay đổi giá theo thời gian
  2. Sử dụng giá trung bình của giá cao nhất và giá thấp nhất có thể làm giảm xác suất phá vỡ sai
  3. Sự biến động có thể được điều chỉnh tự động để kiểm soát rủi ro
  4. Thời gian giữ vị trí ngắn, cho phép các cơ hội giao dịch thường xuyên hơn
  5. Dễ thực hiện và dễ hiểu và tối ưu hóa

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Nhiều giao dịch không cần thiết có thể xảy ra trên các thị trường giới hạn phạm vi
  2. Các thiết lập của kích thước ATR và nhân sẽ ảnh hưởng đến hiệu suất chiến lược, đòi hỏi phải kiểm tra cẩn thận và tối ưu hóa
  3. Pullback sau khi phá vỡ giá trung bình có thể gây ra dừng lỗ
  4. Nếu tốc độ đảo ngược xu hướng quá nhanh, nó sẽ dẫn đến tổn thất lớn hơn

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

  1. Điều chỉnh các thông số ATR để giảm biến động và lọc whipsaws
  2. Thêm bộ lọc để tránh giao dịch không cần thiết
  3. Sử dụng stop loss di chuyển để khóa lợi nhuận
  4. Kết hợp các chỉ số xu hướng để đánh giá sự khởi đầu và kết thúc xu hướng thực sự

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

Chiến lược cũng có chỗ cho việc tối ưu hóa thêm:

  1. Hiệu quả của các tham số thử nghiệm trên các thị trường và khung thời gian khác nhau
  2. Tự động tối ưu hóa các tham số bằng các thuật toán học máy
  3. Tích hợp nhiều chỉ số hơn để đánh giá sự khởi đầu và kết thúc xu hướng
  4. Xem xét điều chỉnh động kích thước vị trí
  5. Bao gồm các chỉ số cảm xúc để tránh thiên vị từ cảm xúc cực đoan

Thông qua các tối ưu hóa này, có thể mong đợi sự cải thiện hơn nữa về sự ổn định chiến lược và lợi nhuận.

Kết luận

Chiến lược Highest/Lowest Center Lookback là một chiến lược theo xu hướng đơn giản và thực tế. Nó có thể nắm bắt sự thay đổi giá theo thời gian, theo dõi xu hướng, trong khi kiểm soát rủi ro thông qua biến động. Chiến lược dễ thực hiện, phù hợp cho người mới bắt đầu giao dịch định lượng để học và thực hành. Bằng cách tối ưu hóa các tham số và quy tắc, hiệu suất chiến lược có thể được cải thiện hơn nữa. Nói chung, đây là một chiến lược định lượng được khuyến cáo.


/*backtest
start: 2023-11-27 00:00:00
end: 2023-12-27 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Highest/Lowest Center Lookback Strategy", overlay=true)

lookback_length = input(200, type=input.integer, minval=1, title="Lookback Length")
smoother_length = input(5, type=input.integer, minval=1, title="Smoother Length")
atr_length = input(10, type=input.integer, minval=1, title="ATR Length")
atr_multiplier = input(1.5, type=input.float, minval=0.5, title="ATR Multiplier")

vola = atr(atr_length) * atr_multiplier
price = sma(close, 3)

l = ema(lowest(low, lookback_length), smoother_length)
h = ema(highest(high, lookback_length), smoother_length)
center = (h + l) * 0.5
upper = center + vola
lower = center - vola
trend = price > upper ? true : (price < lower ? false : na)

bull_cross = crossover(price, upper)
bear_cross = crossunder(price, lower)

strategy.entry("Buy", strategy.long, when=bull_cross)
strategy.close("Buy", when=bear_cross)

plot(h, title="High", color=color.red, transp=75, linewidth=2)
plot(l, title="Low", color=color.green, transp=75, linewidth=2)

pc = plot(center, title="Center", color=color.black, transp=25, linewidth=2)
pu = plot(upper, title="Upper", color=color.green, transp=75, linewidth=2)
pl = plot(lower, title="Lower", color=color.red, transp=75, linewidth=2)

fill(pu, pc, color=color.green, transp=85)
fill(pl, pc, color=color.red, transp=85)

bgcolor(trend == true ? color.green : (trend == false ? color.red : color.gray), transp=85)

Thêm nữa