Chiến lược giao dịch định lượng đa yếu tố


Ngày tạo: 2023-09-13 14:46:59 sửa đổi lần cuối: 2023-09-13 14:46:59
sao chép: 0 Số nhấp chuột: 672
1
tập trung vào
1617
Người theo dõi

Một chiến lược giao dịch định lượng đa yếu tố, chiến lược này xem xét tổng hợp các yếu tố cân bằng và yếu tố chỉ số dao động để kiểm soát rủi ro và tăng sự ổn định. Bài viết này sẽ giới thiệu chi tiết về nguyên tắc, lợi thế và rủi ro có thể có của chiến lược giao dịch này.

Nguyên tắc chiến lược

Chiến lược này bao gồm ba mô-đun chính:

  1. Yếu tố bình đẳng

Xây dựng bộ lọc xu hướng bằng cách sử dụng các đường trung bình EMA của 5 chu kỳ khác nhau (8, 13, 21, 34 và 55 ngày). Các đường trung bình được sắp xếp từ ngắn đến dài, chỉ có đặc điểm xu hướng và tạo ra tín hiệu giao dịch khi đường trung bình ngắn xuyên qua đường trung bình dài.

  1. Các yếu tố chỉ số dao động

Đồng thời kết hợp hai chỉ số dao động lớn RSI và Stochastic để xác minh đột phá, tránh tạo ra nhiều đột phá giả trong thị trường lắc lư.

RSI có tham số 14, khi RSI ở trong khoảng 40-70 phù hợp với điều kiện làm nhiều, khi ở trong khoảng 30-60 phù hợp với điều kiện làm ngắn.

Stochastic tham số là ((14,3,3), khi K đường trong phạm vi 20-80 phù hợp với điều kiện làm nhiều, trong phạm vi 5-95 phù hợp với điều kiện làm không.

  1. Nhập và thoát logic

Chỉ khi yếu tố đường trung bình và yếu tố chỉ số dao động đồng thời phù hợp, tín hiệu ra sân sẽ được kích hoạt; khi bất kỳ yếu tố nào không còn phù hợp, tín hiệu ra sân sẽ được tạo ra.

Toàn bộ chiến lược sử dụng một cơ chế lọc đa yếu tố nghiêm ngặt, đảm bảo tín hiệu giao dịch ổn định và đáng tin cậy trong khi vẫn duy trì tỷ lệ thắng cao.

Lợi thế chiến lược

  • Thiết kế đa yếu tố có hiệu quả trong việc lọc tiếng ồn thị trường và tránh giao dịch quá mức
  • Đồng thời xem xét các yếu tố xu hướng và đảo ngược, cùng với lợi thế của theo dõi xu hướng và giao dịch tại chỗ
  • Kết hợp đường trung bình với chỉ số dao động, có thể bắt được điểm đảo ngược trong xu hướng
  • Không gian tối ưu hóa lớn, có thể đạt được hiệu quả chiến lược tốt hơn bằng cách điều chỉnh tham số

Dấu hiệu nguy cơ

  • Tỷ lệ tín hiệu chiến lược đa yếu tố thấp, có thể bỏ lỡ một số cơ hội giao dịch
  • Đường trung bình bị tụt hậu nên được xác minh kết hợp với chỉ số chu kỳ ngắn hơn
  • Chỉ số dao động dễ tạo ra tín hiệu giả, nên chỉ là yếu tố phụ trợ
  • Cần tối ưu hóa các tham số thường xuyên để thích ứng với môi trường thị trường thay đổi

Tóm tắt

Chiến lược này đã kết hợp thành công các ưu điểm của theo dõi xu hướng và giao dịch đảo ngược, mô hình đa yếu tố kiểm soát rủi ro hiệu quả, có thể thu được lợi nhuận vượt trội ổn định. Đây là một mô hình chiến lược giao dịch định lượng rất thực tế, đáng để cộng đồng trí tuệ nhân tạo nghiên cứu và áp dụng sâu hơn.

Mã nguồn chiến lược
/*backtest
start: 2022-09-12 00:00:00
end: 2022-11-15 00:00:00
period: 2d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "Combined Strategy", default_qty_type = strategy.percent_of_equity, default_qty_value = 100, commission_type=strategy.commission.percent, commission_value = .0020, pyramiding = 0, slippage = 3, overlay = true)

//----------//
// MOMENTUM //
//----------//
ema8 = ema(close, 8)
ema13 = ema(close, 13)
ema21 = ema(close, 21)
ema34 = ema(close, 34)
ema55 = ema(close, 55)

plot(ema8, color=red, style=line, title="8", linewidth=1)
plot(ema13, color=orange, style=line, title="13", linewidth=1)
plot(ema21, color=yellow, style=line, title="21", linewidth=1)
plot(ema34, color=aqua, style=line, title="34", linewidth=1)
plot(ema55, color=lime, style=line, title="55", linewidth=1)

longEmaCondition = ema8 > ema13 and ema13 > ema21 and ema21 > ema34 and ema34 > ema55
exitLongEmaCondition = ema13 < ema55

shortEmaCondition = ema8 < ema13 and ema13 < ema21 and ema21 < ema34 and ema34 < ema55
exitShortEmaCondition = ema13 > ema55

// ----------  //
// OSCILLATORS //
// ----------- //
rsi = rsi(close, 14)
longRsiCondition = rsi < 70 and rsi > 40
exitLongRsiCondition = rsi > 70

shortRsiCondition = rsi > 30 and rsi < 60
exitShortRsiCondition = rsi < 30

// Stochastic
length = 14, smoothK = 3, smoothD = 3
kFast = stoch(close, high, low, 14)
dSlow = sma(kFast, smoothD)

longStochasticCondition = kFast < 80
exitLongStochasticCondition = kFast > 95

shortStochasticCondition = kFast > 20
exitShortStochasticCondition = kFast < 5

//----------//
// STRATEGY //
//----------//

longCondition = longEmaCondition and longRsiCondition and longStochasticCondition and strategy.position_size == 0
exitLongCondition = (exitLongEmaCondition or exitLongRsiCondition or exitLongStochasticCondition) and strategy.position_size > 0

if (longCondition)
    strategy.entry("LONG", strategy.long)
if (exitLongCondition)
    strategy.close("LONG")
    
shortCondition = shortEmaCondition and shortRsiCondition and shortStochasticCondition and strategy.position_size == 0
exitShortCondition = (exitShortEmaCondition or exitShortRsiCondition or exitShortStochasticCondition) and strategy.position_size < 0

if (shortCondition)
    strategy.entry("SHORT", strategy.short)
if (exitShortCondition)
    strategy.close("SHORT")