Tài nguyên đang được tải lên... tải...

Tiến trình điều chỉnh biến động động theo chiến lược dựa trên các chỉ số DI với quản lý dừng ATR

Tác giả:ChaoZhang, Ngày: 2025-01-06 16:18:01
Tags:DIDMIATRSMAMA

img

Tổng quan

Chiến lược này là một hệ thống theo xu hướng kết hợp Chỉ số chuyển động theo hướng (DMI) với phạm vi trung bình thực sự (ATR). Cơ chế cốt lõi sử dụng các chỉ số DI + và DI- để xác định hướng và sức mạnh xu hướng thị trường, trong khi sử dụng ATR để điều chỉnh dừng lỗ và lấy lợi nhuận năng động. Việc giới thiệu một trung bình chuyển động lọc xu hướng làm tăng thêm độ tin cậy tín hiệu.

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

Chiến lược hoạt động dựa trên các cơ chế cốt lõi sau:

  1. Sử dụng các chỉ số DI + và DI- để đo hướng và sức mạnh của xu hướng. Khi DI + vượt quá giá trị ngưỡng DI-, xu hướng tăng được xác nhận; ngược lại đối với xu hướng giảm.
  2. Bao gồm một xu hướng lọc trung bình động (SMA) như một công cụ xác nhận xu hướng.
  3. Sử dụng chỉ số ATR để tính toán động mức dừng lỗ và lấy lợi nhuận, đảm bảo quản lý rủi ro thích nghi với các điều kiện thị trường khác nhau.
  4. Tiếp theo nghiêm ngặt các hạn chế thời gian trong việc thực hiện giao dịch để tránh tần suất giao dịch quá mức.

Ưu điểm chiến lược

  1. Điều chỉnh năng động mạnh mẽ - đạt được sự thích nghi với biến động thị trường thông qua ATR.
  2. Kiểm soát rủi ro toàn diện - Thực hiện các cơ chế dừng lỗ và lợi nhuận dựa trên biến động.
  3. Độ tin cậy tín hiệu cao - Giảm tín hiệu sai thông qua xác nhận chéo nhiều chỉ số.
  4. Các thông số linh hoạt - Các thông số chiến lược có thể được tối ưu hóa cho các đặc điểm thị trường khác nhau.
  5. Logic thực thi rõ ràng - Các điều kiện nhập và xuất chính xác tạo điều kiện thực hiện trong thế giới thực.

Rủi ro chiến lược

  1. Rủi ro thị trường dao động - Có thể dẫn đến việc dừng liên tục ở các thị trường giới hạn phạm vi. Đề xuất: Thêm các chỉ số dao động để lọc hoặc điều chỉnh ngưỡng tham số.

  2. Rủi ro trượt - Có thể phải đối mặt với trượt đáng kể trong thời gian biến động cao. Lời khuyên: Mở rộng các vị trí dừng lỗ một cách thích hợp để phù hợp với trượt.

  3. Rủi ro phá vỡ sai - Những đánh giá sai tiềm năng tại các điểm chuyển hướng. Đề xuất: Kết hợp các chỉ số âm lượng để xác nhận tín hiệu.

  4. Độ nhạy của tham số - Hiệu suất thay đổi đáng kể với các kết hợp tham số khác nhau. Lời khuyên: Tìm các phạm vi tham số ổn định thông qua backtesting.

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

  1. Tối ưu hóa tín hiệu - Xem xét giới thiệu chỉ số ADX để đánh giá sức mạnh xu hướng hoặc thêm các cơ chế xác nhận khối lượng.

  2. Quản lý vị trí - Thực hiện phân loại vị trí năng động dựa trên sức mạnh xu hướng để kiểm soát rủi ro tinh tế hơn.

  3. Cấu trúc thời gian - Xem xét phân tích nhiều khung thời gian để tăng độ tin cậy tín hiệu.

  4. Khả năng thích nghi với thị trường - Phát triển các cơ chế điều chỉnh tham số thích nghi dựa trên các đặc điểm khác nhau của công cụ.

Tóm lại

Chiến lược này đạt được theo dõi xu hướng năng động và kiểm soát rủi ro bằng cách kết hợp các chỉ số định hướng và biến động. Thiết kế chiến lược nhấn mạnh tính thực tế và khả năng vận hành, chứng minh khả năng thích nghi thị trường mạnh mẽ. Thông qua tối ưu hóa tham số và cải thiện tín hiệu, có nhiều chỗ để tăng cường hơn nữa. Các nhà đầu tư được khuyên nên kiểm tra kỹ lưỡng và thực hiện các điều chỉnh cụ thể dựa trên đặc điểm thị trường trước khi thực hiện.


/*backtest
start: 2019-12-23 08:00:00
end: 2025-01-04 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("使用 DI+ 和 DI- 的策略 (最終完整修正且含圖表止損止盈線)", overlay=true)

// 輸入參數
diLength = input.int(title="DI 長度", defval=14)
adxSmoothing = input.int(title="ADX Smoothing", defval=14)
trendFilterLength = input.int(title="趨勢過濾均線長度", defval=20)
strengthThreshold = input.int(title="趨勢強度門檻值", defval=20)
atrLength = input.int(title="ATR 長度", defval=14)
atrMultiplierStop = input.float(title="ATR 停損倍數", defval=1.5)
atrMultiplierTakeProfit = input.float(title="ATR 止盈倍數", defval=2.5)

// 計算 DI+ 和 DI-
[diPlus, diMinus, _] = ta.dmi(diLength, adxSmoothing)

// 計算趨勢過濾均線
trendFilterMA = ta.sma(close, trendFilterLength)

// 判斷趨勢方向和強度
strongUpTrend = diPlus > diMinus + strengthThreshold and close > trendFilterMA
strongDownTrend = diMinus > diPlus + strengthThreshold and close < trendFilterMA

// 計算 ATR
atr = ta.atr(atrLength)

// 追蹤止損止盈價格 (使用 var 宣告,只在進場時更新)
var float longStopPrice = na
var float longTakeProfitPrice = na
var float shortStopPrice = na
var float shortTakeProfitPrice = na

// 進場邏輯
longCondition = strongUpTrend
shortCondition = strongDownTrend

if (longCondition)
    strategy.entry("多單", strategy.long)
    longStopPrice := close - atr * atrMultiplierStop // 進場時計算並更新止損價
    longTakeProfitPrice := close + atr * atrMultiplierTakeProfit // 進場時計算並更新止盈價

if (shortCondition)
    strategy.entry("空單", strategy.short)
    shortStopPrice := close + atr * atrMultiplierStop // 進場時計算並更新止損價
    shortTakeProfitPrice := close - atr * atrMultiplierTakeProfit // 進場時計算並更新止盈價


// 出場邏輯 (使用 time 限制和 ATR)
inLongPosition = strategy.position_size > 0
inShortPosition = strategy.position_size < 0

lastEntryTime = strategy.opentrades.entry_bar_index(strategy.opentrades - 1)

if (inLongPosition and time > lastEntryTime)
    strategy.exit("多單出場", "多單", stop=longStopPrice, limit=longTakeProfitPrice)

if (inShortPosition and time > lastEntryTime)
    strategy.exit("空單出場", "空單", stop=shortStopPrice, limit=shortTakeProfitPrice)

// 繪製 DI+、DI- 和趨勢過濾均線
plot(diPlus, color=color.green, title="DI+")
plot(diMinus, color=color.red, title="DI-")
plot(trendFilterMA, color=color.blue, title="趨勢過濾均線")

// 繪製止損止盈線 (使用 plot 函數繪製)
plot(strategy.position_size > 0 ? longStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=2, title="多單停損")
plot(strategy.position_size > 0 ? longTakeProfitPrice : na, color=color.green, style=plot.style_linebr, linewidth=2, title="多單止盈")
plot(strategy.position_size < 0 ? shortStopPrice : na, color=color.red, style=plot.style_linebr, linewidth=2, title="空單停損")
plot(strategy.position_size < 0 ? shortTakeProfitPrice : na, color=color.green, style=plot.style_linebr, linewidth=2, title="空單止盈")

Có liên quan

Thêm nữa