Chiến lược giao dịch trung bình động của DMI

Tác giả:ChaoZhang, Ngày: 2023-09-13 14:42:19
Tags:

Gần đây tôi đã phát triển một chiến lược giao dịch định lượng mới chủ yếu dựa trên chỉ số DMI để xác định đáy và đỉnh trên thị trường.

Chiến lược logic

Chỉ số DMI, viết tắt của Chỉ số chuyển động theo hướng trung bình, được Welles Wilder tạo ra vào những năm 1970 để đánh giá xu hướng và sức mạnh của thị trường.

  • +DI: đại diện cho sức mạnh của xu hướng tăng
  • -DI: đại diện cho sức mạnh của xu hướng giảm
  • ADX: đại diện cho sức mạnh xu hướng tổng thể

Khi +DI vượt trên -DI, nó cho thấy tăng cường xu hướng tăng và vị trí dài có thể được xem xét. Khi -DI vượt trên +DI, nó báo hiệu tăng cường xu hướng giảm và vị trí ngắn có thể được xem xét.

Logic cốt lõi của chiến lược này là:

  1. Đi dài khi +DI giảm xuống dưới 10 và -DI tăng trên 40
  2. Đi ngắn khi -DI giảm xuống dưới 10 và +DI tăng trên 40

Nói cách khác, khi DI đảo ngược khác biệt đáng kể với DI tương lai, có thể đánh giá rằng xu hướng hiện tại có khả năng đảo ngược, và vị trí giao dịch đảo ngược có thể được đưa ra một cách thích hợp.

Để lọc tiếng ồn, chiến lược này áp dụng trung bình động của DI với các tham số được đặt như sau:

  • Thời gian +DI và -DI là 11
  • Thời gian làm mịn của ADX là 11

Bằng cách điều chỉnh các thông số trung bình động, tần suất tín hiệu giao dịch có thể được điều chỉnh.

Chiến lược này chủ yếu được áp dụng để giao dịch các tùy chọn chỉ số NIFTY50. Nó cũng có thể được sử dụng trên các sản phẩm khác. Cụ thể cho giao dịch, chọn các tùy chọn tại tiền, đặt dừng lỗ ở mức 20%, thêm các vị trí nếu lỗ vượt quá 10%, nhưng dừng lại nếu lỗ mở rộng trên 20% vốn ban đầu.

Ưu điểm của Chiến lược

So với các chiến lược chéo DI đơn giản, chiến lược này sử dụng đường trung bình động DI để lọc tiếng ồn và giảm giao dịch, do đó giảm chi phí giao dịch và trượt.

So với các chiến lược theo xu hướng thuần túy, chiến lược này chính xác hơn trong việc bắt các điểm đảo ngược xu hướng, cho phép các mục nhập kịp thời xung quanh các lượt.

Việc tối ưu hóa chiến lược rất đơn giản với các tham số linh hoạt để điều chỉnh hiệu suất.

Cảnh báo về rủi ro

Chiến lược này chỉ cung cấp các tín hiệu hướng dẫn.

DMI có thể tạo ra nhiều tín hiệu sai trong thời gian giới hạn phạm vi. Tránh sử dụng chiến lược này trong các thị trường không có xu hướng.

DI crossover không thể dự đoán hoàn toàn sự đảo ngược xu hướng. Có thể có một số lỗi thời gian. Các chỉ số khác nên được sử dụng để xác nhận các tín hiệu giao dịch.

Kết luận

Bằng cách sàng lọc với các đường trung bình động DI, chiến lược này có thể xác định hiệu quả các cơ hội đảo ngược xu hướng. So với các chiến lược theo xu hướng khác, nó có lợi thế về khả năng nhận diện đảo ngược mạnh hơn. Nhìn chung, chiến lược này có điều chỉnh tham số linh hoạt và có thể được sử dụng như một mô-đun trong các hệ thống giao dịch định lượng. Chú ý đến các tín hiệu sai và đánh giá đúng chế độ thị trường khi sử dụng nó.


/*backtest
start: 2023-09-05 00:00:00
end: 2023-09-12 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © email_analysts
// This code gives indication on the chart to go long based on DMI and exit based on RSI. 
//Default value has been taken as 14 for DMI+ and 6 for RSI.
//@version=5
strategy(title="DMI Strategy", overlay=false)
lensig = input.int(11, title="ADX Smoothing", minval=1, maxval=50)
len = input.int(11, minval=1, title="DI Length")
up = ta.change(high)
down = -ta.change(low)
plusDM = na(up) ? na : (up > down and up > 0 ? up : 0)
minusDM = na(down) ? na : (down > up and down > 0 ? down : 0)
trur = ta.rma(ta.tr, len)
plus = fixnan(100 * ta.rma(plusDM, len) / trur)
minus = fixnan(100 * ta.rma(minusDM, len) / trur)
sum = plus + minus
adx = 100 * ta.rma(math.abs(plus - minus) / (sum == 0 ? 1 : sum), lensig)
//plot(adx, color=#F50057, title="ADX")
plot(plus, color=color.green, title="+DI")
plot(minus, color=color.red, title="-DI")
hlineup = hline(40, color=#787B86)
hlinelow = hline(10, color=#787B86)

buy = plus < 10 and minus > 40
if buy
    strategy.entry('long', strategy.long)

sell = plus > 40 and minus < 10
if sell
    strategy.entry('short', strategy.short)



Thêm nữa