Chiến lược giao dịch đường trung bình động Adaptive Price Crossover

HMA SL TP
Ngày tạo: 2024-09-26 16:12:36 sửa đổi lần cuối: 2024-09-26 16:12:36
sao chép: 2 Số nhấp chuột: 441
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch đường trung bình động Adaptive Price Crossover

Tổng quan

Chiến lược giao dịch tự điều chỉnh giá chéo đường trung bình là một phương pháp giao dịch định lượng dựa trên đường trung bình di chuyển Hull ((HMA)). Chiến lược này sử dụng giá và chéo của HMA để tạo ra tín hiệu mua và bán, đồng thời đặt mức dừng và dừng cố định để quản lý rủi ro và lợi nhuận. Chiến lược sử dụng HMA 104 chu kỳ làm chỉ số chính, kết hợp với giá chéo để kích hoạt giao dịch.

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

Cốt lõi của chiến lược này là sử dụng trung bình di chuyển Hull ((HMA) làm chỉ số chính. HMA là một trung bình di chuyển tiên tiến, nó có thể phản ứng nhanh chóng với sự thay đổi giá trong khi giảm sự trì trệ.

  1. Tính toán HMA của 104 chu kỳ.
  2. Khi giá vượt qua HMA, hãy đặt nhiều hơn.
  3. Khi giá đi xuống qua HMA, hãy mở lỗ.
  4. Cài đặt mức dừng cố định ((\(1.25) và dừng ((\)37.5) cho mỗi giao dịch.
  5. Mỗi giao dịch sử dụng 2 hợp đồng.

Chiến lược này đảm bảo không mở lại các vị trí mở bằng cách theo dõi các vị trí đã có. Khi một giao dịch bị xóa, hệ thống đặt lại dấu hiệu để cho phép tín hiệu giao dịch mới có hiệu lực.

Lợi thế chiến lược

  1. Khả năng thích ứng: HMA có thể thích ứng nhanh chóng với sự thay đổi của thị trường, giảm tín hiệu sai.
  2. Quản lý rủi ro: Sử dụng các mức dừng và dừng cố định để kiểm soát hiệu quả rủi ro của mỗi giao dịch
  3. Đơn giản và rõ ràng: Quy tắc giao dịch rõ ràng, dễ hiểu và dễ thực hiện.
  4. Giao dịch hai chiều: nắm bắt cơ hội tăng và giảm cùng một lúc, tăng tiềm năng lợi nhuận
  5. Tự động hóa: Chiến lược có thể được tự động hóa hoàn toàn, giảm thiểu sự can thiệp của con người và ảnh hưởng cảm xúc.

Rủi ro chiến lược

  1. Giao dịch thường xuyên: Có thể tạo ra quá nhiều tín hiệu giao dịch trong thị trường biến động mạnh, làm tăng chi phí giao dịch.
  2. Lệnh dừng / dừng cố định: có thể không phù hợp với tất cả các điều kiện thị trường, trong một số trường hợp có thể xuất hiện quá sớm hoặc bỏ lỡ xu hướng lớn.
  3. Dựa vào chỉ số duy nhất: Chỉ dựa vào HMA có thể không hoạt động tốt trong một số môi trường thị trường.
  4. Sự chậm trễ: Mặc dù HMA đã giảm độ chậm trễ, nhưng nó vẫn có thể không phản ứng ở các bước ngoặt cấp bách.
  5. Thiếu lọc môi trường thị trường: Không xem xét xu hướng hoặc biến động của thị trường tổng thể, có thể giao dịch trong điều kiện thị trường không phù hợp.

Hướng tối ưu hóa chiến lược

  1. Tiếp theo, các chỉ số kỹ thuật khác (như RSI hoặc MACD) được sử dụng để xác nhận tín hiệu và tăng độ chính xác.
  2. Động lực dừng / dừng: Điều chỉnh mức dừng và dừng theo biến động của thị trường để thích ứng với môi trường thị trường khác nhau.
  3. Thêm bộ lọc thị trường: Thêm bộ lọc cường độ xu hướng hoặc tỷ lệ biến động để tránh giao dịch trong điều kiện thị trường bất lợi.
  4. Tối ưu hóa tham số HMA: Kiểm tra các chu kỳ HMA khác nhau để tìm tham số phù hợp nhất với thị trường cụ thể.
  5. Khởi động quản lý vị trí: điều chỉnh quy mô giao dịch theo rủi ro thị trường và quy mô tài khoản.
  6. Thêm bộ lọc thời gian: Tránh giao dịch trong thời gian có nhiều biến động của thị trường, chẳng hạn như trong các dữ liệu kinh tế quan trọng.

Tóm tắt

Chiến lược tự điều chỉnh giá giao dịch chéo là một phương pháp giao dịch đơn giản và hiệu quả. Bằng cách tận dụng lợi thế của đường trung bình di chuyển Hull, chiến lược này có thể nắm bắt xu hướng thị trường, đồng thời bảo vệ vốn bằng các biện pháp quản lý rủi ro cố định. Mặc dù có một số rủi ro tiềm ẩn đối với chiến lược, nhưng có thể nâng cao hơn nữa hiệu suất và khả năng thích ứng của nó bằng cách tối ưu hóa và cải tiến liên tục.

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

//@version=5
strategy("SHIESTD", overlay=true)

// Function to calculate Hull Moving Average (HMA)
hma(src, length) =>
    wma1 = ta.wma(src, length)
    wma2 = ta.wma(src, length / 2)
    hma = ta.wma(2 * wma2 - wma1, math.round(math.sqrt(length)))
    hma

// Parameters
hma_length = 104

// Calculate Hull Moving Average
hma_value = hma(close, hma_length)

// Plot HMA
plot(hma_value, title="104-period Hull Moving Average", color=color.blue, linewidth=2)

// Define SL and TP values in dollars
long_sl_amount = 1.25
long_tp_amount = 37.5
short_sl_amount = 1.25
short_tp_amount = 37.5

// Number of contracts
contracts = 2

// Function to calculate SL and TP prices based on entry price and dollar amounts
long_sl_price(entry_price) =>
    entry_price - long_sl_amount

long_tp_price(entry_price) =>
    entry_price + long_tp_amount

short_sl_price(entry_price) =>
    entry_price + short_sl_amount

short_tp_price(entry_price) =>
    entry_price - short_tp_amount

// Trading conditions
price_intersects_hma = ta.crossover(close, hma_value) or ta.crossunder(close, hma_value)

// Long and Short Conditions based on price intersecting HMA
long_condition = ta.crossover(close, hma_value)
short_condition = ta.crossunder(close, hma_value)

// Track open positions
var bool long_open = false
var bool short_open = false

// Handle Long Positions
if (long_condition and not long_open)
    entry_price = close
    strategy.entry("Long", strategy.long, qty=contracts)
    strategy.exit("Exit Long", from_entry="Long", stop=long_sl_price(entry_price), limit=long_tp_price(entry_price))
    long_open := true

// Handle Short Positions
if (short_condition and not short_open)
    entry_price = close
    strategy.entry("Short", strategy.short, qty=contracts)
    strategy.exit("Exit Short", from_entry="Short", stop=short_sl_price(entry_price), limit=short_tp_price(entry_price))
    short_open := true

// Reset flags when the position is closed
if (strategy.opentrades == 0)
    long_open := false
    short_open := false