Kênh Donchian với Chiến lược Trailing Stop


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

Kênh Donchian với Chiến lược Trailing Stop

Tổng quan

Chiến lược này là chiến lược theo xu hướng dựa trên chỉ số đường Đông Dương, kết hợp với dừng động của chỉ số ATR để khóa lợi nhuận, thuộc loại chiến lược theo xu hướng.

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

Chiến lược này sử dụng chỉ số đường truyền Đường Chiên với độ dài 20 chu kỳ, đường trung bình của đường là giá cao nhất và giá thấp nhất. Khi giá vượt qua đường trung bình trên đường, nó sẽ bị phá vỡ khi giá vượt qua đường trung bình dưới đường. Điều kiện thanh toán là giá chạm vào Dây dừng động, đường dừng được tính bằng giá thấp nhất của 3 đường K gần nhất trừ đi một phần ba giá trị chỉ số ATR như là một dừng nhiều, cao nhất của 3 đường K gần đây cộng với một phần ba giá trị chỉ số ATR như là một dừng trống.

Phân tích lợi thế

Chiến lược này có những lợi thế chính như sau:

  1. Sử dụng đường Dongxian để đánh giá xu hướng thị trường, có thể nắm bắt xu hướng hiệu quả
  2. Kết hợp với ATR động theo dõi dừng lỗ, có thể kiểm soát rủi ro hiệu quả trong khi đảm bảo lợi nhuận
  3. Khi tính toán đường dừng lỗ, hãy thêm yếu tố ATR để tính đến sự biến động của thị trường, và dừng lỗ sẽ hợp lý hơn
  4. Phương pháp tính toán của đường dừng là ổn định và đáng tin cậy hơn, tránh dừng quá gần, giảm khả năng dừng bị truy tố

Phân tích rủi ro

Chiến lược này có những rủi ro:

  1. Trong khi đó, có một số trường hợp có thể xảy ra, trong đó có cả trường hợp các công cụ của Dongji Antong bị chậm phát triển, và có thể bị bỏ lỡ cơ hội rút ngắn.
  2. Thiết lập tham số ATR không chính xác có thể dẫn đến dừng quá nhẹ hoặc quá gần
  3. Cơ chế đánh giá xu hướng tương đối đơn giản, có thể có nhiều tín hiệu sai trong thị trường tổng hợp
  4. Thiếu cơ chế phán đoán kháng cự hỗ trợ hiệu quả, thời điểm tham gia thị trường có thể không phù hợp

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

Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:

  1. Thêm các chỉ số khác để tránh giao dịch thường xuyên trong thị trường không có xu hướng rõ ràng
  2. Tăng khả năng đánh giá kháng cự hỗ trợ, tối ưu hóa thời gian nhập cảnh
  3. Thử các phương thức tính toán dừng lỗ động khác để tối ưu hóa thêm chiến lược dừng lỗ
  4. Kiểm tra ảnh hưởng của các tham số chu kỳ khác nhau của kênh Dongxian đến hiệu quả của chiến lược
  5. Thêm các điều kiện lọc như khối lượng giao dịch hoặc số lượng tăng để giảm tín hiệu sai

Tóm tắt

Chiến lược này nói chung là một chiến lược theo dõi xu hướng thực tế đơn giản, xác định hướng xu hướng thông qua kênh Tăng Chiên và sử dụng dừng động để khóa lợi nhuận, có thể theo dõi hiệu quả xu hướng capture. Chiến lược có tính thực tế mạnh mẽ, nhưng có thể được tối ưu hóa thêm bằng nhiều cách để chiến lược vẫn có thể duy trì thu nhập ổn định trong môi trường thị trường phức tạp hơn.

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

//@version=4
strategy(title = "dc",  overlay = true)
atrLength = input(title="ATR Length:", defval=20, minval=1)

testStartYear = input(2017, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2018, "Backtest Start Year")
testEndMonth = input(12)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testEndYear,testEndMonth,testEndDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = input(20, "Period")

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2
atrValue=atr(atrLength)


useTakeProfit   = na
useStopLoss     = na
useTrailStop    = na
useTrailOffset  = na
//@version=1
Buy_stop = lowest(low[1],3) - atr(20)[1] / 3
plot(Buy_stop, color=red, title="buy_stoploss")
Sell_stop = highest(high[1],3) + atr(20)[1] / 3
plot(Sell_stop, color=green, title="sell_stoploss")

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=(close > dcAverage) and cross(close,dcAverage))
strategy.close("simpleBuy",when= ( close< Buy_stop))
    
strategy.entry("simpleSell", strategy.short,when=(close < dcAverage) and cross(close,dcAverage) )
strategy.close("simpleSell",when=( close > Sell_stop))
    
//strategy.exit("Exit simpleBuy", from_entry = "simpleBuy", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)
//strategy.exit("Exit simpleSell", from_entry = "simpleSell", profit = useTakeProfit, loss = useStopLoss, trail_points = useTrailStop, trail_offset = useTrailOffset)