
Tóm tắt: Chiến lược này sử dụng chỉ số MACD để tạo ra tín hiệu giao dịch trên nhiều khung thời gian để thực hiện theo dõi xu hướng. Ý tưởng cơ bản của nó là xác nhận hướng xu hướng trong khung thời gian cao và sau đó tìm kiếm thời điểm nhập cảnh cụ thể trong khung thời gian thấp.
Nguyên tắc chiến lược: Chiến lược này sử dụng đường chênh lệch MACD của chỉ số và đường tín hiệu giao nhau để xác định hướng xu hướng. Cụ thể, nó tính toán đường chênh lệch MACD và đường tín hiệu trong khung thời gian chu kỳ cao ((60 phút mặc định).
Chiến lược sau đó sẽ tính toán MACD trong khung thời gian chu kỳ thấp ((chu kỳ hiện tại) và vào vị trí tương ứng khi đường lệch và đường tín hiệu giao nhau. Vì vậy, chu kỳ cao được sử dụng để xác định hướng xu hướng và chu kỳ thấp được sử dụng để tìm kiếm điểm vào cụ thể.
Chiến lược này cũng sử dụng sự thay đổi màu sắc của biểu đồ cột để giúp xác định xu hướng, cột xanh cho thấy đang tăng và cột đỏ cho thấy đang giảm.
Phân tích lợi thế:
Thiết kế khung nhiều giờ, chu kỳ cao xác định hướng xu hướng, chu kỳ thấp tìm điểm vào, có hệ thống tốt.
Sử dụng giao thoa MACD để đánh giá thời gian mua và bán, tham số chỉ số được tối ưu hóa, tín hiệu đáng tin cậy hơn.
Màu sắc của biểu đồ cột giúp đánh giá trạng thái xu hướng hiện tại, tạo ra nhiều xác minh và tăng độ chính xác của quyết định.
Theo dõi xu hướng tự động hoạt động, không cần sự can thiệp của con người, giảm sai lầm phán đoán cảm xúc.
Phân tích rủi ro:
MACD là một chỉ số theo dõi xu hướng dài hạn, có thể tạo ra tín hiệu sai trong thời gian ngắn dẫn đến tổn thất không cần thiết.
Chiến lược khung thời gian đa dạng có nhiều khó khăn hơn trong việc tối ưu hóa tham số và thử nghiệm vì cần xem xét nhiều chu kỳ cùng một lúc.
Chiến lược này không có thiết lập dừng lỗ, có thể dẫn đến tổn thất lớn.
Định hướng tối ưu hóa:
Tối ưu hóa các tham số của MACD, tìm kiếm sự kết hợp tham số tốt nhất.
Tăng các cơ chế ngăn chặn thiệt hại, hạn chế thiệt hại tối đa.
Đánh giá liệu có cần thêm các chỉ số khác để lọc tín hiệu và cải thiện chất lượng tín hiệu không.
Kiểm tra các kết hợp khung thời gian khác nhau để tìm ra một khung thời gian phù hợp nhất.
Tóm lại: Chiến lược này được thiết kế tổng thể có hệ thống tốt, kết hợp với nhiều ưu điểm của chỉ số MACD, có thể theo dõi hiệu quả xu hướng đường dài trung bình. Tuy nhiên, vì không đặt lệnh dừng lỗ, khó tránh rủi ro mở rộng tổn thất ngắn hạn, đây là hướng cần được tối ưu hóa hơn nữa. Nói chung, chiến lược này với khả năng theo dõi xu hướng mạnh mẽ của nó, cung cấp một lựa chọn cổ phiếu chất lượng cao và khung quyết định cho giao dịch định lượng. Bằng cách liên tục tối ưu hóa tham số và mô hình, có khả năng mở rộng hơn nữa không gian lợi nhuận và tăng cường sự ổn định của chiến lược.
/*backtest
start: 2023-12-12 00:00:00
end: 2024-01-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@author : SudeepBisht
//@version=2
strategy(title="SB_CM_MacD_Ult_MTF", shorttitle="SB_CM_Ult_MacD_MTF")
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 ? aqua : histA_IsDown ? blue : histB_IsDown ? red : histB_IsUp ? maroon :yellow :gray
macd_color = macd_colorChange ? macd_IsAbove ? lime : 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=4)
plot(smd and outSignal ? outSignal : na, title="Signal Line", color=signal_color, style=line ,linewidth=2)
plot(sh and outHist ? outHist : na, title="Histogram", color=plot_color, style=histogram, linewidth=4)
plot(sd and cross(outMacD, outSignal) ? circleYPosition : na, title="Cross", style=circles, linewidth=4, color=macd_color)
// hline(0, '0 Line', linestyle=solid, 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, comment="BBandLE")
if (crossunder(macd_chk, checker))
strategy.entry("BBandSE", strategy.short, comment="BBandSE")