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


Ngày tạo: 2023-12-04 14:16:33 sửa đổi lần cuối: 2023-12-04 14:16:33
sao chép: 0 Số nhấp chuột: 641
1
tập trung vào
1619
Người theo dõi

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

Tổng quan

Chiến lược phá vỡ đường hầm Đồng Chi An là một chiến lược giao dịch phá vỡ dựa trên hành vi và xu hướng giá. Nó sử dụng đường hầm Đồng Chi An để xác định điểm phá vỡ tiềm năng, mở vị trí đa đầu hoặc trống khi giá phá vỡ đường hầm.

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

Lập luận cốt lõi của chiến lược này là:

  1. Sử dụng hàm Ta.highest và Ta.lowest để tính giá cao nhất và giá thấp nhất trong một chu kỳ nhất định (ví dụ như 60 đường K) để xây dựng đường ray trên và đường ray dưới của đường Dongxian.

  2. Khi giá phá vỡ đường đua, cho rằng thị trường có thể đi vào xu hướng đa đầu, vì vậy làm nhiều khi đường đua phá vỡ K tiếp theo mở đường; khi giá phá vỡ đường đua, cho rằng thị trường có thể đi vào xu hướng trống, vì vậy làm trống khi đường đua phá vỡ K tiếp theo mở đường.

  3. Một khi giá giảm trở lại hoặc phá vỡ đường mòn, xu hướng được coi là đảo chiều, và tại thời điểm này, nó sẽ xóa bỏ các vị trí đầu nhiều hoặc đầu trống hiện tại.

  4. Để kiểm soát rủi ro, điểm dừng lỗ sau khi tháo lỗ được thiết lập là giá mở vị trí trừ hoặc thêm một giá nhảy tối thiểu.

Chiến lược dựa trên phá vỡ kênh này đơn giản và trực tiếp, xem xét hành vi giá cả và kết hợp các đặc điểm xu hướng, dễ vận hành và ổn định.

Phân tích lợi thế

Chiến lược này có một số lợi thế:

  1. Chiến lược logic rõ ràng, đơn giản, dễ hiểu và thực hiện, thực tiễn.

  2. Sử dụng đường Dongxian để đánh giá xu hướng, có thể lọc hiệu quả tiếng ồn và nhận ra tín hiệu đột phá đáng tin cậy.

  3. Thiết lập dừng lỗ sau khi thực hiện nhiều thời gian ngắn là hợp lý, có thể kiểm soát tốt tổn thất đơn lẻ.

  4. Bất kể tình trạng thị trường là gì, chiến lược này có thể được thực hiện để nắm bắt các xu hướng tiềm ẩn miễn là giá có một đột phá hiệu quả.

  5. Các tham số chiến lược ít hơn, không dễ dàng phù hợp, có nhiều không gian tối ưu hóa tham số, có tính linh hoạt cao.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Các chiến lược theo xu hướng, không thể nắm bắt được sự thay đổi.

  2. Đi quá gần điểm dừng có thể bị dừng bởi biến động ngắn của giá.

  3. Không thiết lập đúng chiều dài đường dẫn sẽ làm tăng khả năng phá vỡ giả.

Các biện pháp đối phó với những rủi ro trên có thể bao gồm:

  1. Kết hợp với các chỉ số khác để xác định các tín hiệu đảo ngược tiềm ẩn, tránh theo dõi cưỡng bức.

  2. Thiết lập một lệnh dừng hợp lý để khóa lợi nhuận, chứ không phải là lệnh dừng ban đầu.

  3. Kiểm tra các giá trị tham số khác nhau để tìm ra sự kết hợp tham số tốt nhất.

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

Chiến lược này có thể được tối ưu hóa thêm:

  1. Thử chiến lược phá vỡ hai kênh, một kênh được sử dụng để xác định điểm vào và kênh khác được sử dụng để xác định điểm dừng hoặc dừng.

  2. Sau khi giá phá vỡ một kênh nhất định, chúng ta sẽ mở lại để lọc ra một số phá vỡ giả.

  3. Thêm bộ lọc cho khối lượng giao dịch hoặc chỉ số biến động để tránh giao dịch sai khi giá dao động mạnh.

  4. Thử các chiến lược giữ vị trí khác nhau, chẳng hạn như chiến lược theo xu hướng hoặc chiến lược đảo ngược, nhiều kết hợp có thể mang lại kết quả tốt hơn.

  5. Thêm mô-đun quản lý rủi ro, kiểm soát tổn thất tối đa trong một ngày, thu hồi tối đa, v.v.

Tóm tắt

Chiến lược phá vỡ kênh TCM nói chung là một chiến lược theo dõi xu hướng ngắn hạn rất thực tế. Nó đánh giá hành vi giá, xác định sự thay đổi trong xu hướng tiềm năng, sử dụng phá vỡ kênh để mở vị trí.

Mã nguồn chiến lược
/*backtest
start: 2023-11-03 00:00:00
end: 2023-12-03 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
// Step 1. Define strategy settings
strategy(title="Price action and breakout Channel Forexrn", overlay=true,
     pyramiding=0, initial_capital=100000,
     commission_type=strategy.commission.cash_per_order,
     commission_value=4, slippage=2)

dochLen = input.int(60, title="Price action and breackout Channel Forexrn")

// Position sizing inputs
usePosSize    = input.bool(true, title="Use Position Sizing?")
atrLen        = input.int(10, title="ATR Length")
atrRiskOffset = input.float(4, title="ATR Risk Offset Multiple", step=0.25)

maxRisk = input.float(2, title="Max Position Risk %", step=.25, 
     minval=0.25, maxval=15)
maxExposure = input.float(10, title="Max Position Exposure %", step=1, 
     minval=1, maxval=100)
marginPerc = input.int(10, title="Margin %", minval=1, maxval=100)

// Step 2. Calculate strategy values
upperband = ta.highest(high, dochLen)[1]
lowerband = ta.lowest(low, dochLen)[1]

// Calculate position size
riskEquity = (maxRisk * 0.01) * strategy.equity
riskTrade  = (ta.atr(atrLen) * atrRiskOffset) * syminfo.pointvalue

maxPos = ((maxExposure * 0.01) * strategy.equity) /
     ((marginPerc * 0.01) * (close * syminfo.pointvalue))

posSize = usePosSize ? math.min(math.floor(riskEquity / riskTrade), maxPos) : 1

// Step 3. Output strategy data
plot(upperband, color=color.green, linewidth=2, title="DoCh Upperband")
plot(lowerband, color=color.red, linewidth=2, title="DoCh Lowerband")

// Step 4. Determine trading conditions
tradeWindow  = true

tradeAllowed = tradeWindow and bar_index > dochLen

// Step 5. Submit entry orders
if tradeAllowed
    if strategy.position_size < 1
        strategy.entry("EL", strategy.long, qty=posSize,
             stop=upperband + syminfo.mintick)

    if strategy.position_size > -1
        strategy.entry("ES", strategy.short, qty=posSize,
             stop=lowerband - syminfo.mintick)

// Step 6. Submit exit orders
if not tradeWindow
    strategy.close_all()