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


Ngày tạo: 2023-09-13 14:42:19 sửa đổi lần cuối: 2023-09-13 14:42:19
sao chép: 1 Số nhấp chuột: 797
1
tập trung vào
1617
Người theo dõi

Một chiến lược giao dịch định lượng mới, chiến lược này chủ yếu dựa trên chỉ số DMI để xác định đáy và đỉnh của thị trường. Bài viết này sẽ mô tả chi tiết các nguyên tắc, lợi thế và rủi ro có thể có của chiến lược giao dịch này.

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

Chỉ số DMI được gọi là chỉ số chuyển động theo hướng trung bình (Average Directional Movement Index), được Welles Wilder đưa ra vào những năm 1970 để đánh giá xu hướng và cường độ của thị trường. Chỉ số DMI bao gồm ba đường:

  • + DI: đại diện cho cường độ của xu hướng tăng
  • - DI: Phép độ của xu hướng giảm
  • ADX: đại diện cho cường độ trung bình của xu hướng

Khi + DI trên DI, đại diện cho xu hướng tăng mạnh, bạn có thể xem xét làm nhiều hơn; khi + DI trên DI, đại diện cho xu hướng giảm mạnh, bạn có thể xem xét làm trống.

Chính sách của chúng tôi là:

  1. Khi +DI là 10 và -DI là 40, hãy làm thêm.
  2. Làm trống khi -DI đi 10 và +DI đi 40

Nói cách khác, khi đường DI ngược rõ ràng mạnh hơn đường DI thẳng, có thể đánh giá xu hướng hiện tại sắp đảo ngược, và khi đó có thể can thiệp thích hợp để thực hiện hoạt động đảo ngược.

Để lọc các trường hợp rối loạn, chính sách này sử dụng đường trung bình của DI, và các tham số cụ thể được đặt là:

  • +DI và -DI đều có chiều dài chu kỳ là 11
  • ADX có chu kỳ làm mịn là 11

Kiểm soát tần suất tín hiệu giao dịch bằng cách điều chỉnh tham số đường trung bình.

Chiến lược này được áp dụng chủ yếu cho giao dịch quyền chọn chỉ số NIFTY50, nhưng cũng có thể được sử dụng cho các loại khác. Khi giao dịch cụ thể, chọn quyền chọn bình quân, thiết lập dừng lỗ là 20%, nếu thua lỗ vượt quá 10% thì tăng thêm, nhưng nếu thua lỗ mở rộng đến hơn 20% vốn đầu tư ban đầu thì dừng lỗ.

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

So với chiến lược giao dịch DI đơn giản, chiến lược này sử dụng bộ lọc đường trung bình của chỉ số DI, có thể giảm hiệu quả whipsaw và giảm số lần giao dịch, do đó giảm chi phí giao dịch và mất điểm trượt.

So với chiến lược theo dõi xu hướng đơn giản, chiến lược này có độ chính xác cao hơn trong việc xác định điểm đảo ngược xu hướng và có thể bắt kịp thời cơ hội giao dịch gần điểm đảo ngược.

Các tham số của chiến lược này được tối ưu hóa một cách đơn giản và dễ dàng để tối ưu hóa hiệu quả.

Dấu hiệu nguy cơ

Chiến lược này chỉ cung cấp hướng tín hiệu giao dịch, yêu cầu dừng lỗ cụ thể cần được thiết lập theo sở thích rủi ro cá nhân.

Chỉ số DMI có thể tạo ra nhiều tín hiệu sai khi tính toán khu vực và nên tránh sử dụng chiến lược này trong thị trường không có xu hướng.

DI cross không thể dự đoán 100% điểm biến hướng, có một số lỗi thời gian. Các chỉ số khác nên được kết hợp hợp hợp lý để xác minh tín hiệu giao dịch.

Tóm tắt

Chiến lược này có khả năng xác định hiệu quả các cơ hội đảo ngược xu hướng thông qua bộ lọc DI bằng phẳng. So với các chiến lược theo dõi xu hướng khác, nó có khả năng nhận diện đảo ngược mạnh hơn. Nhìn chung, các tham số của chiến lược này được tối ưu hóa linh hoạt, phù hợp để sử dụng như một mô-đun của hệ thống giao dịch định lượng.

Mã nguồn chiến lược
/*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)