Chiến lược thoát kênh năng động

Tác giả:ChaoZhang, Ngày: 2023-11-13 10:33:44
Tags:

img

Tổng quan

Chiến lược này sử dụng chỉ số kênh năng động để xác định hướng thị trường dựa trên sự đột phá của kênh, nhằm mục đích nắm bắt hướng xu hướng. Nó chủ yếu tính toán mức cao nhất và thấp nhất trong một khoảng thời gian nhất định để hình thành các kênh trên và dưới, tạo ra tín hiệu giao dịch khi giá vượt qua các kênh.

Chiến lược logic

Chiến lược này sử dụng hàm đầu vào để đặt độ dài thời gian kênh thành 20 ngày. Sau đó nó tính toán mức cao nhất trong 20 ngày qua là dải trên và mức thấp nhất trong 20 ngày qua là dải dưới.

Khu vực phía trên dải trên được lấp đầy màu xanh lá cây, và khu vực phía dưới dải dưới được lấp đầy màu đỏ, tạo thành một kênh năng động.

Đường trung bình di chuyển 200 ngày ema ((close,200) cũng được vẽ như một tham chiếu để xác định xu hướng tổng thể.

Chiến lược này sử dụng EMA làm điểm chuẩn để đánh giá xu hướng chính. Khi đóng trên đường 200 ngày, nó chỉ ra xu hướng tăng. Khi đóng dưới, nó chỉ ra xu hướng giảm.

Trong một xu hướng tăng, nếu giá đóng phá vỡ dải trên, một tín hiệu dài được tạo ra. Trong một xu hướng giảm, nếu đóng phá vỡ dải dưới, một tín hiệu ngắn được tạo ra.

Lợi nhuận dừng dài được đặt ở dải dưới hoặc đường trung bình dựa trên các quy tắc dài / ngắn. Lợi nhuận dừng ngắn được đặt ở dải trên hoặc đường trung.

Phân tích lợi thế

  1. Kênh năng động thích nghi với xu hướng thị trường thay đổi.

  2. Các tín hiệu giao dịch được tạo ra dựa trên sự đột phá, theo nguyên tắc giao dịch xu hướng.

  3. Xu hướng chính được xác định bằng đường trung bình động, kết hợp với các kênh đột phá.

  4. Đặt lệnh dừng lỗ linh hoạt dựa trên điều kiện thị trường.

Phân tích rủi ro

  1. Việc đánh giá sai về xu hướng chính có thể lệch khỏi thị trường.

  2. Thiết lập thời gian kênh không chính xác làm tăng giao dịch không chính xác.

  3. Stop loss quá gần kênh có thể làm tăng việc dừng.

  4. Các tín hiệu đột nhập có một chút chậm trễ, có thể bỏ lỡ điểm xuất phát tốt nhất.

Giải pháp:

  1. Sử dụng nhiều chỉ số để đánh giá xu hướng chính, giảm lỗi.

  2. Tối ưu hóa các tham số thời gian kênh cho nhịp thị trường khác nhau.

  3. Điều chỉnh vị trí dừng lỗ để có đủ bộ đệm.

  4. Thêm bộ lọc vào tín hiệu nhập màn hình.

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

  1. Thêm thêm các chỉ số để đánh giá xu hướng chính, cải thiện độ chính xác.

  2. Tích hợp các chỉ số khối lượng để tránh sự đột phá sai.

  3. Tối ưu hóa các tham số thời gian kênh cho các sản phẩm khác nhau.

  4. Thực hiện stop loss theo dõi động.

  5. Thêm bộ lọc để cải thiện chất lượng tín hiệu và tránh giao dịch không cần thiết.

Kết luận

Chiến lược này theo nguyên tắc giao dịch xu hướng nói chung, sử dụng các kênh năng động để xác định phạm vi biến động và tạo ra tín hiệu từ sự đột phá. Nó có thể theo dõi hiệu quả những thay đổi xu hướng và là một chiến lược theo xu hướng đáng tin cậy. Nhưng các cơ chế đánh giá xu hướng chính và dừng lỗ cần tối ưu hóa hơn nữa và các điều kiện lọc nên được thêm để cải thiện độ bền. Chiến lược phù hợp với việc theo dõi xu hướng trung và dài hạn và có thể được kết hợp với các chiến lược khác trong danh mục đầu tư để phòng ngừa rủi ro.


/*backtest
start: 2023-10-13 00:00:00
end: 2023-11-12 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 Indexes", 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"])
longSL=input("Lower Low", "LONG SL", options=["Lower Low", "Basis"])
shortSL=input("Higher High", "SHORT SL", options=["Higher High", "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)
plot(ema(close,200), "ema", color=color.orange)

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=longSL=='Basis' ? mid : ll)

if (strategy.position_size<0)
    strategy.exit(id="Shorts Exit",stop=shortSL=='Basis' ? mid : hh)

Thêm nữa