Chiến lược xu hướng dựa trên HULL SMA và EMA Crossover

Tác giả:ChaoZhang, Ngày: 2023-10-30 12:32:38
Tags:

img

Tổng quan

Chiến lược này tạo ra tín hiệu mua và bán bằng cách tính toán sự chéo chéo giữa đường trung bình di chuyển trơn HULL và đường trung bình di chuyển theo cấp số nhân để xác định hướng xu hướng thị trường.

Chiến lược logic

  1. Tính toán HULL Smoothed Moving Average (HULL SMA) 5 giai đoạn. HULL SMA phản ứng nhanh hơn với sự thay đổi giá bằng cách sử dụng các đường trung bình động cân nhắc và gốc vuông của giai đoạn.

  2. Tính toán trung bình chuyển động biểu số 5 giai đoạn (EMA). EMA cho trọng lượng nhiều hơn cho giá gần đây và nhạy cảm hơn SMA trong việc theo dõi xu hướng.

  3. Tạo tín hiệu mua và bán dựa trên sự giao thoa giữa HULL SMA và EMA.

  • Khi HULL SMA vượt trên EMA, một tín hiệu mua được tạo ra, cho thấy xu hướng ngắn hạn phá vỡ trên xu hướng dài hạn, gợi ý sự chuyển động giá tăng.

  • Khi HULL SMA vượt qua dưới EMA, một tín hiệu bán được tạo ra, cho thấy xu hướng giảm ngắn hạn, gợi ý chuyển động giá giảm.

  1. Sử dụng HULL SMA như đường nhanh và EMA như đường chậm để xác định những thay đổi trong xu hướng ngắn hạn và trung hạn dựa trên giao thoa, tạo ra các tín hiệu giao dịch.

Phân tích lợi thế

  1. HULL SMA nhạy cảm với sự thay đổi giá và có thể phát hiện các thay đổi xu hướng sớm hơn.

  2. EMA làm dịu tiếng ồn thị trường và theo dõi xu hướng dài hạn.

  3. Các tín hiệu giao thoa bắt được các điểm chuyển hướng theo thời gian.

  4. Các thông số có thể được điều chỉnh cho các khung thời gian giao dịch khác nhau.

  5. Nhận các xu hướng tăng và giảm linh hoạt.

Phân tích rủi ro

  1. Nhiều tín hiệu sai có thể xảy ra trong các thị trường giới hạn phạm vi.

  2. Không thể xác định sức mạnh xu hướng, có thể dẫn đến tổn thất lặp lại trong xu hướng yếu.

  3. Các biến động giá giữa các khoảng trung bình có thể bị bỏ qua.

  4. Cài đặt tham số không đúng ảnh hưởng đến chất lượng tín hiệu.

  5. Tần suất giao dịch cao làm tăng chi phí và rủi ro trượt.

Có thể cải thiện thông qua lọc tín hiệu, đánh giá sức mạnh xu hướng, tối ưu hóa tham số, quản lý rủi ro, v.v.

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

  1. Thêm các chỉ số như MACD, RSI để xác nhận tín hiệu.

  2. Kết hợp các chỉ số sức mạnh xu hướng như ADX để tránh giao dịch xu hướng yếu.

  3. Tối ưu hóa các thông số trung bình động cho các kết hợp tốt nhất.

  4. Thực hiện dừng lỗ để kiểm soát lỗ giao dịch duy nhất.

  5. Quản lý tần suất giao dịch và chi phí.

  6. Bao gồm phân tích nhiều khung thời gian để xác định xu hướng chéo chu kỳ.

  7. Phát triển các chương trình tối ưu hóa tham số tự động.

Tóm lại

Chiến lược này đánh giá xu hướng dựa trên sự chéo chéo giữa HULL SMA nhanh và EMA chậm. Đây là một hệ thống chéo chéo trung bình động điển hình. So với trung bình động truyền thống, HULL SMA đáp ứng nhanh hơn cung cấp phát hiện thay đổi xu hướng sớm hơn. Nhưng các tham số và chỉ số bổ sung nên được tối ưu hóa để giảm tín hiệu sai. Với quản lý rủi ro và tiền đúng cách, chiến lược này có thể là một hệ thống theo xu hướng trung hạn hiệu quả.


/*backtest
start: 2022-10-23 00:00:00
end: 2023-10-29 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("HULL EMA Crossover", overlay = true, process_orders_on_close = true)

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © spiritedPerson95700

inSession = true


HULL_INP = input.int(5, "Hull EMA Value")
EMA_INP = input(5, "EMA Value")

/// Indicator
HULL_EMA = ta.hma(close, HULL_INP)
EMA = ta.ema(close, EMA_INP)

prevSignal = ''
if (prevSignal == '')  
    prevSignal := HULL_EMA > EMA ? 'buy' : 'sell'

/// buy and sell signal
buy = ta.crossover(HULL_EMA, EMA)
short = ta.crossover(EMA, HULL_EMA)

sell = short
cover = buy

if inSession
    if buy 
        prevSignal := 'na'
        strategy.entry("long", direction = strategy.long, comment = "Buy")

    if sell
        prevSignal := 'na'
        strategy.close("long", comment = "Sell")

    if short
        strategy.entry("short", direction = strategy.short, comment = "Short")

    if cover
        strategy.close("short", comment = "Cover")


plot(HULL_EMA, color = color.green)
plot(EMA, color = color.blue)

// if ( hour(time) == 15 and minute(time) > 25  )  
//     strategy.close("long", comment="EOD")
//     strategy.close("short", comment="EOD")
//     buy := false
//     sell := false
//     prevSignal := ''


Thêm nữa