Hệ thống điểm cân bằng xu hướng của Welles Wilder

Tác giả:ChaoZhang, Ngày: 2023-09-23 15:30:58
Tags:

Tổng quan

Đây là hệ thống điểm cân bằng xu hướng ban đầu được tạo ra bởi Welles Wilder vào năm 1978, với các quy tắc được tìm thấy trong cuốn sách của ông Các khái niệm mới trong các hệ thống giao dịch kỹ thuật. Nó xác định xu hướng với động lực và thiết lập các điểm dừng / mục tiêu theo cách có cấu trúc để hình thành một hệ thống theo xu hướng mạnh mẽ.

Chiến lược logic

Các thành phần và quy tắc chính là:

  1. Chỉ số động lực: Tính toán sự thay đổi giá trong N khoảng thời gian để xác định xu hướng.

  2. Tình trạng dài: Động lực tăng lên trong hai giai đoạn hiện tại và trước đó.

  3. Điều kiện ngắn: Động lực giảm trong hai giai đoạn hiện tại và trước đó.

  4. Stop loss: Giá trung bình ngày trước ± phạm vi ngày trước.

  5. Lấy lợi nhuận: 2 * giá trung bình ngày trước - giá thấp (dài) hoặc cao (ngắn) ngày trước.

  6. Đi ra với dừng hoặc mục tiêu sau khi vào.

Chiến lược trực tiếp sử dụng động lực để xác định xu hướng và một cách tiếp cận dừng / mục tiêu có cấu trúc để kiểm soát rủi ro và hình thành một hệ thống theo xu hướng mạnh mẽ.

Ưu điểm

So với các chiến lược theo xu hướng khác, những lợi thế chính là:

  1. Tính toán động lượng đơn giản, dễ thực hiện.

  2. Bộ lọc tiếng ồn đa giai đoạn.

  3. Hệ thống dừng/mục tiêu là vững chắc.

  4. Giới hạn lỗ cho mỗi giao dịch.

  5. Thu hút được kiểm soát, lợi nhuận được lấy ra.

  6. Dễ dàng vận hành linh hoạt.

  7. Các tham số có thể điều chỉnh cho các thị trường khác nhau.

  8. Thông minh và đơn giản.

  9. Nhìn chung ổn định và kiểm soát rủi ro tốt.

Rủi ro

Tuy nhiên, những rủi ro là:

  1. Sự chậm trễ của động lực có thể bỏ lỡ các vòng quay quan trọng.

  2. Hiệu suất phụ thuộc vào điều chỉnh tham số.

  3. Không có bộ lọc âm lượng, có nguy cơ bị mắc kẹt.

  4. Các thiết lập dừng / mục tiêu cứng nhắc, có thể thất bại trong thực tế.

  5. Thời gian kiểm tra hậu quả hạn chế, cần xác minh độ bền lâu dài.

  6. Kích thước cố định thiếu điều chỉnh năng động.

  7. Không gian tối ưu hóa hạn chế, alpha không chắc chắn.

  8. Cần phải theo dõi tỷ lệ phần thưởng / rủi ro và phù hợp đường cong.

Những cải tiến

Theo phân tích, các cải tiến có thể bao gồm:

  1. Kiểm tra các tính toán động lượng khác nhau.

  2. Thêm xác nhận âm lượng.

  3. Tối ưu hóa các thông số dừng/mục tiêu.

  4. Giới thiệu máy học cho tín hiệu động.

  5. Đánh giá độ bền trên các sản phẩm và khung thời gian.

  6. Xây dựng mô hình định kích thước vị trí động.

  7. Thiết lập giới hạn rút tiền tối đa.

  8. Tối ưu hóa các chiến lược quản lý rủi ro.

  9. Kiểm tra liên tục để tránh quá tải.

Kết luận

Tóm lại, đây là một hệ thống theo xu hướng tương đối đơn giản và trực tiếp. Nhưng tối ưu hóa liên tục và kiểm tra độ bền là chìa khóa cho bất kỳ chiến lược nào để duy trì khả năng thích nghi. Thông qua các nỗ lực có hệ thống, hiệu suất và sự ổn định của chiến lược có thể được tăng cường.


/*backtest
start: 2023-09-15 00:00:00
end: 2023-09-22 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © 2020 X-Trader.net

//@version=3
strategy("Trend Balance Point System by Welles Wilder", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, initial_capital = 10000)

MomPer = input(2, "Momentum Period")

isLong = strategy.position_size > 0
isShort = strategy.position_size < 0

longTrigger = mom(close, MomPer)[1] > mom(close, MomPer)[2] and mom(close, MomPer)[1] > mom(close, MomPer)[3]
shortTrigger = mom(close, MomPer)[1] < mom(close, MomPer)[2] and mom(close, MomPer)[1] < mom(close, MomPer)[3]

longEntry = (not isLong) and longTrigger 
shortEntry = (not isShort) and shortTrigger

longStop = valuewhen(longEntry, ((high[1]+low[1]+close[1])/3 - (high[1]-low[1])), 0)
longTP = valuewhen(longEntry, (2*(high[1]+low[1]+close[1])/3 - low[1]), 0)
shortStop = valuewhen(shortEntry, ((high[1]+low[1]+close[1])/3 + (high[1]-low[1])), 0)
shortTP = valuewhen(shortEntry, (2*(high[1]+low[1]+close[1])/3 - high[1]), 0)

strategy.entry(id = "Long", long = true, when = longEntry)
strategy.exit("Exit Long", "Long", profit = longTP, loss = longStop, when = isLong) 

strategy.entry(id = "Short", long = false, when = shortEntry)
strategy.exit("Exit Short", "Short", profit = shortTP, loss = shortStop, when = isShort) 



Thêm nữa