Chiến lược giao dịch chéo MACD

Tác giả:ChaoZhang, Ngày: 2024-01-05 15:32:06
Tags:

img

Tổng quan

Chiến lược giao dịch chéo MACD là một chiến lược theo xu hướng. Nó sử dụng chéo giữa các đường trung bình di chuyển nhanh và chậm như tín hiệu mua và bán. Khi đường trung bình di chuyển nhanh vượt qua đường trung bình di chuyển chậm, một tín hiệu mua được tạo ra. Khi đường trung bình di chuyển nhanh vượt qua dưới đường trung bình di chuyển chậm, một tín hiệu bán được tạo ra.

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

Chỉ số MACD là sự khác biệt giữa hai đường trung bình động với các thông số khác nhau, phản ánh sự thay đổi trong động lực của giá. Cụ thể, đó là sự khác biệt giữa đường trung bình động nhanh (định số mặc định là đường 12 ngày) và đường trung bình động chậm (định số mặc định là đường 26 ngày), được gọi là thanh MACD. Để loại bỏ dao động, chỉ số MACD cũng giới thiệu một đường DEA hoặc đường tín hiệu, thường là đường trung bình động cân nặng 9 ngày của MACD.

Khi thanh MACD vượt qua đường DEA từ dưới lên và bước vào khu vực dương tính, nó cho thấy đường trung bình ngắn hạn vượt qua trên đường trung bình dài hạn, cho thấy xu hướng giá tăng và một tín hiệu mua được tạo ra. Khi MACD giảm từ trên xuống dưới qua đường DEA và bước vào khu vực âm, nó cho thấy đường trung bình ngắn hạn vượt qua dưới đường trung bình dài hạn và xu hướng giá giảm, tạo ra tín hiệu bán.

Chiến lược này sử dụng sự chéo chéo của thanh MACD và đường DEA để xác định thời gian mua và bán. Nó mua khi thanh MACD vượt qua trên đường DEA và bán khi thanh MACD vượt qua dưới đường DEA.

Phân tích lợi thế

Những lợi thế của chiến lược này bao gồm:

  1. Khả năng theo dõi xu hướng và nắm bắt thay đổi giá kịp thời.
  2. Đơn giản và dễ hiểu và thực hiện.
  3. Các thông số tương đối cố định mà không cần điều chỉnh thường xuyên.
  4. Áp dụng cho các khung thời gian khác nhau.

Phân tích rủi ro

Chiến lược này cũng có một số rủi ro:

  1. Có thể tạo ra nhiều tín hiệu sai hoặc whipsaws trong thị trường bên.
  2. Có một số chậm trễ và có thể bỏ lỡ thời điểm tốt nhất của sự thay đổi giá.
  3. Các tham số dễ dàng được tối ưu hóa quá mức và kết quả thực tế có thể kém.

Để giảm rủi ro, các tham số có thể được điều chỉnh hoặc kết hợp với các chỉ số khác như chỉ số khối lượng và biến động.

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

Chiến lược này có thể được tối ưu hóa trong các khía cạnh sau:

  1. Tối ưu hóa tham số để tìm các tham số tối ưu trong khi tránh tối ưu hóa quá mức.

  2. Kết hợp với các chỉ số khác để hình thành các chiến lược kết hợp mạnh mẽ hơn.

  3. Thiết lập đúng điểm dừng lỗ và lấy lợi nhuận để kiểm soát rủi ro một cách hiệu quả.

  4. Tối ưu hóa thích nghi để áp dụng chiến lược này cho các thị trường và khung thời gian khác nhau dựa trên điều kiện thực tế.

Kết luận

Chiến lược giao dịch chéo MACD nắm bắt những thay đổi xu hướng với chi phí thấp bằng cách theo xu hướng giá. Nó đơn giản, thực tế và dễ thực hiện, làm cho nó trở thành một chiến lược khởi đầu phù hợp cho người mới bắt đầu. Nhưng chiến lược này cũng có một số nhược điểm. Bằng cách tối ưu hóa và cải thiện liên tục, hiệu quả thực tế của chiến lược này có thể tốt hơn. Nó đáng được khuyến cáo.


/*backtest
start: 2022-12-29 00:00:00
end: 2024-01-04 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("MACD Strategy by Forbes",default_qty_type=strategy.percent_of_equity, default_qty_value=100, overlay=false)

fastLength = input(20)
slowlength = input(40)
MACDLength = input(4)

// === INPUT BACKTEST RANGE ===
FromYear  = input(defval = 2011, title = "From Year", minval = 2009)
FromMonth = input(defval = 1, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 1, title = "From Day", minval = 1, maxval = 31)
ToYear    = input(defval = 9999, title = "To Year", minval = 2009)
ToMonth   = input(defval = 12, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 31, title = "To Day", minval = 1, maxval = 31)

// === FUNCTION EXAMPLE ===
start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  // backtest start window
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)        // backtest finish window
window()  => true // create function "within window of time"

MACD = ema(close, fastLength) - ema(close, slowlength)
aMACD = ema(MACD, MACDLength)
delta = MACD - aMACD

// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350

f1 = plot(MACD,color=red)
s1 = plot(aMACD,color=blue)
plotColor = if delta > 0
    delta > delta[1] ? lime : green
else 
    delta < delta[1] ? maroon : red

plot(delta, color=plotColor, style=columns)

if (crossover(delta, 0))
    strategy.entry("Buy", true, when=window(), comment="Buy")

if (crossunder(delta, 0))
    strategy.close_all(when=window())

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)

Thêm nữa