Tài nguyên đang được tải lên... tải...

Chiến lược định lượng chuyển động trung bình chéo hai thân tàu

Tác giả:ChaoZhang, Ngày: 2024-11-29 16:53:05
Tags:HMAMAWMA

img

Tổng quan

Chiến lược này dựa trên các tín hiệu chéo của Hull Moving Average (HMA). Nó tạo ra các tín hiệu giao dịch khi hai đường HMA với các giai đoạn khác nhau giao nhau. HMA là một chỉ số trung bình di chuyển tiên tiến làm giảm sự chậm trễ thông qua sự kết hợp đặc biệt của Weighted Moving Averages (WMA), cung cấp các tín hiệu xu hướng thị trường nhanh hơn và mượt mà hơn.

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

Cốt lõi của chiến lược nằm trong việc nắm bắt các điểm đảo ngược xu hướng thị trường bằng cách sử dụng các giao thoa HMA của các giai đoạn khác nhau. Việc tính toán HMA bao gồm ba bước: đầu tiên tính WMA nửa giai đoạn, sau đó tính WMA toàn thời gian và cuối cùng tính WMA khác với thời gian bằng gốc vuông của giai đoạn ban đầu bằng cách sử dụng một sự kết hợp đặc biệt của hai WMA đầu tiên. Các tín hiệu mua được tạo ra khi HMA nhanh (thời gian mặc định 9) vượt qua trên HMA chậm (thời gian mặc định 16) và bán tín hiệu khi HMA nhanh vượt qua dưới HMA chậm.

Ưu điểm chiến lược

  1. Phản ứng tín hiệu nhanh: HMA làm giảm đáng kể sự chậm trễ của các đường trung bình động truyền thống thông qua phương pháp tính toán đặc biệt của nó, nắm bắt các thay đổi xu hướng thị trường nhanh hơn.
  2. Bộ lọc tiếng ồn: Việc xác nhận chéo giữa hai đường trung bình động có hiệu quả lọc tiếng ồn thị trường, làm giảm các tín hiệu sai.
  3. Các thông số linh hoạt: Chiến lược cho phép điều chỉnh thời gian dòng nhanh và chậm để thích nghi với môi trường thị trường khác nhau.
  4. Hình ảnh rõ ràng: Chiến lược hiển thị rõ ràng cả trung bình động và tín hiệu giao dịch trên biểu đồ để dễ dàng phân tích và tối ưu hóa.

Rủi ro chiến lược

  1. Rủi ro thị trường hỗn loạn: Sự giao thoa thường xuyên trong các thị trường bên có thể dẫn đến giao dịch quá mức và thua lỗ liên tiếp.
  2. Rủi ro chậm trễ: Mặc dù HMA có chậm trễ ít hơn so với trung bình động truyền thống, một số chậm trễ vẫn tồn tại, có khả năng thiếu các điểm đầu vào tối ưu.
  3. Độ nhạy của các tham số: Sự kết hợp các tham số khác nhau có thể dẫn đến kết quả giao dịch khác nhau đáng kể, đòi hỏi tối ưu hóa cẩn thận.
  4. Nguy cơ phá vỡ sai: Thị trường có thể hiển thị các sự phá vỡ sai, dẫn đến các tín hiệu giao dịch không chính xác.

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

  1. giới thiệu các bộ lọc xu hướng: Thêm các chỉ số ADX hoặc sức mạnh xu hướng để giao dịch chỉ trong xu hướng rõ ràng.
  2. Tối ưu hóa cơ chế dừng lỗ: Thiết kế các lỗ dừng động dựa trên ATR hoặc biến động.
  3. Thêm các điều kiện xác nhận thương mại: Bao gồm các chỉ số khối lượng và động lực như các tín hiệu xác nhận phụ trợ.
  4. Điều chỉnh tham số: Phát triển các cơ chế điều chỉnh tham số năng động dựa trên biến động thị trường.
  5. Tối ưu hóa quản lý rủi ro: Thêm kích thước vị trí và các mô-đun quản lý tiền.

Tóm lại

Đây là một chiến lược giao dịch định lượng dựa trên các giao dịch chéo HMA, cung cấp các tín hiệu giao dịch kịp thời hơn bằng cách giảm sự chậm trễ của các đường trung bình động truyền thống.


/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-28 00:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Hull Moving Average Crossover", overlay=true)


fastLength = input.int(9, "Fast HMA Length", minval=1)
slowLength = input.int(16, "Slow HMA Length", minval=1)


hma(src, length) =>
    wma1 = ta.wma(src, length / 2)
    wma2 = ta.wma(src, length)
    ta.wma(2 * wma1 - wma2, math.floor(math.sqrt(length)))


fastHMA = hma(close, fastLength)
slowHMA = hma(close, slowLength)


plot(fastHMA, color=color.blue, title="Fast HMA")
plot(slowHMA, color=color.red, title="Slow HMA")


longCondition = ta.crossover(fastHMA, slowHMA)
shortCondition = ta.crossunder(fastHMA, slowHMA)


if (longCondition)
    strategy.entry("Long", strategy.long)

if (shortCondition)
    strategy.entry("Short", strategy.short)


plotshape(longCondition, style=shape.triangleup, location=location.belowbar, color=color.green, size=size.small)
plotshape(shortCondition, style=shape.triangledown, location=location.abovebar, color=color.red, size=size.small)

Có liên quan

Thêm nữa