Chiến lược này xây dựng các kênh dài và ngắn, kiểm tra lại các kênh đột phá một cách có hệ thống.
Xây dựng kênh dài với giá cao nhất trong một khoảng thời gian, và kênh ngắn với giá thấp nhất.
Mua khi giá phá vỡ trên đường kênh trên.
Bán khi giá phá vỡ dưới đường kênh dưới.
Có thể đặt phạm vi ngày backtest để xác minh chiến lược.
Các quy tắc đơn giản và rõ ràng để giao dịch các kênh đột phá.
Các kênh xác định thị giác phạm vi giá.
Có khả năng tăng động lực sau khi phá vỡ.
Kiểm tra hậu quả xác minh hiệu quả chiến lược trong lịch sử.
Khái niệm thoát kênh đơn giản và trực quan.
Mã ngắn gọn dễ sửa đổi và tối ưu hóa.
Rủi ro của các vụ thoát sai và rút lui sau vụ thoát ban đầu.
Không có cách hiệu quả để thiết lập dừng và ra khỏi.
Các thông số kênh không đúng ảnh hưởng tiêu cực đến hiệu suất.
Kết quả xét nghiệm có thể có thiên vị về tương lai.
Hiệu suất giao dịch thực có thể khác nhau rất nhiều so với backtest.
Kiểm tra các thông số để tìm kết hợp tối ưu.
Thêm thêm các yếu tố khác để lọc ra các sự đột phá giả.
Xây dựng các cơ chế dừng lỗ và lấy lợi nhuận.
xử lý dữ liệu backtest đúng cách để loại bỏ sự thiên vị.
Xác minh chiến lược trên các điều kiện thị trường khác nhau thông qua backtest.
Giao dịch giấy để cấu hình các tham số cho giao dịch trực tiếp.
Chiến lược này kiểm tra lại các quy tắc đột phá kênh đơn giản, dễ vận hành nhưng đòi hỏi sự tinh tế cho sự ổn định.
/*backtest start: 2023-08-20 00:00:00 end: 2023-08-30 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 //strategy(title = "Backtest Donchian Teixeira", default_qty_type = strategy.fixed, default_qty_value = 100, overlay = true, commission_type = strategy.commission.cash_per_order, commission_value = 2.50, precision = 2, calc_on_every_tick = true, pyramiding = 0, initial_capital = 10000) testStartYear = input(2000, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(1, "Backtest Start Day") testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 00, 00) testEndYear = input(2018, "Backtest End Year") testEndMonth = input(12, "Backtest End Month") testEndDay = input(1, "Backtest End Day") testPeriodEnd = timestamp(testStartYear, testStartMonth, testStartDay, 23, 59) window() => true //nao funciona length1 = input(20, minval=1, title="Upper Channel") length2 = input(20, minval=1, title="Lower Channel") dcUpper = highest(length1) dcLower = lowest(length2) plot(dcLower, style=line, linewidth=1, color=red, offset=1) plot(dcUpper, style=line, linewidth=1, color=lime, offset=1) plot(dcLower, style=line, linewidth=1, color=gray) if (strategy.position_size == 0) strategy.entry("COMPRA", true, stop = dcUpper) if (strategy.position_size > 0) strategy.exit("VENDA", stop = dcLower)