Chiến lược đột phá của chỉ báo động lượng HMA


Ngày tạo: 2024-01-04 15:34:52 sửa đổi lần cuối: 2024-01-04 15:34:52
sao chép: 0 Số nhấp chuột: 805
1
tập trung vào
1621
Người theo dõi

Chiến lược đột phá của chỉ báo động lượng HMA

Chiến lược tổng quan

Chiến lược này sử dụng chỉ số HMA (Hull Moving Average) và phân tích kỹ thuật của đường K để đưa ra quyết định động lực về giá cả và hoạt động phá vỡ.

Ba, nguyên tắc chiến lược

  1. Nguyên tắc của chỉ số HMA

Chỉ số HMA được tạo ra bởi Alan Hull vào năm 2005 với mục tiêu tạo ra một moving average nhạy cảm và trơn tru.

(1) Tính trung bình Double Smoothing DMA nửa chu kỳ

(2) Tính trung bình SMA toàn chu kỳ

(3) Tính DIFF của DMA và SMA

(4) Tính trung bình chu kỳ SQRT của DIFF, để có được HMA

  1. Chiến lược giao dịch

Chiến lược sử dụng dấu hiệu đột phá lên và đột phá xuống của chỉ số HMA, kết hợp với dấu hiệu đột phá của phần thực thể đường K, tạo ra tín hiệu mua và bán. Đồng thời thiết lập nguyên tắc dừng lỗ và dừng lại, giám sát lợi nhuận và lỗ hổng trong thời gian thực, để bảo vệ lợi nhuận.

Bốn, lợi thế chiến lược

  1. Tính năng hội tụ của chỉ số HMA làm cho nó rất nhạy cảm với sự thay đổi giá cả, đồng thời giữ cho đường trung bình trơn tru, tránh tín hiệu sai.

  2. Cơ chế phá vỡ kép, tăng độ tin cậy của tín hiệu, tránh bị chặn.

  3. Động thái dừng lỗ và bảo vệ lợi nhuận, để kiểm soát rủi ro và lợi nhuận tối ưu.

  4. Giao dịch hoàn toàn tự động, hoạt động đơn giản.

5: Rủi ro chiến lược

  1. Khi thị trường biến động mạnh, có nhiều khả năng dừng lỗ sẽ được thực hiện.

  2. Tỷ lệ giao dịch cao hơn, chi phí xử lý cao hơn.

  3. Thiết lập tham số không đúng có thể tạo ra một số lượng lớn các tín hiệu giả.

Giải pháp

  1. Tối ưu hóa điều kiện dừng lỗ, thiết lập rút lui hợp lý.

  2. Điều chỉnh tần suất giao dịch để giảm tác động của phí.

  3. Tối ưu hóa thử nghiệm cho chu kỳ HMA và điều kiện đột phá, xác định tham số tối ưu.

Sáng kiến tối ưu hóa

  1. Giao dịch với các chỉ số xu hướng, tránh giao dịch ngược.

  2. Tăng khả năng tự động chuyển đổi nguồn dữ liệu để thích ứng với nhiều môi trường thị trường hơn.

  3. Thêm các thuật toán học máy để tối ưu hóa các tham số tự động.

  4. Thêm triển khai trên máy chủ, thực hiện xác thực thực tế 24 giờ.

VII. Kết luận

Chiến lược phá vỡ chỉ số động lực HMA sử dụng lợi thế độc đáo của đường trung bình di chuyển Hull để nắm bắt chính xác động lực thị trường. Cơ chế lọc phá vỡ kép cải thiện chất lượng tín hiệu, dừng dừng động bảo đảm hiệu quả. Chiến lược này đơn giản để sử dụng, hiệu quả rõ ràng, là một công cụ giao dịch định lượng rất thực tế, đáng để quảng bá.

Mã nguồn chiến lược
/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//SeaSide420
strategy("Hull Moving Average and Daily Candle Crossover", shorttitle="Hull&D", overlay=true, default_qty_type=strategy.percent_of_equity, max_bars_back=720, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
// settings----------------------
q=input(title="HullMA",defval=5)
SL = input(defval=-10000.00, title="Stop Loss in $", type=float, step=1)
TP = input(defval=500.00, title="Target Point in $", type=float, step=1)
price=input(ohlc4,title="Price data")
ot=1
p=price[1]
// Daily candle crossover---------
dt = 0.0010
Daily=(p-p[1])/p[1]
//--------------------------------
// Hull MA's----------------------
n2ma=2*wma(p,round(q/2))
nma=wma(p,q)
diff=n2ma-nma
sqn=round(sqrt(q))
n2ma1=2*wma(p[1],round(q/2))
nma1=wma(p[1], q)
diff1=n2ma1-nma1
sqn1=round(sqrt(q))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
//---------------------------------
// Plotting------------------------
z1e=n1>n2?green:black
z2e=n1>n2?black:red
z3e=n1>n2?green:red
n1e=plot(n1, title="HMA1", color=z1e, linewidth=2, offset=2)
n2e=plot(n2, title="HMA2", color=z2e, linewidth=2, offset=2)
fill(n1e, n2e, color=z3e, transp=80)
// Order controls-------------------
closelong = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] or strategy.openprofit<SL or strategy.openprofit>TP
if (closelong)
    strategy.close("Long")
closeshort = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] or strategy.openprofit<SL or strategy.openprofit>TP
if (closeshort)
    strategy.close("Short")
longCondition = n1>n2 and n1[1]>n2[1] and n1[2]>n2[2] and strategy.opentrades<ot and Daily>dt and close>n1
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and n1[1]<n2[1] and n1[2]<n2[2] and strategy.opentrades<ot and Daily<dt and close<n1 
if (shortCondition)
    strategy.entry("Short",strategy.short)