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


Ngày tạo: 2024-02-26 14:55:04 sửa đổi lần cuối: 2024-02-26 14:55:04
sao chép: 0 Số nhấp chuột: 712
1
tập trung vào
1617
Người theo dõi

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

Tổng quan

Chiến lược phá vỡ kênh Dongguan là một chiến lược theo dõi xu hướng dựa trên kênh giá. Chiến lược này sử dụng các giới hạn trên, dưới và đường trung chuyển trong kênh Dongguan để xác định xu hướng và phá vỡ giá để phát ra tín hiệu mua và bán.

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

Chiến lược này bắt đầu bằng cách tính giá cao nhất, giá thấp nhất và đường trung bình trong một chu kỳ nhất định. Cường trung bình giữa giá cao nhất và giá thấp nhất tạo thành một kênh giá, đường trung bình nằm ở giữa kênh. Khi giá từ dưới lên phá vỡ đường trung bình, coi đó là tín hiệu lạc quan, làm nhiều; khi giá từ trên xuống phá vỡ đường trung bình, coi đó là tín hiệu giảm giá, làm rỗng.

Cụ thể, chiến lược hoạt động qua các bước sau:

  1. Tính toán giá cao nhất 20 lần, dcUpper;
  2. Tính toán giá thấp nhất trong 20 kỳ, dcLower;
  3. Tính trung bình của dcUpper và dcLower, lấy dcAverage, làm đường trung bình của kênh;
  4. Vẽ ra ba đường dcUpper, dcLower và dcAverage tạo thành kênh Donchian;
  5. Khi giá đóng cửa lớn hơn đường trung bình dc, làm nhiều; Khi giá đóng cửa thấp hơn đường trung bình dc, làm giảm;
  6. Đánh giá lỗ hổng bằng: khi làm quá nhiều, nếu giá đóng cửa thấp hơn dcLower, xóa nhiều lệnh; khi làm trắng, nếu giá đóng cửa cao hơn dcAverage đường trung bình, xóa đơn trống.

Đây là nguyên tắc giao dịch cơ bản của chiến lược. Xác định xu hướng bằng cách nắm bắt giá phá vỡ kênh và, theo thời gian, chuyển hướng tại các điểm quan trọng.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Cơ sở lý thuyết chiến lược vững chắc, sử dụng xu hướng phán đoán kênh giá là một phương pháp phân tích kỹ thuật cổ điển và hiệu quả;
  2. Lập luận của chiến lược đơn giản, rõ ràng, dễ hiểu và dễ thực hiện.
  3. Tiến hành theo các chiến lược theo dõi xu hướng giao dịch định lượng, chủ yếu là đột phá, có nhiều cơ hội theo dõi xu hướng;
  4. Có cơ chế dừng lỗ và rút tiền rõ ràng để kiểm soát tổn thất đơn lẻ;
  5. Có thể điều chỉnh các tham số linh hoạt để thích ứng với các môi trường thị trường khác nhau.

Phân tích rủi ro

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

  1. Số lần bay nhiều có thể quá thường xuyên, làm tăng chi phí giao dịch và rủi ro trượt;
  2. Cài đặt vị trí dừng không hợp lý có thể gây ra dừng quá thường xuyên;
  3. Thiết lập tham số không đúng có thể dẫn đến tín hiệu giao dịch bị bỏ lỡ;
  4. Không phá vỡ xu hướng cuối cùng có thể gây thiệt hại.

Phản ứng:

  1. Điều chỉnh các tham số để kiểm soát tần suất giao dịch;
  2. Tối ưu hóa logic dừng lỗ để ngăn chặn lỗ hổng nhỏ;
  3. Thử nghiệm các môi trường thị trường khác nhau, điều chỉnh các tham số;
  4. Kết hợp với các chỉ số khác để lọc tín hiệu, tránh nguy cơ đột phá cuối cùng.

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

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

  1. Kết hợp với các chỉ số cấu trúc thị trường, xác định xu hướng và tránh giao dịch ngược;
  2. Tăng các điều kiện lọc để đảm bảo hiệu quả đột phá và giảm tín hiệu sai;
  3. Kết hợp các chỉ số biến động để đánh giá mức độ đột phá;
  4. Nhiều khung thời gian hoặc nhiều giống, để tăng sự ổn định;
  5. Thuật toán học máy tự động tối ưu hóa các tham số để thích ứng với sự thay đổi của thị trường

Tóm tắt

Chiến lược phá vỡ kênh Dogecoin nói chung là một chiến lược theo dõi xu hướng hiệu quả. Nó có cơ sở lý thuyết, logic đơn giản, thông qua kênh giá để đánh giá xu hướng và theo dõi, để nắm bắt lợi nhuận trong xu hướng. Đồng thời, chiến lược dựa trên breakout này cũng có một số rủi ro, cần tối ưu hóa các tham số và điều kiện lọc để làm cho chiến lược ổn định và thực tế hơn.

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

//@version=3

strategy(title = "dc", overlay = true)


testStartYear = input(2018, "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(testStartYear,testStartMonth,testStartDay,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

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)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)