Tài nguyên đang được tải lên... tải...

Chiến lược giao dịch định lượng

Tác giả:ChaoZhang, Ngày: 2025-01-10 15:47:53
Tags:MA

 Dual Timeframe Trend Reversal Candlestick Pattern Quantitative Trading Strategy

Tổng quan

Chiến lược này là một hệ thống giao dịch định lượng dựa trên hai mô hình nến cổ điển: Hammer và Hanging Man. Nó dự đoán các bước ngoặt tiềm năng của thị trường bằng cách xác định các mô hình đảo ngược này. Hệ thống kết hợp nhiều chỉ số kỹ thuật để xác nhận tính hợp lệ của tín hiệu, bao gồm mối quan hệ giữa thân nến và bóng tối, hướng xu hướng và các yếu tố khác, đạt được việc nắm bắt chính xác các điểm đảo ngược thị trường.

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

Logic cốt lõi của chiến lược là xác định hai mô hình nến chính theo chương trình: 1. Hammer: xuất hiện trong xu hướng giảm, gợi ý khả năng đảo ngược lên. Được đặc trưng bởi một cơ thể nhỏ, bóng dưới dài (ít nhất gấp đôi chiều dài cơ thể), và tối thiểu hoặc không có bóng trên. 2. Hanging Man: xuất hiện trong xu hướng tăng, gợi ý khả năng đảo ngược xuống. Các đặc điểm tương tự như Hammer nhưng xuất hiện ở các vị trí khác nhau với ý nghĩa ngược lại.

Chiến lược định lượng các mô hình này thông qua các tham số nghiêm ngặt, bao gồm: - Số nhân chiều dài cơ thể nến tối thiểu - Tối thấp hơn để tỷ lệ chiều cao nến - Thời gian giữ

Ưu điểm chiến lược

  1. Xác định có hệ thống: Xác định chính xác các tín hiệu đảo ngược thị trường theo chương trình, tránh phán đoán chủ quan của con người.
  2. Rủi ro được kiểm soát: Thiết lập thời gian nắm giữ rõ ràng, tránh rủi ro từ việc nắm giữ vị trí quá mức.
  3. Hiển thị tín hiệu: Hiển thị tín hiệu giao dịch trực quan trên biểu đồ để phân tích và tối ưu hóa.
  4. Các thông số linh hoạt: Có thể điều chỉnh các thông số dựa trên các điều kiện thị trường khác nhau, cải thiện khả năng thích nghi chiến lược.

Rủi ro chiến lược

  1. Nguy cơ phá vỡ sai: Các mô hình đảo ngược có thể tạo ra các tín hiệu sai, đòi hỏi xác nhận từ các chỉ số kỹ thuật khác.
  2. Rủi ro thời gian: Thời gian giữ cố định có thể không nắm bắt đầy đủ tiềm năng biến động giá.
  3. Sự phụ thuộc vào môi trường thị trường: Có thể tạo ra các tín hiệu sai quá mức trong các thị trường khác nhau.

Hướng dẫn tối ưu hóa chiến lược

  1. Giới thiệu các bộ lọc xu hướng: Thêm các chỉ số như đường trung bình động để lọc xu hướng và cải thiện chất lượng tín hiệu.
  2. Thời gian giữ động: Điều chỉnh thời gian giữ dựa trên biến động thị trường.
  3. Xác nhận nhiều khung thời gian: Thực hiện các cơ chế xác nhận xu hướng khung thời gian cao hơn.
  4. Tối ưu hóa Stop Loss: Thêm các cơ chế dừng lỗ năng động để cải thiện kiểm soát rủi ro.

Tóm lại

Chiến lược này thực hiện lý thuyết phân tích kỹ thuật cổ điển một cách có hệ thống thông qua định lượng, chứng minh giá trị thực tế mạnh mẽ. Thông qua tối ưu hóa tham số và tinh chỉnh cơ chế kiểm soát rủi ro, chiến lược có thể duy trì hiệu suất ổn định trong các môi trường thị trường khác nhau.


/*backtest
start: 2024-12-10 00:00:00
end: 2025-01-08 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/

//@version=6
strategy("Hammer and Hanging Man Strategy", overlay=true)

// Input parameters
length = input.int(5, title="Minimum Candle Body Length (Multiplier)", minval=1)
shadowRatio = input.float(1, title="Lower Shadow to Candle Height Ratio", minval=1.0)
holdPeriods = input.int(26, title="Hold Periods (Bars)", minval=1)  // Holding period in bars

// Function to calculate the absolute value
absValue(x) =>
    x >= 0 ? x : -x

// Function to check if it is a Hammer
isHammer() =>
    bodyLength = absValue(close - open)
    candleHeight = high - low
    lowerShadow = math.min(open, close) - low
    upperShadow = high - math.max(open, close)
    smallBody = bodyLength <= candleHeight / length
    longLowerShadow = lowerShadow >= bodyLength * shadowRatio
    shortUpperShadow = upperShadow <= bodyLength
    smallBody and longLowerShadow and shortUpperShadow and close > open

// Function to check if it is a Hanging Man
isHangingMan() =>
    bodyLength = absValue(close - open)
    candleHeight = high - low
    lowerShadow = math.min(open, close) - low
    upperShadow = high - math.max(open, close)
    smallBody = bodyLength <= candleHeight / length
    longLowerShadow = lowerShadow >= bodyLength * shadowRatio
    shortUpperShadow = upperShadow <= bodyLength
    smallBody and longLowerShadow and shortUpperShadow and close < open

// Detect the candles
hammer = isHammer()
hangingMan = isHangingMan()

// Trading logic: Long on Hammer, Short on Hanging Man
if hammer
    strategy.entry("Long", strategy.long)  // Long entry on Hammer

if hangingMan
    strategy.entry("Short", strategy.short)  // Short entry on Hanging Man

// Exit after X bars
if strategy.position_size > 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= holdPeriods
    strategy.close("Long")

if strategy.position_size < 0 and bar_index - strategy.opentrades.entry_bar_index(0) >= holdPeriods
    strategy.close("Short")

// Visualization of signals
plotshape(hammer, title="Hammer", location=location.belowbar, color=color.green, style=shape.labelup, text="Hammer")
plotshape(hangingMan, title="Hanging Man", location=location.abovebar, color=color.red, style=shape.labeldown, text="Hanging Man")

Có liên quan

Thêm nữa