Chiến lược đột phá kênh Donchian


Ngày tạo: 2024-03-22 16:13:58 sửa đổi lần cuối: 2024-03-22 16:13:58
sao chép: 0 Số nhấp chuột: 856
1
tập trung vào
1617
Người theo dõi

Chiến lược đột phá kênh Donchian

Tổng quan về chiến lược

Chiến lược phá vỡ kênh Dongguan là một chiến lược giao dịch định lượng theo xu hướng. Chiến lược này sử dụng kênh Dongguan để nắm bắt xu hướng thị trường, đồng thời sử dụng ATRSL để kiểm soát rủi ro. Chiến lược mở nhiều vị trí khi giá vượt qua kênh Dongguan; chiến lược bằng phẳng khi giá giảm xuống ATRSL.

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

  1. Tính toán đường Đông Dương: Dựa trên thông tin nhập của người dùngdonLengthCác tham số được tính trước.donLengthGiá cao nhất và giá thấp nhất của một chu kỳ, tương ứng với đường ray trên đường DongxiandonUpperVà đường ray.donLower, đường trung tâm .donBasisLà trung bình của đường ray lên xuống.
  2. Tính toán ATRSL Mobile Stop Loss: Dựa trên đầu vào của người dùngAP2AF2Các tham số tính ATRSL2Sau đó, tính theo giá đóng cửa hiện tại.SCVà trước đó là giá dừng động.Trail2[1]Các quan hệ, động lực điều chỉnh giá dừng di chuyểnTrail2
  3. Điều kiện mở vị trí: Khi giao dịch được thực hiện trên đường đi Đường Đông Dương trên giá đóng cửa hiện tại, hãy mở vị trí nhiều hơn.
  4. Điều kiện giao dịch: Khi giao dịch vượt qua đường dừng chân di động ATRSL dưới mức đóng cửa hiện tại, giao dịch được thực hiện.

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

  1. Theo dõi xu hướng: Xác định xu hướng thông qua kênh Đồng Chiên, có thể nắm bắt được xu hướng thị trường hiệu quả.
  2. Hạn chế động: Sử dụng Hạn chế di động ATRSL, bạn có thể điều chỉnh vị trí Hạn chế động theo biến động của thị trường, kiểm soát rủi ro.
  3. Tính linh hoạt: Người dùng có thể điều chỉnh tùy theo nhu cầu của họdonLengthAP2AF2Các tham số khác nhau, tối ưu hóa hiệu suất chiến lược.

Rủi ro chiến lược

  1. Rủi ro tham số: Các thiết lập tham số khác nhau có thể dẫn đến sự khác biệt lớn trong hiệu suất của chiến lược, cần phải kiểm tra lại đầy đủ và tối ưu hóa tham số.
  2. Rủi ro thị trường: Chiến lược này có thể bị rút lui khi thị trường bị rung chuyển hoặc xu hướng đảo ngược.
  3. Điểm trượt và chi phí giao dịch: giao dịch thường xuyên có thể dẫn đến điểm trượt và chi phí giao dịch cao hơn, ảnh hưởng đến lợi nhuận chiến lược.

Hướng tối ưu hóa

  1. Thêm bộ lọc xu hướng: Trong điều kiện mở vị trí, bạn có thể thêm các chỉ số như ADX để đánh giá cường độ xu hướng, chỉ mở vị trí khi xu hướng rõ ràng, cải thiện chất lượng mở vị trí.
  2. Tối ưu hóa dừng lỗ: Bạn có thể thử sử dụng các phương pháp dừng lỗ khác, chẳng hạn như dừng phần trăm, dừng ATR, hoặc kết hợp nhiều phương pháp dừng lỗ để tăng tính linh hoạt của dừng lỗ.
  3. Tham gia quản lý vị trí: Đổi đổi kích thước vị trí theo biến động thị trường và rủi ro tài khoản, kiểm soát rủi ro.

Tóm tắt

Chiến lược phá vỡ kênh Đồng Chi An là một chiến lược theo dõi xu hướng cổ điển, nắm bắt xu hướng thông qua kênh Đồng Chi An và sử dụng ATRSL để kiểm soát rủi ro dừng lỗ di động. Ưu điểm của chiến lược là logic đơn giản, rõ ràng, dễ thực hiện và tối ưu hóa; nhược điểm là hoạt động kém khi thị trường dao động và xu hướng đảo ngược, và cài đặt tham số có ảnh hưởng lớn đến hoạt động của chiến lược. Trong ứng dụng thực tế, có thể thêm các mô-đun quản lý xu hướng, tối ưu hóa dừng lỗ và vị trí trên cơ sở của chiến lược gốc để tăng cường sự ổn định và lợi nhuận của chiến lược.

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

//@version=4
strategy("Stock Trend USE THIS", overlay = true)
donLength = input(100, minval=1)

//Donchian Long
donLower = lowest(donLength)
donUpper = highest(donLength)
donBasis = avg(donUpper,donLower)

// ATRSL
SC = close

// Slow Trail //
AP2 = input(10, title="Slow ATR period")  // ATR Period
AF2 = input(3, title="Slow ATR multiplier")  // ATR Factor
SL2 = AF2 * atr(AP2)  // Stop Loss
Trail2 = 0.0
iff_3 = SC > nz(Trail2[1], 0) ? SC - SL2 : SC + SL2
iff_4 = SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0) ? min(nz(Trail2[1], 0), SC + SL2) : iff_3
Trail2 := SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0) ? max(nz(Trail2[1], 0), SC - SL2) : iff_4



// Long and Short Conditions
longCondition = (crossover(close,donUpper[1])) 

// Close Conditions
closeLongCondition = crossunder(close,Trail2)

// Strategy logic
if (longCondition) 
    strategy.entry("Long", strategy.long)
    alert("Open Long position")

if (closeLongCondition)
    strategy.close("Long")
    alert("Close Long position")

// Plot Donchian
l = plot(donLower, color=color.blue)
u = plot(donUpper, color=color.blue)
plot(donBasis, color=color.orange)
fill(u, l, color=color.blue)
plot(Trail2, color=color.blue, title="ATRSL Trail")