
Chiến lược này là một hệ thống giao dịch đường ngắn kết hợp đường trung bình di chuyển (EMA) và chỉ số tương đối mạnh (RSI). Nó xác định cơ hội giao dịch tiềm năng bằng cách quan sát các tín hiệu chéo của đường trung bình đa phương và xác nhận động lực của chỉ số RSI. Chiến lược được thiết kế với mục tiêu dừng lỗ và lợi nhuận thích ứng, phù hợp để giao dịch trong chu kỳ 15 phút.
Chiến lược sử dụng các đường trung bình di chuyển chỉ số của ba chu kỳ khác nhau (9, 21, 50) và chỉ số RSI của 14 chu kỳ. Đối với tín hiệu đa đầu, khi EMA chu kỳ 9 đi lên qua EMA chu kỳ 21 và giá nằm trên EMA chu kỳ 50 và RSI nằm trong khoảng 40-70, kích hoạt nhiều tín hiệu. Đối với tín hiệu đầu trống, khi EMA chu kỳ 9 đi xuống qua EMA chu kỳ 21 và giá nằm dưới EMA chu kỳ 50 và RSI nằm trong khoảng 30-60, kích hoạt tín hiệu trống.
Chiến lược này xây dựng một hệ thống giao dịch tương đối hoàn chỉnh bằng cách kết hợp nhiều chỉ số kỹ thuật. Nó không chỉ chứa các tín hiệu rõ ràng về nhập cảnh và xuất cảnh, mà còn thiết kế cơ chế kiểm soát rủi ro. Ưu điểm cốt lõi của chiến lược là tăng độ tin cậy giao dịch thông qua xác nhận nhiều lần, nhưng đồng thời yêu cầu các nhà giao dịch theo dõi chặt chẽ các thay đổi trong môi trường thị trường và điều chỉnh các tham số khi thích hợp.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("RSI + EMA Scalping Strategy", overlay=true)
// Input for EMAs
ema9 = ta.ema(close, 9)
ema21 = ta.ema(close, 21)
ema50 = ta.ema(close, 50)
// RSI Input
rsi = ta.rsi(close, 14)
// User-defined input for Stop Loss & Target percentages
stop_loss_percent = input.float(0.5, "Stop Loss (%)", step=0.1)
target_percent = input.float(1.0, "Target (%)", step=0.1)
// Long condition
longCondition = ta.crossover(ema9, ema21) and close > ema50 and rsi > 40 and rsi < 70
if (longCondition)
strategy.entry("Buy", strategy.long)
stopLossPrice = close * (1 - stop_loss_percent / 100)
takeProfitPrice = close * (1 + target_percent / 100)
strategy.exit("Exit Buy", "Buy", stop=stopLossPrice, limit=takeProfitPrice)
// Short condition
shortCondition = ta.crossunder(ema9, ema21) and close < ema50 and rsi < 60 and rsi > 30
if (shortCondition)
strategy.entry("Sell", strategy.short)
stopLossPrice = close * (1 + stop_loss_percent / 100)
takeProfitPrice = close * (1 - target_percent / 100)
strategy.exit("Exit Sell", "Sell", stop=stopLossPrice, limit=takeProfitPrice)
// Plot EMAs
plot(ema9, color=color.orange, linewidth=1, title="EMA 9")
plot(ema21, color=color.blue, linewidth=1, title="EMA 21")
plot(ema50, color=color.purple, linewidth=2, title="EMA 50")