Xu hướng hồi quy song tuyến theo chiến lược

Tác giả:ChaoZhang, Ngày: 2023-11-17 16:51:33
Tags:

img

Tổng quan

Chiến lược Bi-Linear Regression Trend Following sử dụng sự khác biệt giữa sự hồi quy tuyến tính nhanh và chậm để xác định xu hướng giá và sử dụng nó như là tín hiệu đầu vào. Nó đi dài khi sự hồi quy tuyến tính nhanh vượt qua ngưỡng và thoát ra khi nó vượt qua dưới. Nó cũng sử dụng EMA như một bộ lọc để chỉ nhập khi giá vượt quá EMA.

Chiến lược logic

Chiến lược này đầu tiên tính toán hai đường hồi quy tuyến tính với các giai đoạn khác nhau, một đường nhanh với giai đoạn ngắn hơn và một đường chậm với giai đoạn dài hơn. Sau đó nó tính toán sự khác biệt giữa hai, khi hồi quy nhanh trên hồi quy chậm, sự khác biệt là dương tính, cho thấy xu hướng tăng. Khi nhanh dưới chậm, sự khác biệt là âm, cho thấy xu hướng giảm.

Chiến lược này đi vào dài khi đường chênh lệch vượt qua trên ngưỡng và thoát ra khi nó vượt qua dưới. Nó cũng yêu cầu giá phải ở trên EMA 200 giai đoạn để lọc ra các chuyển động không theo xu hướng.

Phân tích lợi thế

  1. Phục hồi tuyến tính kép có thể nắm bắt xu hướng giá tốt.

  2. Bộ lọc EMA loại bỏ một số tín hiệu sai từ các động thái không theo xu hướng.

  3. Logic đơn giản và rõ ràng, dễ hiểu và thực hiện.

Phân tích rủi ro

  1. Thời gian LR không phù hợp có thể tạo ra tiếng ồn quá mức.

  2. Bộ lọc EMA có thể bỏ lỡ cơ hội trong xu hướng mạnh.

  3. Có xu hướng thất bại và thua lỗ trên các thị trường khác nhau.

Giải pháp:

  1. Tối ưu hóa thời gian LR để giảm tiếng ồn.

  2. Điều chỉnh năng động thời gian EMA dựa trên điều kiện thị trường.

  3. Thêm stop loss vào control losses.

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. Tối ưu hóa thời gian LR nhanh và chậm để tìm ra sự kết hợp tốt nhất.

  2. Hãy thử các bộ lọc khác như Bollinger Bands, KDJ thay vì EMA.

  3. Thêm stop loss động để kiểm soát rủi ro.

  4. Kết hợp với chọn cổ phiếu để chọn cổ phiếu xu hướng.

  5. Phát triển các thông số thích nghi dựa trên điều kiện thị trường.

Tóm lại

Chiến lược Bi-Linear Regression đơn giản và trực tiếp trong việc nắm bắt xu hướng với sự hồi quy tuyến tính kép và bộ lọc EMA. Nhưng nó cũng có những rủi ro cần phải được giải quyết thông qua tối ưu hóa tham số, dừng lỗ, v.v. Khi điều chỉnh đúng cách, nó có thể giao dịch hiệu quả thị trường xu hướng.


/*backtest
start: 2022-11-10 00:00:00
end: 2023-11-16 00:00:00
period: 1d
basePeriod: 1h
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/
// © TradingAmmo

//@version=4
strategy("Linear trend", overlay=false, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.075, currency='USD')
startP = timestamp(input(2017, "Start Year"), input(12, "Month"), input(17, "Day"), 0, 0)
end   = timestamp(input(9999, "End Year"),   input(1, "Month"),   input(1, "Day"),   0, 0)
_testPeriod() =>
    iff(time >= startP and time <= end, true, false)

src = close
len1 = input(defval=13, minval=1, title="Fast LR")
len2 = input(defval=55, minval=1, title="Slow LR")

lag1 = input(0, title="Lag for fast")
lag2 = input(0, title="Lag for slow")

threshold  = input(0,step=0.5, title="Threshold")

fast_lr = linreg(src, len1, lag1)
slow_lr = linreg(src, len2, lag2)
lr = fast_lr - slow_lr
plot_fast = plot(lr, color = lr > 0 ? color.green : color.red)
plot(threshold, color=color.purple)

long_condition = crossover(lr, threshold) and close > ema(close, 200) and _testPeriod()
strategy.entry('BUY', strategy.long, when=long_condition) 

short_condition = crossunder(lr, threshold) 
strategy.close('BUY', when=short_condition) 



Thêm nữa