
Chiến lược này hình thành lên xuống đường bằng cách tính toán giá cao nhất và giá thấp nhất trong một chu kỳ nhất định, và làm nhiều hơn khi giá phá vỡ đường lên, và giảm bớt khi giá giảm xuống đường. Chiến lược này nắm bắt giai đoạn mạnh mẽ của xu hướng, để đánh giá thời gian nhập cảnh bằng cách phá vỡ xu hướng.
Chiến lược này bắt đầu bằng cách tính giá cao nhất và giá thấp nhất của 20 đường K trước đó, tạo ra đường lên và đường xuống. Khi giá đóng cửa đường K hiện tại cao hơn đường lên, hãy làm nhiều hơn; Khi giá giảm xuống đường xuống, hãy dừng lại.
Cụ thể, chiến lược tính toán giá cao nhất và giá thấp nhất của 20 đường K gần đây bằng hàm cao nhất và thấp nhất để tạo ra phạm vi. Sau đó, đánh giá xem giá đóng cửa đường K hiện tại có cao hơn đường lên không, và nếu có, hãy làm nhiều hơn; Nếu giá giảm xuống đường, hãy dừng vị trí bằng phẳng.
Chiến lược này dựa vào sự phá vỡ xu hướng để đánh giá thời gian nhập cảnh, thuộc chiến lược theo dõi xu hướng. Nó chỉ làm nhiều hơn không làm trống và áp dụng cho các giống có đặc điểm xu hướng rõ ràng.
Chiến lược này có những ưu điểm sau:
Chiến lược này đơn giản, rõ ràng và dễ hiểu.
Sử dụng đợt phá vỡ xu hướng để đánh giá thời gian nhập cảnh và nắm bắt giai đoạn mạnh của xu hướng.
Sử dụng dừng di chuyển để kiểm soát rủi ro, có thể hạn chế hiệu quả tổn thất đơn lẻ.
Chỉ làm nhiều mà không làm rỗng, áp dụng cho các giống có xu hướng rõ ràng.
Bạn có thể tùy chỉnh các tham số, điều chỉnh độ dài chu kỳ và mức độ dừng lỗ.
Chiến lược này cũng có những rủi ro sau:
Không thể đoán được sự thay đổi trong xu hướng, có thể dẫn đến việc giết người theo đuổi.
Vị trí dừng lỗ dễ bị kích hoạt bởi giá tăng vọt lớn.
Có thể có nhiều điểm dừng nhỏ khi xu hướng thay đổi.
Chỉ cần làm nhiều hơn mà không làm rỗng, bạn không thể tận dụng xu hướng giảm.
Thiết lập tham số không đúng có thể dẫn đến quá nhạy cảm hoặc chậm chạp.
Chiến lược này có thể được tối ưu hóa theo các khía cạnh sau:
Tăng các chỉ số định hướng xu hướng, tránh làm nhiều hơn khi xu hướng đảo ngược. Ví dụ, thêm các chỉ số định hướng xu hướng như MACD.
Tối ưu hóa chiến lược dừng di động, thiết lập kiểm soát rủi ro hợp lý hơn. Ví dụ: áp dụng dừng di động theo biến động giá.
Thêm chiến lược đầu tư không có đầu tư, bạn có thể mở vị trí để kiếm lợi nhuận trong xu hướng giảm.
Các tham số được thử nghiệm và tối ưu hóa để tìm ra sự kết hợp tham số tối ưu.
Thêm chức năng tối ưu hóa tham số tự động, điều chỉnh các tham số động theo tình hình thị trường.
Xác định chiến lược kết hợp nhiều chu kỳ thời gian để tránh bị lừa bởi một chu kỳ đơn lẻ.
Chiến lược tổng thể của chiến lược này rất rõ ràng và dễ hiểu, sử dụng phá vỡ xu hướng để đánh giá thời gian nhập cảnh, có thể nắm bắt giai đoạn mạnh của xu hướng. Đồng thời sử dụng dừng chân di động để kiểm soát rủi ro. Tuy nhiên, chiến lược này cũng có một số rủi ro, chẳng hạn như không xác định xu hướng, dừng lỗ bị phá vỡ. Chúng ta có thể cải thiện từ việc tối ưu hóa phán đoán xu hướng, chiến lược dừng lỗ, chiến lược không đầu, v.v., để làm cho chiến lược toàn diện và ổn định hơn.
/*backtest
start: 2023-10-22 00:00:00
end: 2023-10-24 17:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("Donchian Wicks Strategy - Long Only with Customizable Donchian Exit and Stop Loss", "DWS", overlay = true)
// INPUTS
iLength = input(20, "Length", minval = 1)
stopLossPercent = input(1.0, "Stop Loss Percentage", type=input.float) / 100
// SETTING
float up = na
up := close > open ? high : nz(up[1])
float down = na
down := close < open ? low : nz(down[1])
highest = highest(up, iLength)
lowest = lowest(down, iLength)
// PLOT
p1 = plot(highest, "Highest", color.black, 2)
p2 = plot(lowest, "Lowest", color.black, 2)
fill(p1, p2, color.new(color.navy, 90), title="Range")
// ENTRY SIGNALS
wickDown = low < lowest
// STRATEGY IMPLEMENTATION
strategy.entry("Buy", strategy.long, when = wickDown)
strategy.exit("Sell at Donchian High", from_entry="Buy", limit=highest)
// Customizable Stop Loss
stopLossLevel = close * (1 - stopLossPercent)
strategy.exit("Stop Loss", from_entry="Buy", stop=stopLossLevel)