MACD Crossover với chiến lược tín hiệu

Tác giả:ChaoZhang, Ngày: 2023-12-13 16:58:15
Tags:

img

Tổng quan

Chiến lược MACD Crossover with Signal tạo ra các tín hiệu giao dịch khi MACD vượt qua trên hoặc dưới đường tín hiệu. Chiến lược kết hợp ý tưởng về đường trung bình động kép để nắm bắt các bước ngoặt của xu hướng trung hạn trong giá cổ phiếu, thuộc về một chiến lược dừng lỗ theo dõi điển hình.

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

Chiến lược đầu tiên tính toán đường trung bình động nhanh fastMA và đường trung bình động chậm slowMA. Các thông số trung bình động nhanh là 12 ngày, và các thông số trung bình động chậm là 26 ngày. Sau đó tính toán sự khác biệt giữa hai đường trung bình động để tạo ra MACD. Sau đó tính toán trung bình động 9 ngày của MACD để có được đường tín hiệu. Các tín hiệu giao dịch được tạo ra khi MACD vượt qua trên hoặc dưới đường tín hiệu.

Lợi thế của chiến lược này là nắm bắt điểm chuyển đổi của xu hướng giá cổ phiếu trung hạn. Sự kết hợp giữa các đường trung bình di chuyển nhanh và chậm lọc ra các biến động giá ngắn hạn và tiếng ồn, và có thể nắm bắt xu hướng giá trung hạn. Khi giá cổ phiếu bị đảo ngược trung hạn, MACD sẽ phá vỡ đường tín hiệu và tạo ra các tín hiệu giao dịch tương đối rõ ràng.

Phân tích lợi thế

Chiến lược giao thoa MACD với tín hiệu kết hợp ý tưởng về trung bình động kép để lọc ra tiếng ồn ngắn hạn và chỉ nắm bắt các điểm chuyển đổi của xu hướng dài hạn và trung hạn.

MACD tự nó nhạy cảm hơn và có thể phản ứng nhạy cảm với những thay đổi xu hướng giá. Việc thêm đường tín hiệu có thể lọc ra nhiều tín hiệu sai ngắn hạn hơn. Chỉ khi xu hướng trung hạn thay đổi đáng kể, MACD phá vỡ đường tín hiệu lên xuống, một tín hiệu sẽ được tạo ra.

Trong một xu hướng tăng bền vững, MACD duy trì trên đường tín hiệu hầu hết thời gian, có thể nắm bắt nhiều cơ hội trên đường đi. Tương tự, trong xu hướng giảm bền vững, MACD cũng có thể duy trì một mô hình dài / ngắn và đưa ra các tín hiệu ngắn kịp thời.

Phân tích rủi ro

Vì các tín hiệu mua và bán chiến lược hoàn toàn dựa trên sự chéo chéo của các đường trung bình động, nếu thị trường dao động rất nhiều, sẽ có nhiều tín hiệu sai sẽ được tạo ra, dẫn đến việc dừng lỗ thường xuyên.

Việc phá vỡ đường tín hiệu không nhất thiết đảm bảo rằng xu hướng trung hạn đã thay đổi. Chỉ dựa vào một chỉ số kỹ thuật duy nhất như một tín hiệu mua có một số mù và thời gian có thể không đủ chính xác.

Trong thị trường liên tục thay đổi, sử dụng chéo giữa hai đường trung bình động một mình như là ngưỡng có thể bỏ lỡ nhiều cơ hội giao dịch hơn.

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

  1. Thêm các chỉ số lọc thanh khoản và biến động để giảm tần suất mở và tránh giao dịch không hiệu quả.

  2. Kết hợp nhiều chỉ số kỹ thuật khác để tạo thành một danh mục chỉ số để cải thiện chất lượng tín hiệu.

  3. Thêm các thuật toán học máy để đào tạo các thông số và ngưỡng chú ý phù hợp hơn với môi trường thị trường hiện tại, giảm can thiệp của con người.

  4. Kết hợp VIX và các chỉ số sợ hãi khác để dự đoán xu hướng thị trường và biến động, và điều chỉnh các tham số một cách năng động để tận dụng tốt hơn các cơ hội MACD.

Kết luận

Chiến lược giao dịch MACD Crossover with Signal sử dụng nguyên tắc giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch giao dịch.


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

//@author : SudeepBisht
//@version=2
strategy(title="MACD with Signal", shorttitle="MACD_with_Signal")
source = close
useCurrentRes = input(true, title="Use Current Chart Resolution?")
resCustom = input(title="Use Different Timeframe? Uncheck Box Above", defval="60")
smd = input(true, title="Show MacD & Signal Line? Also Turn Off Dots Below")
sd = input(true, title="Show Dots When MacD Crosses Signal Line?")
sh = input(true, title="Show Histogram?")
macd_colorChange = input(true,title="Change MacD Line Color-Signal Line Cross?")
hist_colorChange = input(true,title="MacD Histogram 4 Colors?")

res = useCurrentRes ? timeframe.period : resCustom

fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)

fastMA = ema(source, fastLength)
slowMA = ema(source, slowLength)

macd = fastMA - slowMA
signal = sma(macd, signalLength)
hist = macd - signal

outMacD = request.security(syminfo.tickerid, res, macd)
outSignal = request.security(syminfo.tickerid, res, signal)
outHist = request.security(syminfo.tickerid, res, hist)

histA_IsUp = outHist > outHist[1] and outHist > 0
histA_IsDown = outHist < outHist[1] and outHist > 0
histB_IsDown = outHist < outHist[1] and outHist <= 0
histB_IsUp = outHist > outHist[1] and outHist <= 0

//MacD Color Definitions
macd_IsAbove = outMacD >= outSignal
macd_IsBelow = outMacD < outSignal

plot_color = hist_colorChange ? histA_IsUp ? green : histA_IsDown ? lime : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? green : red : red
signal_color = macd_colorChange ? macd_IsAbove ? yellow : yellow : lime

circleYPosition = outSignal
 
plot(smd and outMacD ? outMacD : na, title="MACD", color=macd_color, linewidth=3)
plot(smd and outSignal ? outSignal : na, title="Signal", color=blue, style=line ,linewidth=1)
plot(sh and outHist ? outHist : na, title="", color=plot_color, style=columns, linewidth=4)
//plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)
hline(0, '0 Line',  linewidth=2, color=white)

macd_chk=smd and outMacD ? outMacD : na
checker=smd and outSignal ? outSignal : na
if (crossover(macd_chk,checker))
    strategy.entry("BBandLE", strategy.long)

if (crossunder(macd_chk, checker))
    strategy.entry("BBandSE", strategy.short)


Thêm nữa