Chiến lược chuyển đổi giá trung bình MACD tính toán các đường DIFF và DEA của chỉ số MACD để xác định xem xu hướng thị trường có đảo ngược hay không, do đó tạo ra các tín hiệu giao dịch. Nó sẽ dài khi DIFF vượt qua DEA và ngắn khi DIFF vượt qua dưới DEA. Chiến lược cũng kết hợp các bộ lọc EMA giá để tránh đột phá sai.
Chiến lược này chủ yếu dựa trên các đường DIFF và DEA của chỉ số MACD. MACD viết tắt của Moving Average Convergence Divergence, bao gồm các đường DIFF, DEA và MACD. Trong số đó, DIFF đại diện cho sự khác biệt giữa EMA ngắn hạn và EMA dài hạn, DEA là EMA của DIFF được sử dụng để xác minh tín hiệu DIFF, và MACD đại diện cho sự khác biệt giữa DIFF và DEA, được sử dụng để xác định sự khác biệt.
Khi DIFF phá vỡ trên DEA, điều đó có nghĩa là trung bình di chuyển ngắn hạn bắt đầu tăng cường và thị trường trở nên tăng trưởng. Khi DIFF phá vỡ dưới DEA, nó cho thấy trung bình di chuyển ngắn hạn trở nên yếu và thị trường trở nên giảm. Do đó, chiến lược này sẽ dài khi DIFF vượt qua DEA và ngắn khi vượt qua dưới.
Ngoài ra, chiến lược này kết hợp các bộ lọc EMA giá để tránh đột phá sai. Nó chỉ đi dài khi DIFF phá vỡ trên DEA và giá dưới giá dài trước đó, và chỉ đi ngắn khi DIFF phá vỡ dưới DEA và giá trên giá ngắn trước đó.
Chiến lược chuyển đổi trung bình động MACD Bull Bear kết hợp các bộ lọc MACD và EMA giá để tránh các tín hiệu sai được tạo ra bởi MACD, do đó cải thiện hiệu suất giao dịch.
Những lợi thế chính bao gồm:
Chiến lược chuyển đổi giá trung bình động MACD Bull Bear cũng có một số rủi ro:
Các cách chính để tối ưu hóa rủi ro là:
Chiến lược chuyển đổi trung bình động MACD Bull Bear có thể được tối ưu hóa thêm trong các chiều kích sau:
MACD Moving Average Bull Bear Conversion Strategy xác định sự gia nhập thị trường tăng/giảm bằng các tín hiệu chéo DIFF và DEA, và sử dụng bộ lọc EMA giá để loại bỏ các tín hiệu sai, xác định hiệu quả các điểm đảo ngược xu hướng thị trường. Với logic đơn giản và rõ ràng, nó nhanh chóng xác định các điểm chuyển đổi phù hợp với giao dịch ngắn hạn và trung hạn.
/*backtest start: 2022-12-01 00:00:00 end: 2023-12-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("macd_strategy", shorttitle="macd", overlay=true, pyramiding=1, max_bars_back=5000, calc_on_order_fills = false, calc_on_every_tick=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type =strategy.commission.percent, commission_value=0.00075) [diff, dea, _] = macd(close, 12, 26, 7) dea_close = ema(diff, 3) price = ema(close, 9) plot(price) cross_over_price = na cross_over_signal = na cross_over_price := cross_over_price[1] cross_over_signal := cross_over_signal[1] cross_under_price = na cross_under_signal = na cross_under_price := cross_under_price[1] cross_under_signal := cross_under_signal[1] if (crossover(diff,dea)) cross_over_price := price[1] cross_over_signal := diff if (crossunder(diff,dea)) cross_under_price := price[1] cross_under_signal := diff if dea > 0 cross_over_price = na cross_over_signal = na else cross_under_price = na cross_under_signal = na if diff > 0 if cross_under_price > cross_under_price[1]*1 and cross_under_signal < cross_under_signal[1]*0.95 strategy.entry("S", strategy.short, comment="S") else if cross_over_price < cross_over_price[1]*1 and cross_over_signal > cross_over_signal[1]*0.95 strategy.entry("B", strategy.long, comment="B") // strategy.exit("exit_s", "S", stop = strategy.position_avg_price*1.05, when=strategy.position_size < 0) // strategy.exit("exit_b", "B", stop = strategy.position_avg_price*0.95, when=strategy.position_size > 0) strategy.close_all(when=(strategy.position_size < 0 and (dea < 0 or diff > cross_under_signal*1 or crossover(diff, dea)) or (strategy.position_size > 0 and (dea > 0 or diff < cross_over_signal*1 or crossunder(diff, dea)))))