
Chiến lược theo dõi xu hướng đường Đông Dương là một chiến lược theo dõi xu hướng dựa trên chỉ số đường Đông Dương. Chiến lược này tạo ra đường lên, đường xuống và đường giữa bằng cách tính toán giá cao nhất và giá thấp nhất trong các chu kỳ khác nhau để đánh giá xu hướng thị trường và thực hiện giao dịch theo dõi xu hướng.
Chiến lược này trước tiên thiết lập phạm vi thời gian phản hồi, sau đó xác định quy tắc mở nhiều đầu và trống.
Đối với nhiều đầu, khi giá lên đường đi qua đường Dongxian, hãy mở nhiều đầu; khi giá xuống đường, hãy mở nhiều đầu.
Đối với đầu trống, khi giá đi xuống đường sắt của đường Đông Dương, hãy mở đầu trống; khi giá đi lên đường sắt, hãy mở đầu trống.
Chiến lược này cũng giới thiệu chỉ số ATR để thiết lập cơ chế dừng lỗ thoát. Giá trị ATR được nhân bởi một hệ số làm điểm dừng lỗ.
Cụ thể, dừng nhiều đầu là giá mở vị trí trừ giá dừng ATR; dừng đầu trống là giá mở vị trí cộng với giá dừng ATR.
Chiến lược này cùng một lúc vẽ đường ray lên và xuống của kênh Đồng Chiên, và đường dừng ATR, tạo thành một hệ thống giao dịch hoàn chỉnh.
Sử dụng đường Dongxian để xác định xu hướng, có khả năng theo dõi xu hướng.
Các tham số Smoother của đường Dongxian có thể điều chỉnh, có thể tìm kiếm sự kết hợp tham số tốt nhất bằng cách tối ưu hóa tham số.
Kết hợp với các chỉ số ATR thiết lập cơ chế dừng lỗ, có thể kiểm soát rủi ro hiệu quả.
Các quy tắc giao dịch đa đầu trống rất rõ ràng và dễ hiểu, phù hợp cho việc học ban đầu.
Cấu trúc mã rõ ràng, dễ hiểu và phát triển thứ hai.
Có một số rủi ro giao dịch sai lệch đối với biến động giá trong phạm vi tổng hợp.
Thiết lập phạm vi dừng ATR không đúng, có thể gây ra dừng quá rộng hoặc quá nhạy cảm.
Vị trí đầu tư nhiều đầu tư có thể quá tập trung và cần thiết phải thiết lập các quy tắc quản lý vị trí.
Cần xác minh tính phù hợp của các giống giao dịch, các tham số của các giống khác nhau cần được tối ưu hóa độc lập.
Chi phí giao dịch cũng cần phải được xem xét và điều chỉnh trong môi trường chi phí cao.
Tối ưu hóa các tham số chu kỳ của đường Dongxian để tìm các tham số kết hợp tốt nhất.
Thử các thiết lập hệ số ATR khác nhau để tìm phạm vi dừng tối ưu.
Cố gắng sử dụng lệnh dừng di động để khóa lợi nhuận dựa trên ATR.
Điều chỉnh tỷ lệ vị thế nhiều đầu trống phù hợp với tình hình thị trường.
Kiểm tra sức khỏe của các tham số khác nhau của giống, tìm kiếm các kết hợp tham số chung.
Các nhà nghiên cứu đã đưa ra các bộ lọc như chỉ số ngón tay để cải thiện sự ổn định của chiến lược.
Khả năng thích ứng với các tham số thử nghiệm trong môi trường chi phí giao dịch khác nhau.
Nhìn chung, chiến lược này là một chiến lược theo dõi xu hướng đơn giản, tập trung vào việc áp dụng đường Đông Dương. Ưu điểm của chiến lược này là dễ hiểu và phù hợp để học, nhưng vẫn cần tối ưu hóa cho các tham số và rủi ro.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © kriswaters
//@version=4
strategy("Donchian Channels Strategy by KrisWaters", overlay=true )
// Date filter
FromDay = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromYear = input(defval = 2017, title = "From Year", minval = 1900)
ToDay = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToMonth = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToYear = input(defval = 9999, title = "To Year", minval = 2017)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00) // backtest start window
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59) // backtest finish window
window() => true // create function "within window of time"
// Strategy Settings
canEnterLong = input(true, title="Can Enter Long Position")
canEnterShort = input(false, title="Can Enter Short Position")
showLongChannel = input(true, title="Show Donchian Long Channels")
showShortChannel = input(false , title="Show Donchian Short Channels")
useAtrAsStopRule = input(false, title="Enable ATR Stop Rule")
// DonCcian Channel Lengths
longUpperLength = input(20, minval=1)
longLowerLength = input(10, minval=1)
shortUpperLength = input(10, minval=1)
shortLowerLength = input(20, minval=1)
// Donchian indicator calculations
longUpperValue = highest(high,longUpperLength)
longLowerValue = lowest(low,longLowerLength)
shortUpperValue = highest(high,shortUpperLength)
shortLowerValue = lowest(low,shortLowerLength)
// Plot Donchian Channels
uLong = plot(showLongChannel ? longUpperValue : na, color=color.green, offset=1)
lLong = plot(showLongChannel ? longLowerValue : na, color=color.green, offset=1)
uShort = plot(showShortChannel ? shortUpperValue : na, color=color.red, offset=1)
lShort = plot(showShortChannel ? shortLowerValue : na, color=color.red, offset=1)
// Styling
fill(uLong,lLong, color=color.green, transp=95, title="Long Arkaplan")
fill(uShort,lShort, color=color.red, transp=95, title="Short Arkaplan")
// Stop-loss value calculations
atrMultiplier = 2.0
atrValue = atr(20)
longStopValue = open - (atrMultiplier*atrValue)
shortStopValue = open + (atrMultiplier*atrValue)
// Plot stop-loss line
plot(useAtrAsStopRule ? longStopValue : na, color=color.red, linewidth=2, offset=1)
plot(useAtrAsStopRule ? shortStopValue : na, color=color.red, linewidth=2, offset=1)
// Long and Short Position Rules
if canEnterLong and na(longUpperValue) != true and na(longLowerValue) != true and window()
strategy.entry("Long", true, stop=longUpperValue)
strategy.exit("Long Exit", "Long", stop=useAtrAsStopRule ? max(longLowerValue,longStopValue) : longLowerValue)
if canEnterShort and na(shortUpperValue) != true and na(shortLowerValue) != true and window()
strategy.entry("Short", false, stop=shortLowerValue)
strategy.exit("Short Exit", "Short", stop=useAtrAsStopRule ? min(shortUpperValue,shortStopValue) : shortUpperValue)