Chiến lược này sử dụng các tín hiệu chéo giữa trung bình di chuyển trơn tru 50 giai đoạn (SMMA) và trung bình di chuyển đơn giản 20 giai đoạn (SMA) để xác định các bước vào và ra. Nó tạo ra tín hiệu mua khi đường SMA nhanh vượt qua trên đường SMMA chậm, và bán tín hiệu khi đường SMA vượt qua dưới đường SMMA. Đồng thời, chiến lược đặt trước mức lợi nhuận cố định và mức dừng lỗ năng động để khóa lợi nhuận và kiểm soát rủi ro.
Kiểm tra sự kết hợp của các tham số khác nhau (thời gian chu kỳ, tiêu chí lọc vv) để tìm ra tối ưu.
Kết hợp các yếu tố khác như âm lượng tăng lên để lọc tín hiệu.
Sử dụng các công cụ tối ưu hóa tham số để tìm các tham số tối ưu.
Xem xét tích hợp các phương pháp lợi nhuận khác như dừng lại hoặc tỷ lệ lợi nhuận dựa trên lối ra.
Tính toán phạm vi dừng lỗ động dựa trên biến động thị trường.
Chiến lược này có logic tương đối đơn giản, nắm bắt các hướng xu hướng thông qua các đường trung bình động kép. Việc sử dụng linh hoạt lợi nhuận cố định và dừng lỗ động để kiếm lợi nhuận và kiểm soát rủi ro tạo ra sự cân bằng giữa rủi ro và phần thưởng.
/*backtest start: 2023-01-26 00:00:00 end: 2024-02-01 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("50 SMMA and 20 SMA Crossover with TP and SL", overlay=true) // Define 50 SMMA smma50 = sma(close, 50) // Define 20 SMA sma20 = sma(close, 20) // Plotting the SMMA and SMA plot(smma50, color=color.blue, title="50 SMMA") plot(sma20, color=color.red, title="20 SMA") // Initialize TP and SL variables tp = 150 var float sl_price = na // Buy Signal buySignal = crossover(sma20, smma50) strategy.entry("Buy", strategy.long, when = buySignal) strategy.exit("Take Profit/Stop Loss", from_entry="Buy", profit=tp, loss=sl_price) // Sell Signal sellSignal = crossunder(sma20, smma50) strategy.entry("Sell", strategy.short, when = sellSignal) strategy.exit("Take Profit/Stop Loss", from_entry="Sell", profit=tp, loss=sl_price) // Update stop loss level on every crossover if (buySignal or sellSignal) sl_price := close[bar_index + 1] // Plot Stop Loss level plotshape(series=sl_price != na, title="Stop Loss Level", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)