Chiến lược giao dịch kết hợp trung bình động đôi và MACD là một chiến lược giao dịch định lượng sử dụng cả trung bình động và chỉ số động lực để tạo ra và xác nhận tín hiệu giao dịch. Bằng cách kết hợp khả năng theo dõi xu hướng của trung bình động và đặc điểm động lực của MACD, chiến lược này có thể nắm bắt hiệu quả đường viền của xu hướng thị trường thông qua việc thiết lập tiêu chí nhập và xuất nghiêm ngặt, đồng thời tránh rủi ro thu hẹp phạm vi lợi nhuận hoặc biến động thị trường có thể dẫn đến giảm lợi nhuận hoặc thậm chí mất mát.
Chiến lược này sử dụng sự kết hợp giữa đường trung bình di chuyển đơn giản (SMA) 20 giai đoạn và đường trung bình di chuyển theo hàm số (EMA) 5 giai đoạn. đường trung bình di chuyển theo hàm số 20 giai đoạn có thể làm mịn các biến động của thị trường hiệu quả và xác định xu hướng giá trung và dài hạn, trong khi đường EMA 5 giai đoạn gán trọng lượng cao hơn cho giá gần đây và phản ứng nhạy cảm với những thay đổi giá ngắn hạn. Các tín hiệu mua được tạo ra khi giá vượt qua đường 5 giai đoạn trong khi trên đường 20 giai đoạn, và các tín hiệu bán được tạo ra khi giá vượt qua đường 5 giai đoạn trong khi dưới đường 20 giai đoạn. Sự kết hợp đường trung bình di chuyển kép như vậy đảm bảo các tín hiệu giao dịch theo các xu hướng chính trong khi cải thiện độ nhạy cảm và thời gian của các tín hiệu thông qua việc giới thiệu đường trung bình di chuyển ngắn hạn.
Sau khi các tín hiệu giao dịch được tạo ra, chỉ số MACD được giới thiệu để xác nhận xu hướng. Cụ thể, khi các tín hiệu mua được kích hoạt, đường MACD DIFF cần phải thấy một đường chéo vàng với đường DEA được duy trì trong một số giai đoạn để xác nhận xu hướng tăng; ngược lại, khi các tín hiệu bán được kích hoạt, một đường chéo chết theo sau là xu hướng giảm trong một số giai đoạn cần được quan sát. Điều này lọc các giao dịch tiếng ồn và tránh mở các vị trí thường xuyên trong quá trình hợp nhất thị trường.
Cuối cùng, các mức dừng lỗ hợp lý được thiết lập cho cả các vị trí dài và ngắn. Đường dừng lỗ dài được thiết lập dưới điểm thấp nhất kể từ khi nhập cảnh, trong khi đường dừng lỗ ngắn được thiết lập trên điểm cao nhất kể từ khi nhập cảnh. Mức dừng lỗ được cập nhật năng động theo biến động giá. Phương pháp dừng lỗ như vậy khóa lợi nhuận ở mức độ lớn nhất và ngăn ngừa tổn thất không thể chấp nhận được trong trường hợp đảo ngược thị trường nghiêm trọng.
Các thông số MACD có thể được điều chỉnh để hợp tác tốt hơn. Ngoài ra, các thông số thời gian trung bình chuyển động cần tối ưu hóa theo đặc điểm sản phẩm. Cuối cùng, phạm vi dừng lỗ có thể được nới lỏng một cách hợp lý để cho phép phát hành lợi nhuận đầy đủ cho các động tác theo hướng lớn.
Các tối ưu hóa khác có thể được theo đuổi theo các hướng sau đây cho chiến lược này:
Đưa ra các thuật toán trung bình động thích nghi.
Kết hợp các mô hình học máy. Các thuật toán như học sâu có thể tự động xác định các đặc điểm thị trường của các sản phẩm khác nhau và đưa ra các thiết lập tham số tối ưu trong thời gian thực.
Thêm các bộ lọc bổ sung. Các chỉ số kỹ thuật khác có thể được đưa vào trên các tín hiệu hiện tại như các tiêu chuẩn phán đoán phụ trợ, chẳng hạn như tích hợp các yếu tố âm lượng.
Tối ưu hóa các chiến lược dừng lỗ. Các kỹ thuật dừng lỗ thông minh hơn như dừng lỗ đột phá và theo dõi dừng lỗ nên được nghiên cứu, để có được phần thưởng lớn hơn trong khi kiểm soát rủi ro.
Chiến lược kết hợp đường trung bình di chuyển kép và MACD xem xét toàn diện các khía cạnh như xu hướng, động lực, kiểm soát rủi ro vượt ra ngoài giới hạn của các chỉ số kỹ thuật duy nhất, và có thể cải thiện hiệu quả sự ổn định của giao dịch định lượng. Chiến lược này thích nghi tốt với các môi trường thị trường khác nhau thông qua điều chỉnh tham số và rất đáng để áp dụng trực tiếp và tối ưu hóa liên tục. Trong khi đó, vẫn còn không gian đáng kể trong việc kết hợp các kỹ thuật thông minh hơn để tối ưu hóa tự động và tối đa hóa hiệu quả chiến lược.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 2h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Band Strategy with Early Signal (v5)", overlay=true) // Inputs length = 20 mult = 1.5 src = close riskRewardRatio = input(3.0, title="Risk-Reward Ratio") // Calculating Bollinger Bands basis = ta.ema(src, length) dev = mult * ta.stdev(src, length) upper = basis + dev lower = basis - dev // Plotting Bollinger Bands plot(upper, "Upper Band", color=color.red) plot(lower, "Lower Band", color=color.green) // Tracking Two Candles Ago Crossing Bollinger Bands var float twoCandlesAgoUpperCrossLow = na var float twoCandlesAgoLowerCrossHigh = na if (close[2] > upper[2]) twoCandlesAgoUpperCrossLow := low[2] if (close[2] < lower[2]) twoCandlesAgoLowerCrossHigh := high[2] // Entry Conditions longCondition = (not na(twoCandlesAgoLowerCrossHigh)) and (high > twoCandlesAgoLowerCrossHigh) shortCondition = (not na(twoCandlesAgoUpperCrossLow)) and (low < twoCandlesAgoUpperCrossLow) // Plotting Entry Points plotshape(longCondition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY") plotshape(shortCondition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL") // Strategy Execution if (longCondition) stopLoss = low - (high - low) * 0.05 takeProfit = close + (close - stopLoss) * riskRewardRatio strategy.entry("Buy", strategy.long) strategy.exit("Exit Buy", "Buy", stop=stopLoss, limit=takeProfit) if (shortCondition) stopLoss = high + (high - low) * 0.05 takeProfit = close - (stopLoss - close) * riskRewardRatio strategy.entry("Sell", strategy.short) strategy.exit("Exit Sell", "Sell", stop=stopLoss, limit=takeProfit)