Chiến lược bảo vệ DPO DMI

Tác giả:ChaoZhang, Ngày: 2024-01-04 17:56:28
Tags:

img

Tổng quan

Chiến lược này kết hợp hai chỉ số tích hợp mạnh mẽ trong TradingView - Chỉ số chuyển động theo hướng (Directional Movement Index - DMI) và Bộ dao động giá bị ngắt (Deterred Price Oscillator - DPO) để tạo thành một cơ sở đáng tin cậy cho các quyết định giao dịch. Lý thuyết cốt lõi của chiến lược là xác định xem giá trị DPO lớn hơn 0 khi một đường chéo vàng DMI xảy ra, và tạo ra tín hiệu dài nếu có; hoặc xác định xem giá trị DPO nhỏ hơn 0 khi một đường chéo chết DMI xảy ra, và tạo ra tín hiệu ngắn nếu có. Điều này có thể lọc hiệu quả rất nhiều tín hiệu sai được tạo ra trong các dao động giới hạn trong thị trường, do đó chỉ tạo ra tín hiệu giao dịch khi một xu hướng hình thành, tránh dừng lại nhiều lần trong các dao động.

Nguyên tắc

Chỉ số DMI bao gồm ba đường cong: +DI, -DI và ADX. +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, và giao thoa của chúng có thể xác định hướng xu hướng hiện tại; ADX đại diện cho sức mạnh của xu hướng, giá trị càng cao, xu hướng càng rõ ràng. Tuy nhiên, ADX không giỏi xác định phạm vi biến động thấp, vì vậy chiến lược này loại bỏ việc xác định ADX và chỉ sử dụng giao thoa +DI và -DI để xác định hướng xu hướng.

Để lọc ra các tín hiệu sai được tạo ra trong các dao động giới hạn phạm vi, chỉ số DPO được giới thiệu để phán đoán phụ trợ. Chỉ số DPO đại diện cho mức độ lệch của giá so với đường ray giữa của nó. Khi giá trên đường ray giữa, DPO là dương tính, và khi dưới, nó là âm. Chiến lược này sử dụng tính tích cực và tiêu cực của chỉ số DPO để đánh giá liệu nó có đang có xu hướng hay không. Nếu chỉ số DMI vượt qua nhưng chỉ số DPO gần mức 0, nó được xác định là dao động và không có tín hiệu giao dịch nào được tạo ra.

Cụ thể, logic phán đoán là:

  1. Khi +DI vượt trên -DI, đó là một chữ thập vàng, cho thấy thị trường tăng. Tại thời điểm này, nếu chỉ số DPO lớn hơn 0, nó xác nhận rằng hiện tại nó đang trong xu hướng tăng, và một tín hiệu dài được tạo ra.

  2. Khi -DI vượt dưới +DI, đó là một chữ thập chết, cho thấy thị trường gấu.

  3. Nếu +DI/-DI giao nhau nhưng chỉ số DPO gần 0, nó được xác định là dao động và không tạo ra tín hiệu.

Phân tích lợi thế

Ưu điểm lớn nhất của chiến lược kết hợp này là độ chính xác cao của nó trong việc xác định xu hướng, tạo ra tín hiệu giao dịch chỉ khi sự đảo ngược xu hướng thực sự xảy ra, do đó tránh thua lỗ lặp đi lặp lại trong khoảng thời gian dao động.

  1. Sử dụng chỉ số DMI để xác định hướng và sức mạnh xu hướng, đó là một chỉ số kỹ thuật trưởng thành và đáng tin cậy.

  2. Chăm sóc các tín hiệu sai trong dao động trong phạm vi với sự giúp đỡ của chỉ số DPO, tạo ra tín hiệu chỉ khi có xu hướng hình thành, tránh mất mát.

  3. Kết hợp nhiều chỉ số có thể phục vụ như xác minh lẫn nhau và cải thiện độ tin cậy của tín hiệu.

  4. Logic chiến lược đơn giản và dễ hiểu và thực hiện, phù hợp với giao dịch tự động hoặc thủ công.

  5. Vì nó chỉ giao dịch theo xu hướng, nó có thể có tỷ lệ rủi ro phần thưởng tương đối cao.

Phân tích rủi ro

Mặc dù đây là một chiến lược rất đáng tin cậy, nhưng cần lưu ý các rủi ro sau:

  1. Các sự kiện đột ngột có thể gây ra những động thái đơn phương lớn trên thị trường, có thể bỏ lỡ các cơ hội xu hướng như vậy.

  2. Chỉ số DMI cũng có thể tạo ra các tín hiệu sai, và rủi ro này không thể tránh hoàn toàn.

  3. Các thiết lập tham số không chính xác của chỉ số DPO cũng có thể dẫn đến đánh giá sai.

  4. Chi phí giao dịch sẽ có tác động nhất định đến lợi nhuận, vì vậy tần suất giao dịch nên được kiểm soát.

Tối ưu hóa

Vẫn còn chỗ để tối ưu hóa thêm chiến lược này:

  1. Các kết hợp tham số khác nhau có thể được thử nghiệm để tìm các tham số tối ưu để giảm sự chậm trễ tín hiệu và tăng tỷ lệ lợi nhuận.

  2. Có thể được kết hợp với các chỉ số khác như KDJ, MACD, vv để xác minh để cải thiện độ chính xác tín hiệu.

  3. Các tham số thích nghi có thể được thiết lập theo các giống khác nhau, chu kỳ, vv để làm cho chiến lược thích nghi hơn.

  4. Các điểm dừng động có thể được đặt để kiểm soát lỗ đơn. Các kích thước dừng lỗ khác nhau cũng có thể được đặt theo các giai đoạn xu hướng.

  5. Các phương pháp học máy có thể được sử dụng để tối ưu hóa thời gian vào và ra để có lợi nhuận cao hơn.

Tóm lại

Chiến lược này kết hợp các lợi thế của các chỉ số DMI và DPO để có độ chính xác cao trong việc đánh giá sự đảo ngược xu hướng, và có thể xác định đáng tin cậy việc tạo ra xu hướng. Đồng thời, việc sử dụng chỉ số DPO sẽ lọc hiệu quả tiếng ồn gây ra bởi các dao động giới hạn trong phạm vi, tránh giao dịch không hiệu quả. Điều này làm cho nó trở thành một chiến lược hiệu quả phù hợp với giao dịch tự động và áp dụng thủ công. Tất nhiên, vẫn còn nhiều chi tiết có thể được tối ưu hóa hơn nữa để có hiệu suất chiến lược tốt hơn. Nhưng ý tưởng kết hợp các chỉ số có ý nghĩa tham chiếu quan trọng cho thiết kế chiến lược giao dịch định lượng.


/*backtest
start: 2022-12-28 00:00:00
end: 2024-01-03 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("DMI DPO Guard Strategy", calc_on_order_fills=true, initial_capital=100000, default_qty_type=strategy.percent_of_equity, default_qty_value=10, currency="USD", commission_type=strategy.commission.percent, commission_value=0.25)

///Tradingview's DMI indicator logic///
len = input(34, minval=1, title="DI Lookback")
up = change(high)
down = -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 = rma(tr, len)
plus = fixnan(100 * rma(plusDM, len) / trur)
minus = fixnan(100 * rma(minusDM, len) / trur)

plot(plus, color=color.orange, title="+DI")
plot(minus, color=color.aqua, title="-DI")


period_ = input(34, title="Length", minval=1)
isCentered = input(false, title="Centered")
barsback = period_/2 + 1
ma = sma(close, period_)
dpo = isCentered ? close[barsback] - ma : close - ma[barsback]
plot(dpo, offset = isCentered ? -barsback : 0, title="Detrended Price Oscillator", color=#C0C000)
hline(0, title="Zero Line", color = #C0C0C0)

long = crossover(plus, minus) and (dpo > 0)
short = crossunder(plus, minus) and (dpo < 0)

strategy.entry("Long", strategy.long, when=long)
strategy.entry("Short", strategy.short, when=short)




Thêm nữa