Xu hướng theo chiến lược dựa trên trung bình di chuyển và phạm vi thực sự

Tác giả:ChaoZhang, Ngày: 2024-01-15 15:26:08
Tags:

img

Tổng quan

Ý tưởng cốt lõi của chiến lược này là xác định hướng xu hướng thị trường bằng cách kết hợp trung bình chuyển động Hull và phạm vi thực tế trung bình (ATR), và nhập vào các vị trí sau khi hướng xu hướng được xác nhận. Cụ thể, nó tính toán sự khác biệt giữa các đường trung bình chuyển động Hull của một giai đoạn nhất định và giai đoạn trước đó. Khi sự khác biệt tăng, nó chỉ ra xu hướng tăng; khi sự khác biệt giảm, nó chỉ ra xu hướng giảm. Đồng thời, chỉ số ATR được sử dụng để xác định chiều rộng. Nó nhập vào các vị trí khi xu hướng được xác nhận và chiều rộng tiếp tục mở rộng.

Chiến lược logic

Chiến lược này chủ yếu dựa trên hai loại chỉ số: trung bình động Hull và ATR.

Trung bình di chuyển Hull là một chỉ số theo xu hướng được phát triển bởi nhà giao dịch tương lai người Mỹ Alan Hull. Tương tự như trung bình di chuyển, trung bình di chuyển Hull có độ nhạy cao hơn và có thể nắm bắt thay đổi giá và xu hướng nhanh hơn. Chiến lược đặt một tham số có thể điều chỉnh hullLength để kiểm soát thời gian của trung bình di chuyển Hull. Bằng cách tính toán sự khác biệt giữa Hull MA và các giai đoạn trước, nó xác định hướng xu hướng giá hiện tại.

ATR là viết tắt của Average True Range. Nó phản ánh mức biến động giá hàng ngày. Khi biến động tăng, ATR tăng; khi biến động giảm, ATR giảm. Chiến lược đặt các tham số như atrLength và atrSmoothing để kiểm soát tính toán ATR. Và ATR được vẽ trên biểu đồ như một tham chiếu cho các mục.

Cụ thể, chiến lược logic là:

  1. Tính toán MA Hull trong giai đoạn hiện tại (HullLength) và MA Hull trong giai đoạn trước.
  2. Tính toán sự khác biệt: hullDiff = HullMA hiện tại - HullMA trước
  3. Khi hullDiff > 0, nó chỉ ra xu hướng tăng. Khi hullDiff < 0, nó chỉ ra xu hướng giảm.
  4. Tính toán ATR (atrLength) của một khoảng thời gian như một điểm tham khảo độ phình.
  5. Khi xu hướng tăng được xác định và ATR > giá > giá của atrLength giai đoạn trước, đi dài. Khi giảm và ATR < giá < giá của atrLength giai đoạn trước, đi ngắn.
  6. Sử dụng tích cực / âm của hullDiff để xác định tín hiệu gần.

Phân tích lợi thế

Những lợi thế của chiến lược này:

  1. Kết hợp đánh giá xu hướng và chỉ số biến động, nó có thể vào các vị trí khi xu hướng giá rõ ràng và biến động tăng để tránh các whipsaws trong các thị trường giới hạn phạm vi.
  2. Hull MA phản ứng nhanh hơn với những thay đổi giá và có thể nhanh chóng xác định các hướng xu hướng mới.
  3. ATR phản ánh sự biến động và nhiệt độ thị trường, cung cấp hướng dẫn về thời gian nhập cảnh.
  4. Nhiều tham số có thể điều chỉnh có thể được tối ưu hóa cho các kết hợp tham số tốt nhất.

Phân tích rủi ro

Một số rủi ro của chiến lược này:

  1. Cả Hull MA và ATR đều không thể tránh hoàn toàn các vụ phá vỡ sai và do đó có nguy cơ bị mắc kẹt.
  2. Cài đặt tham số không chính xác có thể dẫn đến giao dịch quá mức hoặc độ nhạy cảm không đủ, làm suy yếu hiệu quả của chiến lược.
  3. Nó không thể xử lý các hành động giá dữ dội như tăng mạnh hoặc sụp đổ một cách hiệu quả.

Giải pháp:

  1. Thiết lập stop loss thích hợp để tránh bị mắc kẹt bởi các breakout sai.
  2. Kiểm tra và tối ưu hóa các thông số để phù hợp với môi trường thị trường khác nhau.
  3. Ngưng chiến lược khi đối mặt với sự biến động dữ dội.

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

Vẫn còn nhiều chỗ để tối ưu hóa:

  1. Kiểm tra các thông số hullLength khác nhau để tìm các cài đặt tối ưu cho thị trường hiện tại.
  2. Kiểm tra các kết hợp thời gian ATR để nắm bắt tốt nhất nhiệt độ thị trường.
  3. Hãy thử các phương pháp làm mịn ATR khác nhau để xem phương pháp nào hiệu quả nhất.
  4. Tối ưu hóa điều kiện nhập cảnh với các chỉ số biến động khác như phản ứng kết hợp với ATR.
  5. Tối ưu hóa stop loss để tránh bị mắc kẹt.

Kết luận

Chiến lược này tích hợp khả năng theo dõi xu hướng của Hull MA và khả năng đánh giá nhiệt của ATR. Nó đi vào vị trí khi xu hướng được xác nhận và biến động tăng để lọc ra một số tín hiệu không hợp lệ. Tăng cường hơn nữa có thể đạt được bằng cách tối ưu hóa tham số và quản lý rủi ro tốt hơn. Tóm lại, chiến lược này kết hợp nhiều yếu tố theo dõi xu hướng và đánh giá nhiệt. Khi các tham số được điều chỉnh tốt, nó có thể mang lại kết quả tốt.


/*backtest
start: 2024-01-07 00:00:00
end: 2024-01-14 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//                                                Hull cross and ATR
strategy("Hull cross and ATR", shorttitle="H&ATR", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills=true, calc_on_every_tick=true, pyramiding=0)
keh=input(title="Hull Length",defval=50)
length = input(title="ATR Length", defval=50, minval=1)
smoothing = input(title="ATR Smoothing", defval="RMA", options=["RMA", "SMA", "EMA", "WMA"])
p=input(ohlc4,title="Price data")
n2ma=2*wma(p,round(keh/2))
nma=wma(p,keh)
diff=n2ma-nma
sqn=round(sqrt(keh))
n2ma1=2*wma(p[1],round(keh/2))
nma1=wma(p[1],keh)
diff1=n2ma1-nma1
sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
ma_function(source, length) => 
    if smoothing == "RMA"
        rma(p, length)
    else
        if smoothing == "SMA"
            sma(p, length)
        else
            if smoothing == "EMA"
                ema(p, length)
            else
                wma(p, length)
plot(ma_function(tr(true), length), title = "ATR", color=black, transp=50)
closelong = n1<n2
if (closelong)
    strategy.close("buy")
closeshort = n1>n2
if (closeshort)
    strategy.close("sell")
if (ma_function(tr(true), length)<p and p>p[length] and n1>n2)
    strategy.entry("buy", strategy.long, comment="BUY")
if (ma_function(tr(true), length)>p and p<p[length] and n1<n2)
    strategy.entry("sell", strategy.short, comment="SELL")

Thêm nữa