
Chiến lược này là một hệ thống theo dõi xu hướng dựa trên phân tích kỹ thuật, chủ yếu sử dụng tín hiệu chéo của chỉ số chuyển động 50 chu kỳ (EMA) và trung bình chuyển động đơn giản 200 chu kỳ (MA) để nắm bắt xu hướng thị trường. Chiến lược tích hợp cơ chế dừng lỗ động, kiểm soát rủi ro và khóa lợi nhuận bằng cách đặt trước điểm dừng lỗ và điểm dừng. Sự kết hợp này cho phép chiến lược nắm bắt xu hướng lớn và dừng lỗ kịp thời khi tình hình đảo ngược.
Lập luận cốt lõi của chiến lược dựa trên hai phán đoán chéo giữa hai đường thẳng: hệ thống tạo ra tín hiệu nhiều khi EMA 50 chu kỳ đi lên vượt qua MA 200 chu kỳ; hệ thống tạo ra tín hiệu hỏng khi EMA 50 chu kỳ đi xuống vượt qua MA 200 chu kỳ. Sau mỗi lần mở vị trí, hệ thống sẽ tự động thiết lập điểm dừng lỗ vào ((3 điểm trên giá mua) và điểm dừng ((7.5 điểm trên giá mua). Ngoài ra, khi có tín hiệu đảo ngược, hệ thống sẽ tự động thanh toán vị trí hiện tại để ngăn chặn hướng giữ vị trí trái với xu hướng thị trường.
Chiến lược này kết hợp hệ thống giao dịch theo dõi xu hướng hoàn chỉnh bằng cách kết hợp hệ thống giao dịch theo dõi xu hướng hai chiều bằng nhau và cơ chế dừng lỗ động. Ưu điểm của chiến lược là hệ thống hóa cao, kiểm soát rủi ro hoàn hảo, nhưng trong ứng dụng thực tế, vẫn cần điều chỉnh tối ưu hóa theo môi trường thị trường cụ thể và quy mô vốn.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-24 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("200 MA & 50 EMA Crossover Strategy with **Estimated** SL & TP", overlay=true)
// Parameters for the 200 MA and 50 EMA
ma200 = ta.sma(close, 200) // 200-period simple moving average
ema50 = ta.ema(close, 50) // 50-period exponential moving average
// Plot the MA and EMA on the chart
plot(ma200, color=color.blue, linewidth=2, title="200 MA")
plot(ema50, color=color.red, linewidth=2, title="50 EMA")
// Define **estimated** stop loss and take profit values
// SL = 3 points, TP = 7.5 points from the entry price
sl_points = 3
tp_points = 7.5
// Buy signal: when the 50 EMA crosses above the 200 MA (bullish crossover)
if (ta.crossover(ema50, ma200))
strategy.entry("Buy", strategy.long)
// Set **estimated** stop loss and take profit strategy.exit("Take Profit/Stop Loss", "Buy", stop=strategy.position_avg_price - sl_points, limit=strategy.position_avg_price + tp_points)
// Sell signal: when the 50 EMA crosses below the 200 MA (bearish crossover)
if (ta.crossunder(ema50, ma200))
strategy.entry("Sell", strategy.short)
// Set **estimated** stop loss and take profit strategy.exit("Take Profit/Stop Loss", "Sell", stop=strategy.position_avg_price + sl_points, limit=strategy.position_avg_price - tp_points)
// Optional: Close the position when an opposite signal appears
if (strategy.position_size > 0 and ta.crossunder(ema50, ma200))
strategy.close("Buy")
if (strategy.position_size < 0 and ta.crossover(ema50, ma200))
strategy.close("Sell")