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 sự khác biệt giữa các đường trung bình di chuyển nhanh và chậm. Khi chỉ số MACD chuyển từ dương sang âm, một tín hiệu bán được tạo ra. Khi chỉ số MACD chuyển từ âm sang dương, một tín hiệu mua được tạo ra. Chiến lược này cũng kết hợp đường tín hiệu của chỉ số MACD để làm mịn thêm để lọc ra một số tín hiệu giao dịch ồn ào.
Chỉ số cốt lõi của chiến lược này là MACD, bao gồm trung bình di chuyển nhanh, trung bình di chuyển chậm và đường tín hiệu. Đầu tiên, EMA nhanh với khoảng thời gian 12 ngày và EMA chậm với khoảng thời gian 26 ngày được tính toán, sau đó sự khác biệt giữa chúng được tính toán dưới dạng chỉ số MACD. Chỉ số MACD phản ánh xu hướng thay đổi giá dựa trên khái niệm động lực. Khi EMA nhanh tăng nhanh hơn EMA chậm, nó chỉ ra xu hướng tăng giá, và MACD là dương tính. Ngược lại, khi giá cổ phiếu có xu hướng giảm, MACD là âm.
Để lọc tiếng ồn, chiến lược này giới thiệu một chỉ báo đường tín hiệu để làm mịn MACD thêm. Các thông số đường tín hiệu được đặt thành EMA 9 ngày. Cuối cùng, sự khác biệt giữa MACD và đường tín hiệu được tính như tín hiệu giao dịch. Khi sự khác biệt thay đổi từ dương tính thành âm, một tín hiệu bán được tạo ra. Khi sự khác biệt thay đổi từ âm thành dương tính, một tín hiệu mua được tạo ra.
Những lợi thế chính của chiến lược này là:
Sử dụng chỉ số MACD để xác định các điểm đảo ngược giá, nó có thể nắm bắt các cơ hội đảo ngược giá cổ phiếu ngắn hạn.
Tích hợp đường tín hiệu làm mịn lọc ra một số tín hiệu giao dịch ồn ào và giảm tín hiệu sai.
Cài đặt tham số linh hoạt cho phép các nhà giao dịch điều chỉnh các tham số theo điều kiện thị trường thực tế.
Lý thuyết đơn giản và rõ ràng, dễ hiểu và thực hiện, phù hợp cho người mới bắt đầu học và nghiên cứu.
Sự kết hợp đa dạng của các chỉ số và tín hiệu cung cấp không gian rộng để tối ưu hóa chiến lược và khả năng mở rộng mạnh mẽ.
Có một số rủi ro trong chiến lược này:
Việc theo dõi sự đảo ngược ngắn hạn có thể làm tăng tần suất giao dịch và chi phí giao dịch.
Chỉ số MACD có thể dễ dàng tạo ra các tín hiệu sai trong thời gian tăng hoặc giảm giá một bên dài hạn.
Việc tạo tín hiệu chậm do cài đặt tham số không phù hợp có thể bỏ lỡ điểm đầu vào tốt nhất.
Chiến lược tương đối đơn giản này có thể hoạt động kém trong điều kiện thị trường phức tạp.
Để giảm thiểu các rủi ro trên, cải tiến có thể được thực hiện theo các cách sau:
Tối ưu hóa các thông số để giảm tần suất giao dịch, ví dụ như tăng 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 các chỉ số theo dõi khác để xác định xu hướng dài hạn và ngắn hạn.
Sử dụng lệnh giới hạn để theo dõi giá tối ưu.
Thêm thêm các yếu tố để xác định điều kiện thị trường và tránh giao dịch trên thị trường bất thường.
Chiến lược có thể được tối ưu hóa trong các khía cạnh sau:
Tối ưu hóa các thông số MACD và các thông số đường tín hiệu để tìm sự kết hợp thông số tốt nhất.
Thêm các chỉ số phụ khác để xác định xu hướng dài và ngắn hạn và tránh giao dịch chống lại xu hướng, ví dụ như Moving Average, Bollinger Bands vv.
Bao gồm các chỉ số khối lượng giao dịch như On Balance Volume để tránh sự phá vỡ sai.
Đặt các tham số theo các đặc điểm khác nhau của cổ phiếu để làm cho chiến lược thích nghi hơn.
Thêm các thiết lập giá dừng lỗ và lấy lợi nhuận để kiểm soát mức lỗ đơn và lợi nhuận.
Đánh giá các yếu tố chất lượng cổ phiếu như số liệu tài chính, thay đổi xếp hạng vv và chọn nhóm cổ phiếu tối ưu.
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 lợi và mức lợi nhuận của chiến lược.
Đâ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 các chỉ số MACD đơn giản và rõ ràng để phản ánh những thay đổi trong động lực cổ phiếu và các đường tín hiệu để xác định các điểm nhập khẩu cụ thể. Với các thiết lập tham số thích hợp, nó có thể nắm bắt các cơ hội đảo ngược giá ngắn hạn để có đượ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ó có thể thích nghi hoàn hảo với các điều kiện thị trường phức tạp khác nhau. Các nhà đầu tư nên chú ý đến rủi ro và chọn chiến lược theo điều kiện và ham muốn rủi ro của riêng họ. Trong khi đó, họ cũng nên theo dõi điều kiện thị trường, tối ưu hóa các tham số chiến lược và các quy tắc giao dịch. Chỉ thông qua việc học hỏi và cải tiến liên tục, người ta có thể đạt được lợi nhuận đầu tư ổn định lâu dài.
/*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)