Chiến lược giao dịch theo xu hướng đường trung bình động kép


Ngày tạo: 2024-01-05 15:32:06 sửa đổi lần cuối: 2024-01-05 15:32:06
sao chép: 1 Số nhấp chuột: 677
1
tập trung vào
1617
Người theo dõi

Chiến lược giao dịch theo xu hướng đường trung bình động kép

Tổng quan

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

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

Chiến lược này dựa trên chỉ số MACD. Chỉ số MACD là chênh lệch giữa hai tham số di chuyển khác nhau, phản ánh sự thay đổi động lượng của giá. Cụ thể hơn, là chênh lệch giữa các đường di chuyển nhanh (đường 12 ngày là tham số mặc định) và đường di chuyển chậm (đường 26 ngày là tham số mặc định), được gọi là cột MACD. Để loại bỏ sự dao động, đường DEA hoặc đường tín hiệu được đưa vào chỉ số MACD, thường là đường di chuyển trung bình 9 ngày của MACD.

Khi cột MACD từ dưới lên phá vỡ đường DEA và đi vào vùng giá trị tích cực, cho thấy đường trung bình ngắn hạn quét đường trung bình dài hạn, cho thấy xu hướng giá cổ phiếu chuyển sang tăng, tạo ra tín hiệu mua. Khi MACD từ trên xuống và phá vỡ đường DEA và đi vào vùng giá trị tiêu cực, cho thấy đường trung bình ngắn hạn quét đường trung bình dài hạn, xu hướng giá cổ phiếu chuyển sang giảm, tạo ra tín hiệu bán.

Chiến lược này là sử dụng giao thoa của cột MACD và đường DEA để xác định thời gian mua và bán. Khi MACD quét trên cột DEA, bạn mua, và khi quét xuống, bạn bán.

Phân tích lợi thế

Chiến lược này có những ưu điểm sau:

  1. Captured là khả năng bắt kịp và kịp thời sự thay đổi của xu hướng giá cả.
  2. Nó đơn giản, rõ ràng, dễ hiểu và dễ thực hiện.
  3. Các tham số được cố định, không cần phải điều chỉnh thường xuyên.
  4. Có thể áp dụng cho các khoảng 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. Whipsaws có thể tạo ra nhiều tín hiệu sai, tức là kích hoạt mua và bán liên tục trên bảng ngang.
  2. Lagging Có một số sự chậm trễ, có thể bỏ lỡ thời điểm tốt nhất để thay đổi giá cả.
  3. Các tham số dễ bị tối ưu hóa quá mức, hiệu quả thực tế có thể không tốt.

Để giảm thiểu rủi ro, các tham số có thể được điều chỉnh thích hợp hoặc được sử dụng kết hợp với các chỉ số khác như chỉ số giá trị, chỉ số tỷ lệ biến động, v.v. Ngoài ra, chiến lược dừng lỗ và ngăn chặn hợp lý cũng rất quan trọng.

Hướng tối ưu hóa

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

  1. Tối ưu hóa tham số. Bạn có thể thử nghiệm các kết hợp tham số khác nhau để tìm ra tham số tối ưu nhất.

  2. Kết hợp với các chỉ số khác. Có thể giới thiệu chỉ số giá trị, chỉ số biến động, v.v., để tạo ra chiến lược kết hợp mạnh mẽ hơn.

  3. Chiến lược dừng lỗ. Thiết lập các điểm dừng lỗ hợp lý để kiểm soát rủi ro hiệu quả.

  4. Tối ưu hóa phù hợp. Chiến lược này có thể áp dụng cho các thị trường khác nhau và thời gian, có thể điều chỉnh theo tình hình thực tế.

Tóm tắt

Chiến lược giao dịch theo dõi xu hướng bằng cách nắm bắt sự thay đổi của xu hướng giá, để đạt được chi phí thấp. Nó đơn giản, thực tế, dễ thực hiện, là một chiến lược khởi đầu phù hợp cho người mới.

Mã nguồn chiến lược
/*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)