Chiến lược giao dịch dao động trung bình động Hull


Ngày tạo: 2023-10-07 15:24:31 sửa đổi lần cuối: 2023-10-07 15:24:31
sao chép: 0 Số nhấp chuột: 657
1
tập trung vào
1166
Người theo dõi

Tổng quan

Chiến lược này là chiến lược giao dịch đường ngắn dựa trên chỉ số trung bình di chuyển của Hull. Chiến lược sử dụng đường trung bình di chuyển của Hull để tạo ra tín hiệu mua và bán, thuộc chiến lược theo dõi xu hướng.

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

Chiến lược này chủ yếu dựa trên các chỉ số trung bình di chuyển của Hull, trung bình di chuyển của Hull bao gồm hai trung bình di chuyển. Đầu tiên, tính toán trung bình di chuyển trung bình của giá nma, chu kỳ là hullperiod.

Để lọc ra một số tín hiệu giả, chiến lược cũng giới thiệu đường Hull ((Hull_Line). Hull là kết quả của sự hồi quy tuyến tính tính toán chênh lệch giữa nma và n2ma. Khi giá lệch khỏi đường Hull, chiến lược sẽ bỏ qua tín hiệu mua và bán.

Các quy tắc chiến lược cụ thể như sau:

  1. Tính toán nma, chu kỳ hullperiod

  2. Tính n2ma, chu kỳ là một nửa chu kỳ nma

  3. Tính phân biệt n2ma và nma

  4. Hull_Line là đường trung bình di chuyển của khoảng thời gian Hull với khoảng thời gian sqrt{\displaystyle \sqrt{\mathrm {hull} }

  5. Một tín hiệu mua được phát ra khi giá vượt qua đường Hull

  6. Gửi tín hiệu bán khi giá vượt Hull

  7. Nếu giá lệch so với đường Hull, hãy bỏ qua tín hiệu

  8. Bắt đầu với một tỷ lệ nhất định, dừng lỗ bằng cách dừng lỗ ngoài sân

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Dựa trên đường trung bình di chuyển của Hull, nó có thể nhanh chóng nắm bắt xu hướng, và xu hướng được xác định bởi sự thay đổi.

  2. Sử dụng dây Hull để lọc tín hiệu giả và cải thiện chất lượng tín hiệu

  3. Tỷ lệ thu hồi và lợi nhuận tốt, phù hợp cho hoạt động ngắn hạn

  4. Điều chỉnh tham số linh hoạt, thích ứng với các môi trường thị trường khác nhau

  5. Sử dụng Reverse Stop để kiểm soát rủi ro

  6. Kết hợp tính theo mùa, tránh rủi ro hệ thống trong một khoảng thời gian nhất định

Phân tích rủi ro

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

  1. Chiến lược theo dõi xu hướng, không thể giao dịch suốt ngày

  2. Khi xu hướng thay đổi, sẽ có những tổn thất lớn hơn

  3. Hệ thống trung bình di động bị chậm trễ, không thể nắm bắt được các điểm thay đổi kịp thời

  4. Giao dịch qua đường ngắn thường xuyên và phí giao dịch cao

  5. Chế độ tham số không đúng có thể dẫn đến thu nhập giảm trong thị trường chấn động

Những nguy cơ này có thể được kiểm soát bằng các biện pháp sau:

  1. Sử dụng chiến lược dừng lỗ của Martingale để kiểm soát lỗ đơn lẻ

  2. Tối ưu hóa tham số, kiểm tra sức mạnh của tham số trong các môi trường thị trường khác nhau

  3. Kết hợp các chỉ số đánh giá xu hướng để tránh sự suy giảm theo dõi trong sự đảo ngược

  4. Tăng thời gian nắm giữ và giảm tần suất giao dịch

Hướng tối ưu hóa

Chiến lược này cũng có thể được tối ưu hóa theo các khía cạnh sau:

  1. Kết hợp các chỉ số động lực, xác định điểm bắt đầu của xu hướng, bố trí tốt hơn để tham gia

  2. Thêm mô hình học máy để hỗ trợ định hướng và cường độ của xu hướng

  3. Sử dụng thiết lập tham số thích ứng, điều chỉnh tham số theo thị trường thời gian thực

  4. Thiết lập hệ thống Hull với nhiều chu kỳ thời gian và các vị trí khác nhau trong các chu kỳ khác nhau

  5. Kết hợp với chỉ số năng lượng giao dịch, tránh phá vỡ giả mạo với năng lượng không đủ

  6. Thêm mô-đun quản lý vị trí dựa trên biến động, điều chỉnh vị trí theo biến động

Tóm tắt

Chiến lược giao dịch biến động trung bình di chuyển của Hull nói chung là một chiến lược theo dõi đường ngắn rất thực tế. Nó sử dụng hệ thống trung bình di chuyển của Hull để xác định hướng xu hướng để đạt được sự tiến bộ. Nó có chất lượng tín hiệu và tính linh hoạt của các tham số cao hơn so với hệ thống trung bình di chuyển đơn lẻ.

Mã nguồn chiến lược
/*backtest
start: 2023-09-06 00:00:00
end: 2023-10-06 00:00:00
period: 6h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//                               Hull Moving Average Swing Trader by SEASIDE420
strategy("Hull Moving Average Swing Trader", shorttitle="HMA_Swing_Trader", default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
hullperiod = input(title="HullMA Period", type=input.integer, defval=210, minval=1)
price = input(open, type=input.source, title="Price data")
FromMonth = input(defval=1, title="From Month", minval=1, maxval=12)
FromDay = input(defval=1, title="From Day", minval=1, maxval=31)
FromYear = input(defval=2020, title="From Year", minval=2017)
ToMonth = input(defval=1, title="To Month", minval=1, maxval=12)
ToDay = input(defval=1, title="To Day", minval=1, maxval=31)
ToYear = input(defval=9999, title="To Year", minval=2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() => true
n2ma = 2 * wma(price, round(hullperiod / 2))
nma = wma(price, hullperiod)
diff = n2ma - nma
sqn = round(sqrt(hullperiod))
n2ma1 = 2 * wma(price[1], round(hullperiod / 2))
nma1 = wma(price[1], hullperiod)
diff1 = n2ma1 - nma1
n1 = wma(diff, sqn)
n2 = wma(diff1, sqn)
Hull_Line = n1 / n1 * n2
Hull_retracted = if n1 > n2
    Hull_retracted = Hull_Line - 2
else
    Hull_retracted = Hull_Line + 2
c1 = Hull_retracted + n1 - price
c2 = Hull_retracted - n2 + price
c4 = n1 > n2 ? color.green : color.red
c2p = plot(c2, color=color.black, linewidth=1)
c3p = plot(price, color=color.black, linewidth=1)
fill(c3p, c2p, color=c4, transp=75)
//plot(cross(c1, c2) ? c1 : na, style=plot.style_circles, color=c4, linewidth=4)
if price < c2
    strategy.close("BUY", when=window())
if price > c2
    strategy.close("SELL", when=window())
if price > c2 and price[1] > c1
    strategy.entry("BUY", strategy.long, when=window())
if price < c1 and price[1] < c2
    strategy.entry("SELL", strategy.short, when=window())  //        /L'-, 
//                               ,'-.      `   ````                 /  L '-, 
//     .                    _,--dMMMM\        `   ` ` '`..         /       '-, 
//     :             _,--,  )MMMMMMMMM),.      `     ,<>          /_      '-,' 
//     ;     ___,--. \MM(    `-'   )M//MM\          ,',.;      .-'* ;     .' 
//     |     \MMMMMM) \MM\       ,dM//MMM/     ___ < ,; `.      )`--'    / 
//     |      \MM()M   MMM)__   /MM(/MP'  ___, \  \ `  `. `.   /__,    ,' 
//     |       MMMM/   MMMMMM( /MMMMP'__, \     | /      `. `-,_\     / 
//     |       MM     /MMM---' `--'_ \     |-'  |/         `./ .\----.___ 
//     |      /MM'   `--' __,-  \""   |-'  |_,               `.__) . .F. )-. 
//     |     `--'       \   \    |-'  |_,     _,-/            J . . . J-'-. `-., 
//     |         __  \`. |   |   |         \    / _           |. . . . \   `-.  F 
//     |   ___  /  \  | `|   '      __  \   |  /-'            F . . . . \     '` 
//     |   \  \ \  /  |        __  /  \  |  |,-'        __,- J . . . . . \ 
//     |    | /  |/     __,-  \  ) \  /  |_,-     __,--'     |. .__.----,' 
//     |    |/    ___     \    |'.  |/      __,--'           `.-;;;;;;;;;\ 
//     |     ___  \  \     |   |  `   __,--'                  /;;;;;;;;;;;;. 
//     |     \  \  |-'\    '    __,--'                       /;;;;;;;;;;;;;;\ 
// \   |      | /  |      __,--'                             `--;;/     \;-'\ 
//  \  |      |/    __,--'                                   /  /         \  \ 
//   \ |      __,--'                                        /  /           \  \ 
//    \|__,--'                                          _,-;M-K,           ,;-;\ 
//                                                     <;;;;;;;;           '-;;;; 
//                                                                                  :D