Chiến lược giao dịch kết hợp hai đường trung bình động và MACD

Tác giả:ChaoZhang, Ngày: 2024-02-29 11:31:48
Tags:

img

Tổng quan

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 logic

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.

Phân tích lợi thế

  • Trung bình di chuyển đôi xác định hiệu quả hướng giao dịch và tránh nhiễu nhiễu thị trường
  • Việc xác nhận MACD đảm bảo xu hướng đã được xác định và ngăn chặn việc mở các vị trí thường xuyên trong quá trình hợp nhất
  • Chiến lược dừng lỗ nghiêm ngặt khóa lợi nhuận ở mức tối đa và kiểm soát rủi ro thị trường
  • Các thông số điều chỉnh cho phép tối ưu hóa dựa trên các đặc điểm thị trường và sản phẩm

Phân tích rủi ro

  • Lựa chọn tham số MACD không chính xác có thể bỏ lỡ xu hướng ngắn hơn hoặc can thiệp quá thường xuyên
  • Các thông số trung bình động cần thử nghiệm cho tối ưu cho mỗi sản phẩm
  • Stop loss có thể được thâm nhập vào các thị trường có xu hướng mạnh gây ra một số lỗ

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.

Hướng dẫn tối ưu hóa

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:

  1. Đưa ra các thuật toán trung bình động thích nghi.

  2. 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.

  3. 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.

  4. 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.

Tóm lại

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)


Thêm nữa