
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, kết hợp hệ thống đường trung bình, chỉ số động lực RSI và chỉ số biến động ATR để xác nhận cơ hội giao dịch thông qua xác nhận tín hiệu đa. Chiến lược sử dụng đường trung bình đa chu kỳ để xác định xu hướng thị trường, đồng thời kết hợp với động lực RSI để xác nhận cường độ giá, và cuối cùng sử dụng thiết lập dừng lỗ và lợi nhuận động lực ATR để tạo thành một hệ thống giao dịch hoàn chỉnh.
Chiến lược này bao gồm 3 phần quan trọng:
Chiến lược này xây dựng một hệ thống theo dõi xu hướng hoàn chỉnh bằng cách tích hợp nhiều chỉ số kỹ thuật. Ưu điểm của chiến lược là xác minh nhiều tín hiệu và quản lý rủi ro động, nhưng cũng cần chú ý đến việc xử lý các rủi ro như trì hoãn xu hướng và phá vỡ giả.
/*backtest
start: 2024-11-12 00:00:00
end: 2024-12-11 08:00:00
period: 3h
basePeriod: 3h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Bullish Engulfing with EMA Crossover and ATR-Based SL/TP with RSI Filter", overlay=true)
// Inputs for moving averages
short_ema_length = input.int(100, title="Short EMA Length")
long_ema_length = input.int(200, title="Long EMA Length")
// RSI Input
rsi_length = input.int(14, title="RSI Length")
rsi_threshold = input.float(50, title="RSI Threshold")
// Calculate the Exponential Moving Averages (EMAs)
short_ema = ta.ema(close, short_ema_length)
long_ema = ta.ema(close, long_ema_length)
// Plot EMAs on the chart
plot(short_ema, color=color.blue, title="100 EMA")
plot(long_ema, color=color.red, title="200 EMA")
// Calculate RSI
rsi_value = ta.rsi(close, rsi_length)
// Plot RSI on a separate panel
hline(rsi_threshold, "RSI Threshold", color=color.gray)
plot(rsi_value, color=color.purple, title="RSI")
// Bullish Engulfing Pattern
bullish_engulfing = close > open[1] and open < close[1] and close > open
// Define strategy entry condition with RSI filter
long_condition = bullish_engulfing and short_ema > long_ema and rsi_value > rsi_threshold
// Plot a buy signal when conditions are met
plotshape(long_condition, style=shape.labelup, location=location.belowbar, color=color.green, title="Buy Signal", text="BUY")
// ATR Calculation
atr_length = input.int(14, title="ATR Length")
atr_value = ta.atr(atr_length)
// Define Stop Loss and Take Profit as levels
stop_loss_level = 1.1 * atr_value
take_profit_level = 2.0 * atr_value
// Execute Strategy Entry
if (long_condition)
strategy.entry("Buy", strategy.long)
// Adjust SL and TP levels using the entry price
if (strategy.position_size > 0)
// Calculate SL and TP relative to the entry price
stop_price = strategy.position_avg_price - stop_loss_level
limit_price = strategy.position_avg_price + take_profit_level
// Exit strategy with SL and TP
strategy.exit("Exit", from_entry="Buy", stop=stop_price, limit=limit_price)