Chiến lược theo dõi xu hướng đa chỉ số

Tác giả:ChaoZhang, Ngày: 2023-09-23 15:19:46
Tags:

Tổng quan

Chiến lược này tích hợp nhiều chỉ số để xác định xu hướng và tạo ra các tín hiệu giao dịch dựa trên những thay đổi theo hướng. Nó kết hợp tốc độ trung bình động, STOCH và MACD để tạo thành một hệ thống theo xu hướng toàn diện và mạnh mẽ.

Chiến lược logic

Các chỉ số chính là:

  1. Tốc độ trung bình chuyển động: phản ánh đà tăng giá.

  2. STOCH: bán quá mức / mua quá mức cho những thay đổi xu hướng.

  3. MACD: Sự thay đổi xu hướng từ các đường trung bình động kép.

Các quy tắc giao dịch là:

  1. Tăng tốc độ trung bình chuyển động cho tín hiệu tăng.

  2. STOCH ở vùng mua quá mức cho tín hiệu giảm.

  3. MACD tích cực giao thoa cho tín hiệu tăng.

  4. Nhập khi bất kỳ 2 chỉ báo sắp xếp tín hiệu.

  5. Rút khi tín hiệu biến đổi.

Sự kết hợp đánh giá xu hướng từ nhiều chiều, lọc tiếng ồn cho các tín hiệu thuyết phục cao.

Ưu điểm

So với các chỉ số đơn lẻ, chiến lược kết hợp có những ưu điểm sau:

  1. Hình ảnh kết hợp cải thiện độ chính xác.

  2. Bộ lọc tập hợp làm giảm tín hiệu sai.

  3. Bao gồm các chỉ số xu hướng và đảo ngược trung bình.

  4. Các tín hiệu được sắp xếp đều có độ tin cậy cao, tránh những sự đột phá sai.

  5. Quy tắc đơn giản và rõ ràng, dễ thực hiện.

  6. Điều chỉnh tham số linh hoạt, độ bền.

  7. Áp dụng cho các khung thời gian khác nhau.

  8. Có thể huấn luyện trọng lượng chỉ số bằng máy học.

  9. Nói chung ổn định và lợi nhuận tốt hơn các chỉ số đơn lẻ.

Rủi ro

Mặc dù có lợi, những rủi ro cần xem xét bao gồm:

  1. Tăng độ phức tạp với nhiều chỉ số.

  2. Khó khăn tối ưu hóa tham số và cân nặng.

  3. Có thể có các tín hiệu chỉ số xung đột.

  4. Một số sự chậm trễ luôn tồn tại, không thể tránh được tất cả các tổn thất.

  5. Không chắc chắn thời gian giữ một hướng với yếu tố may mắn.

  6. Các tín hiệu tập hợp không thể loại bỏ rủi ro giao dịch xu hướng vốn có.

  7. Tần suất giao dịch cao làm tăng chi phí giao dịch.

  8. Cần theo dõi tỷ lệ lợi nhuận/rủi ro.

Những cải tiến

Dựa trên phân tích, các cải tiến có thể bao gồm:

  1. Đánh giá hiệu quả của chỉ số trên các thị trường khác nhau.

  2. Thêm kiểm tra độ bền tham số để ngăn ngừa quá mức.

  3. Tối ưu hóa trọng lượng chỉ số để giảm xung đột.

  4. Thực hiện dừng để hạn chế tổn thất nghiêm trọng.

  5. Sử dụng thời gian thoát để kiểm soát thời gian giữ không giới hạn.

  6. Đánh giá tác động của tần suất giao dịch đối với chi phí giao dịch.

  7. Bao gồm các hạn chế số liệu rủi ro.

  8. Kiểm tra độ bền trên nhiều thị trường.

  9. Tiếp tục xác nhận hiệu quả chiến lược.

Kết luận

Chiến lược này tạo ra các tín hiệu tập thể ổn định bằng cách tích hợp nhiều chỉ số để đánh giá xu hướng. Nhưng tối ưu hóa liên tục là chìa khóa cho bất kỳ chiến lược nào, theo dõi rủi ro và ngăn ngừa quá mức.


/*backtest
start: 2022-09-16 00:00:00
end: 2023-09-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// By TradeStation
//@version=5

strategy("Mov Avg Speed Strategy", overlay=true)

src = input(close, title="Source")

// MA Speed  
avg_len = input.int(50, minval=1, title="Avg Length", group="MA Speed")
roc_len = input.int(1, minval=1, title="Rate of Change Length", group="MA Speed")
avg_roc_len = input.int(10, minval=1, title="Avg Rate of Change Length", group="MA Speed")

// Stochastic
stoch_len = input.int(14, minval=1, title="Stochastic Length", group="Stochastic")
smooth_k = input.int(3, minval=1, title="Stochastic Smooth K", group="Stochastic")
overbought = input.float(80, title="Stochastic Overbought", group="Stochastic")
oversold = input.float(20, title="Stochastic Oversold", group="Stochastic")

// MACD
fast_length = input(12, title="Fast Length", group="MACD")
slow_length = input(26, title="Slow Length", group="MACD")
macd_avg_length = input.int(9, title="MACD Avg Length",  minval=1, group="MACD")

// MA Speed
avg = ta.sma(src, avg_len)
roc = ta.roc(avg, roc_len)
avg_roc = ta.sma(roc, avg_roc_len)
avg_roc_signal = avg_roc > 0 ? 1 : avg_roc < 0 ? -1 : 0 

// Stochastic k
k = ta.sma(ta.stoch(close, high, low, stoch_len), smooth_k)
stochastic_signal = k <= oversold ? 1 : k >= overbought ? -1 : 0

// MACD
fast_ma = ta.ema(src, fast_length)
slow_ma = ta.ema(src, slow_length)
macd = fast_ma - slow_ma
macd_avg = ta.ema(macd, macd_avg_length)
macd_signal = macd_avg > macd_avg[1] ? 1 : macd_avg < macd_avg[1] ? -1 : 0

// set the signal couint
long_count = 0
short_count = 0

if macd_signal == 1
    long_count += 1

else if macd_signal == -1
    short_count += 1
 
if stochastic_signal == 1
    long_count += 1

else if stochastic_signal == -1
    short_count += 1
 
if avg_roc_signal == 1
    long_count += 1

else if avg_roc_signal == -1
    short_count += 1

if (long_count >= 2)
    strategy.entry("Long", strategy.long)

if (short_count >= 2)
    strategy.entry("Short", strategy.short)

Thêm nữa