Chiến lược hồi quy động của ông già Noel là một chiến lược giao dịch định lượng xác định các điểm vào và ra tiềm năng dựa trên mối quan hệ hồi quy động giữa giá và chỉ số thanh. Chiến lược này sử dụng một thông số trung bình động có thể điều chỉnh năng động để vẽ đường xu hướng hồi quy của giá. Bằng cách phân tích hướng của đường hồi quy, nó xác định liệu có nên vào hoặc ra khỏi các vị trí.
Cốt lõi của chiến lược này là tính toán mối quan hệ hồi quy tuyến tính giữa giá và chỉ số thanh. Đầu tiên nó tính toán trung bình di chuyển đơn giản và độ lệch chuẩn của chiều dài N. Sau đó dựa trên hệ số tương quan mẫu và tỷ lệ lệ lệch chuẩn, nó có được độ nghiêng k và giao điểm b của đường hồi quy. Điều này dẫn đến phương trình hồi quy tuyến tính điều chỉnh động:
y = kx + b
nơi x là chỉ số thanh, và y là giá.
Theo mối quan hệ quy mô giữa giá trị hiện tại và giá trị trước của đường hồi quy, hướng xu hướng được xác định. Nếu đường hồi quy đang tăng và giá đóng cao hơn giá mở và giá cao nhất của thời điểm trước, một tín hiệu mua được tạo ra. Nếu đường hồi quy giảm và giá đóng thấp hơn giá mở và giá thấp nhất của thời điểm trước, một tín hiệu bán được tạo ra.
Cài đặt giá trị N không chính xác có thể làm cho đường hồi quy quá mịn hoặc nhạy cảm
Sự biến động giá trong ngắn hạn, phán đoán mối quan hệ hồi quy thất bại
Tỷ lệ vòng chỉ xem xét một điểm trong thời gian và có thể bỏ lỡ cực điểm địa phương
Chiến lược hồi quy động của ông già Noel sử dụng mối quan hệ hồi quy động giữa giá và thời gian để thực hiện một hệ thống giao dịch định lượng linh hoạt, trực quan và điều chỉnh. Logic của chiến lược này rõ ràng và dễ hiểu. Thông qua tối ưu hóa tham số, nó có thể được áp dụng cho các sản phẩm và chu kỳ giao dịch khác nhau.
/*backtest start: 2023-01-05 00:00:00 end: 2024-01-11 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 // Creator - TradeAI strategy('Moving Santa Claus Strategy | TradeAI', overlay=true) // Set the length of the moving average length = input(64) // Calculate the moving averages and standard deviations x = bar_index y = close x_ = ta.sma(x, length) y_ = ta.sma(y, length) mx = ta.stdev(x, length) my = ta.stdev(y, length) c = ta.correlation(x, y, length) slope = c * (my / mx) // Calculate the parameters of the regression line inter = y_ - slope * x_ reg = x * slope + inter // Set the line color based on whether EMA is moving up or down var color lineColor = na if (reg > reg[1] and (close > open and close > high[1])) lineColor := color.new(#d8f7ff, 0) if (reg < reg[1] and (close < open and close < low[1])) lineColor := color.new(#ff383b, 0) // Plot the EMA line with different thicknesses plot(reg, color=lineColor, title="EMA") var color lineColorrr = na if (reg > reg[1] and (close > open and close > high[1])) lineColorrr := color.new(#d8f7ff, 77) if (reg < reg[1] and (close < open and close < low[1])) lineColorrr := color.new(#ff383b, 77) plot(reg, color=lineColorrr, title="EMA", linewidth=5) var color lineColorr = na if (reg > reg[1] and (close > open and close > high[1])) lineColorr := color.new(#d8f7ff, 93) if (reg < reg[1] and (close < open and close < low[1])) lineColorr := color.new(#ff383b, 93) plot(reg, color=lineColorr, title="EMA", linewidth=10) var color lineColorrrr = na if (reg > reg[1] and (close > open and close > high[1])) lineColorrrr := color.new(#d8f7ff, 97) if (reg < reg[1] and (close < open and close < low[1])) lineColorrrr := color.new(#ff383b, 97) plot(reg, color=lineColorr, title="EMA", linewidth=15) var color lineColorrrrr = na if (reg > reg[1] and (close > open and close > high[1])) lineColorrrrr := color.new(#d8f7ff, 99) if (reg < reg[1] and (close < open and close < low[1])) lineColorrrrr := color.new(#ff383b, 99) plot(reg, color=lineColorr, title="EMA", linewidth=20) // Implement trading strategy based on EMA direction if reg > reg[1] and (close > open and close > high[1]) strategy.entry('buy', strategy.long) if reg < reg[1] and (close < open and close < low[1]) strategy.close('buy')