
Chiến lược này là một chiến lược giao dịch đảo ngược động lực dựa trên chỉ số MACD. Nó tạo ra chỉ số MACD bằng cách tính toán chênh lệch giữa đường trung bình di chuyển nhanh và đường trung bình di chuyển chậm.
Chỉ số trung tâm của chiến lược này là MACD, nó bao gồm các đường trung bình di chuyển nhanh, trung bình di chuyển chậm và đường tín hiệu. Đầu tiên, tính toán EMA nhanh và EMA chậm, đặt tham số EMA nhanh là 12 ngày và tham số EMA chậm là 26 ngày, sau đó tính toán chênh lệch của cả hai thành chỉ số MACD. Chỉ số MACD phản ánh xu hướng thay đổi giá cổ phiếu thông qua khái niệm động lực.
Để lọc tiếng ồn, chiến lược này đưa ra chỉ số đường tín hiệu, xử lý MACD một cách mượt mà hơn. Các tham số đường tín hiệu được đặt thành EMA 9 ngày. Cuối cùng, tính toán chênh lệch giữa MACD và đường tín hiệu làm tín hiệu giao dịch. Khi chênh lệch tích cực âm, tạo ra tín hiệu bán; Khi chênh lệch âm, tạo ra tín hiệu mua.
Chiến lược này có những lợi thế chính như sau:
Sử dụng chỉ số MACD để đánh giá điểm đảo ngược giá cổ phiếu, có thể nắm bắt cơ hội biến đổi giá cổ phiếu trong thời gian ngắn.
Kết hợp với xử lý đường tín hiệu mịn, lọc một số tín hiệu giao dịch nhiễu, giảm tín hiệu giả.
Các tham số chiến lược được thiết lập tự do, các nhà giao dịch có thể điều chỉnh các tham số tùy theo tình hình thực tế, đáp ứng linh hoạt với sự thay đổi của thị trường.
Lịch lý của nó rất đơn giản, dễ hiểu và phù hợp cho người mới bắt đầu nghiên cứu.
Các chỉ số và tín hiệu được kết hợp đa dạng, có nhiều khả năng tối ưu hóa chiến lược và mở rộng mạnh mẽ.
Chiến lược này cũng có một số rủi ro:
Việc theo dõi giá cổ phiếu trong thời gian ngắn có thể làm tăng tần suất giao dịch và chi phí giao dịch.
Chỉ số MACD dễ tạo ra tín hiệu giả trong quá trình giá cổ phiếu tăng hoặc giảm một bên trong thời gian dài.
Nếu tham số không đúng, tín hiệu bị trễ và có thể bỏ lỡ điểm vào tốt nhất.
Chiến lược này khá đơn giản và có thể giảm hiệu quả giao dịch trong điều kiện thị trường phức tạp.
Những rủi ro trên có thể được cải thiện bằng cách:
Tối ưu hóa tham số, giảm tần số giao dịch. Ví dụ: tăng tham số chu kỳ đường tín hiệu.
Thêm các điều kiện lọc để tránh bị mắc kẹt trong xu hướng dài hạn. Ví dụ, kết hợp với các chỉ số theo dõi khác để xác định xu hướng dài hạn.
Sử dụng danh sách giá giới hạn để theo dõi giá tốt nhất.
Thêm nhiều yếu tố để đánh giá tình trạng thị trường, tránh giao dịch bất thường.
Chính sách này có thể được tối ưu hóa bằng cách:
Tối ưu hóa các tham số MACD và tham số đường tín hiệu để tìm kiếm sự kết hợp tham số tốt nhất.
Thêm các chỉ số phụ trợ khác để xác định xu hướng ngắn hạn và dài hạn, tránh giao dịch ngược. Ví dụ: Thêm chỉ số trung bình di chuyển, chỉ số Bollinger Bands.
Kết hợp với các chỉ số khối lượng giao dịch, chẳng hạn như chỉ số Energy Tide, để tránh phá vỡ giả.
Đặt các tham số theo nhóm các đặc điểm của cổ phiếu khác nhau, làm cho chiến lược thích ứng hơn.
Tăng giá dừng lỗ và giá dừng, kiểm soát mức độ lỗ và lợi nhuận đơn lẻ.
Đánh giá chất lượng của cổ phiếu, chẳng hạn như chỉ số tài chính, sự thay đổi trong xếp hạng, và chọn một nhóm cổ phiếu chất lượng.
Các biện pháp tối ưu hóa này có thể tăng cường sự ổn định, tỷ lệ thắng và lợi nhuận của chiến lược. Ngoài ra, chúng cũng tạo nền tảng cho việc phát triển và cải tiến liên tục của chiến lược.
Chiến lược này là một chiến lược giao dịch đảo ngược ngắn hạn điển hình. Nó sử dụng chỉ số MACD đơn giản và rõ ràng để phản ánh sự thay đổi động lực của cổ phiếu, và được hỗ trợ bằng đường tín hiệu để xác định điểm vào cụ thể. Với các tham số phù hợp, có thể nắm bắt cơ hội đảo ngược giá ngắn hạn và thu được lợi nhuận dư thừa.
Tất nhiên, bất kỳ chỉ số đơn lẻ và chiến lược đơn giản nào cũng không thể thích ứng hoàn hảo với nhiều tình huống thị trường phức tạp. Nhà đầu tư nên chú ý đến rủi ro, lựa chọn chiến lược theo tình huống và sở thích rủi ro của riêng mình, đồng thời phải liên tục chú ý đến hoạt động của thị trường, tối ưu hóa các tham số chiến lược và quy tắc giao dịch.
/*backtest
start: 2023-11-20 00:00:00
end: 2023-12-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//study(title="MACD Strategy by Sedkur", shorttitle="MACD Strategy by Sedkur")
strategy (title="MACD Strategy by Sedkur", shorttitle="MACD Strategy by Sedkur")
// Getting inputs
dyear = input(title="Year", type=input.integer, defval=2017, minval=1950, maxval=2500)
fast_length = input(title="Fast Length", type=input.integer, defval=12)
slow_length = input(title="Slow Length", type=input.integer, defval=26)
buyh = input(title="Buy histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
sellh = input(title="Sell histogram value", type=input.float, defval=0.0, minval=-1000, maxval=1000, step=0.1)
src = input(title="Source", type=input.source, defval=close)
signal_length = input(title="Signal Smoothing", type=input.integer, minval = 1, maxval = 50, defval = 9)
sma_source = input(title="Simple MA(Oscillator)", type=input.bool, defval=false)
sma_signal = input(title="Simple MA(Signal Line)", type=input.bool, defval=false)
// Plot colors
col_grow_above = #26A69A
col_grow_below = #FFCDD2
col_fall_above = #B2DFDB
col_fall_below = #EF5350
col_macd = #0094ff
col_signal = #ff6a00
// Calculating
fast_ma = sma_source ? sma(src, fast_length) : ema(src, fast_length)
slow_ma = sma_source ? sma(src, slow_length) : ema(src, slow_length)
macd = fast_ma - slow_ma
signal = sma_signal ? sma(macd, signal_length) : ema(macd, signal_length)
hist = macd - signal
plot(hist, title="Histogram", style=plot.style_columns, color=(hist>=0 ? (hist[1] < hist ? col_grow_above : col_fall_above) : (hist[1] < hist ? col_grow_below : col_fall_below) ), transp=0 )
plot(macd, title="MACD", color=col_macd, transp=0)
plot(signal, title="Signal", color=col_signal, transp=0)
strategy.entry("buy", strategy.long, comment="buy", when = hist[1] <= hist and buyh<=hist and year>=dyear)
strategy.entry("sell", strategy.short, comment="sell", when = hist[1] >= hist and sellh>=hist and year>=dyear)