Chiến lược đi xe trên kênh Donchian

Tác giả:ChaoZhang, Ngày: 2024-02-26 17:31:45
Tags:

img

Tổng quan

Chiến lược đi trên xu hướng kênh Donchian là một chiến lược theo xu hướng. Nó sử dụng kênh Donchian để xác định hướng xu hướng thị trường và đi vào thị trường khi một tín hiệu xu hướng được tạo ra để nắm bắt càng nhiều chuyển động xu hướng càng tốt. Trong khi đó, nó kết hợp trung bình động dài thời gian để lọc ra các tín hiệu sai.

Chiến lược logic

Chiến lược này chủ yếu dựa trên kênh Donchian. Kênh Donchian bao gồm một dải trên, một dải dưới và một dải giữa. Dải trên là mức cao nhất trong n ngày qua, dải dưới là mức thấp nhất trong n ngày qua, và dải giữa là mức trung bình của dải trên và dải dưới. Một tín hiệu mua được tạo ra khi giá vượt qua dải trên. Một tín hiệu bán được tạo ra khi giá vượt qua dải dưới.

Chiến lược này đầu tiên tính toán kênh Donchian 20 ngày, bao gồm dải trên, dải dưới và dải giữa. Sau đó nó kiểm tra xem giá có vượt qua các dải kênh hay không. Nếu giá đóng phá vỡ trên mức trung bình động 200 ngày VÀ giá đóng phá vỡ trên dải trên, một tín hiệu dài được tạo ra. Nếu giá đóng phá vỡ dưới mức trung bình động 200 ngày VÀ giá đóng phá vỡ dưới dải dưới, một tín hiệu ngắn được tạo ra.

Sau khi nhập vào các vị trí dài, stop loss được đặt ở dải dưới. Sau khi nhập vào các vị trí ngắn, stop loss được đặt ở dải trên.

Phân tích lợi thế

Chiến lược có những lợi thế sau:

  1. Nó có thể xác định hiệu quả hướng xu hướng thị trường.

  2. Kết hợp với đường trung bình động dài sẽ giúp lọc ra các tín hiệu sai một cách hiệu quả.

  3. Đặt dừng lỗ tại các dải kênh cho phép thoát nhanh và kiểm soát rủi ro hiệu quả.

  4. Logic chiến lược đơn giản và rõ ràng, dễ hiểu và thực hiện.

Phân tích rủi ro

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

  1. Nguy cơ đảo ngược xu hướng.

  2. Rủi ro tối ưu hóa tham số. Các tham số của kênh Donchian cần kiểm tra và tối ưu hóa liên tục, nếu không nó có thể ảnh hưởng đến hiệu suất chiến lược.

  3. Rủi ro giao dịch tần suất quá mức.

Hướng dẫn tối ưu hóa

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

  1. Thêm thêm các chỉ số để lọc tín hiệu, ví dụ như mô hình nến, chỉ số biến động vv, để tránh các tín hiệu sai.

  2. Tối ưu hóa các tham số như chiều dài kênh để tìm kết hợp tham số tối ưu.

  3. Sử dụng phương pháp dừng lỗ thích nghi theo biến động thị trường và nhu cầu kiểm soát rủi ro.

  4. Phân loại tín hiệu và áp dụng các mức dừng lỗ khác nhau để phân biệt tín hiệu mạnh và yếu.

Kết luận

Nói chung, Chiến lược đi trên xu hướng kênh Donchian là một chiến lược theo xu hướng tương đối đơn giản và thực tế. Nó có thể xác định hiệu quả các hướng xu hướng thị trường và nắm bắt hầu hết các chuyển động xu hướng. Trong khi đó, trung bình động dài hạn và băng tần kênh dừng lỗ giúp kiểm soát rủi ro. Chiến lược có nhiều chỗ để tối ưu hóa trong các khía cạnh như điều chỉnh tham số, lọc tín hiệu và phương pháp dừng lỗ v.v, để đạt được hiệu suất tốt hơn.


/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-16 00:00:00
period: 1h
basePeriod: 15m
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/
// © pratyush_trades

//@version=4
strategy("Donchian Channel Strategy", overlay=true)

length = input(20)
longRule = input("Higher High", "Long Entry", options=["Higher High", "Basis"])
shortRule = input("Lower Low", "Short Entry", options=["Lower Low", "Basis"])

hh = highest(high, length)
ll = lowest(low, length)

up = plot(hh, 'Upper Band', color = color.green)
dw = plot(ll, 'Lower Band', color = color.red)
mid = (hh + ll) / 2
midPlot = plot(mid, 'Basis', color = color.orange)
fill(up, midPlot, color=color.green, transp = 95)
fill(dw, midPlot, color=color.red, transp = 95)

if (close>ema(close,200))
    if (not na(close[length]))
        strategy.entry("Long", strategy.long, stop=longRule=='Basis' ? mid : hh)

if (close<ema(close,200))
    if (not na(close[length]))
        strategy.entry("Short", strategy.short, stop=shortRule=='Basis' ? mid : ll)

if (strategy.position_size>0)
    strategy.exit(id="Longs Exit",stop=ll)

if (strategy.position_size<0)
    strategy.exit(id="Shorts Exit",stop=hh)

Thêm nữa