Chiến lược chéo trung bình động động là một chiến lược theo xu hướng điển hình. Nó tạo ra tín hiệu mua và bán bằng cách tính toán trung bình di chuyển nhanh (Fast MA) và trung bình di chuyển chậm (Slow MA) và phát hiện chéo giữa chúng để nắm bắt các điểm đảo ngược xu hướng trên thị trường.
Lý thuyết cốt lõi của chiến lược này là: khi trung bình di chuyển nhanh vượt qua trên trung bình di chuyển chậm từ dưới, một tín hiệu mua được tạo ra; khi trung bình di chuyển nhanh vượt qua dưới trung bình di chuyển chậm từ trên, một tín hiệu bán được tạo ra.
Đường trung bình động có thể lọc hiệu quả tiếng ồn thị trường và nắm bắt xu hướng giá. Đường trung bình động nhanh nhạy hơn và có thể nắm bắt kịp thời các thay đổi trong xu hướng; Đường trung bình động chậm ổn định hơn và có thể lọc hiệu quả tác động của biến động ngắn hạn. Khi các MAs nhanh và chậm có một chéo vàng (chuyển lên từ dưới), nó cho thấy thị trường đã bước vào giai đoạn tăng; khi họ thấy một chéo chết (chuyển xuống từ trên), nó cho thấy thị trường đã bước vào giai đoạn giảm.
Chiến lược này sẽ ngay lập tức phát ra các tín hiệu giao dịch khi các đường trung bình động vượt qua, áp dụng một chiến lược theo đuổi xu hướng để theo xu hướng thị trường và kiếm được lợi nhuận lớn hơn.
Các cải tiến có thể được thực hiện bằng cách tối ưu hóa các tham số, điều chỉnh các khoảng thời gian trung bình động, thêm các điều kiện bộ lọc vv.
Chiến lược giao thoa trung bình động động nói chung hoạt động khá tốt. Có thể cải thiện hơn nữa bằng cách tối ưu hóa các tham số. Chiến lược này dễ thực hiện và phù hợp với thực hành của người mới bắt đầu. Nhưng rủi ro tín hiệu sai cần được xem xét và cần được sử dụng cùng với các chỉ số khác để hoạt động tốt hơn.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Simple Moving Average Crossover", shorttitle="SMAC", overlay=true) // Define input parameters fast_length = input.int(9, title="Fast MA Length") slow_length = input.int(21, title="Slow MA Length") stop_loss = input.float(1, title="Stop Loss (%)", minval=0, maxval=100) take_profit = input.float(2, title="Take Profit (%)", minval=0, maxval=100) // Calculate moving averages fast_ma = ta.sma(close, fast_length) slow_ma = ta.sma(close, slow_length) // Define conditions for long and short signals long_condition = ta.crossover(fast_ma, slow_ma) short_condition = ta.crossunder(fast_ma, slow_ma) // Plot moving averages on the chart plot(fast_ma, title="Fast MA", color=color.blue) plot(slow_ma, title="Slow MA", color=color.red) // Execute long and short trades if (long_condition) strategy.entry("Long", strategy.long) if (short_condition) strategy.entry("Short", strategy.short) // Set stop loss and take profit levels stop_loss_price = close * (1 - stop_loss / 100) take_profit_price = close * (1 + take_profit / 100) strategy.exit("Take Profit/Stop Loss", stop=stop_loss_price, limit=take_profit_price) // Plot signals on the chart plotshape(series=long_condition, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small) plotshape(series=short_condition, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)