
Chiến lược này là một hệ thống giao dịch tổng hợp, kết hợp nhiều chỉ số kỹ thuật để xác nhận tín hiệu giao dịch. Logic cốt lõi dựa trên sự giao thoa của các chỉ số di chuyển nhanh và chậm (EMA) và xác nhận tín hiệu bằng giá trung bình trọng lượng trung bình (VWAP) và chỉ số tương đối mạnh (RSI). Đồng thời, hệ thống sử dụng chương trình dừng động dựa trên sóng thực (ATR) để đảm bảo tính khoa học và linh hoạt của quản lý rủi ro.
Nguyên tắc cốt lõi của chiến lược là xác định hướng giao dịch thông qua sự phối hợp phối hợp của nhiều chỉ số kỹ thuật, bao gồm:
Chiến lược này xây dựng một hệ thống giao dịch tương đối toàn diện thông qua sự kết hợp hữu cơ của nhiều chỉ số kỹ thuật. Nó không chỉ chú trọng vào độ chính xác của tín hiệu mà còn nhấn mạnh tầm quan trọng của quản lý rủi ro. Mặc dù có một số hạn chế, nhưng thông qua việc tối ưu hóa và cải tiến liên tục, chiến lược này có thể duy trì hiệu suất ổn định trong nhiều môi trường thị trường.
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("BTC Day Trading Strategy with Alerts", overlay=true)
// Input parameters
emaShortLength = input(9, title="Short EMA Length")
emaLongLength = input(21, title="Long EMA Length")
rsiLength = input(14, title="RSI Length")
rsiOverbought = input(70, title="RSI Overbought Level")
rsiOversold = input(30, title="RSI Oversold Level")
atrMultiplier = input(1.5, title="ATR Multiplier for SL")
riskRewardRatio = input(2, title="Risk-Reward Ratio") // Defines TP as 2x SL
// Calculate indicators
emaShort = ta.ema(close, emaShortLength)
emaLong = ta.ema(close, emaLongLength)
rsi = ta.rsi(close, rsiLength)
vwap = ta.vwap(close) // Fixed: Added "close" as the source
atr = ta.atr(14)
// Define conditions for entry
longCondition = ta.crossover(emaShort, emaLong) and close > vwap and rsi > 50
shortCondition = ta.crossunder(emaShort, emaLong) and close < vwap and rsi < 50
// ATR-based Stop Loss & Take Profit
longSL = close - (atr * atrMultiplier)
longTP = close + ((close - longSL) * riskRewardRatio)
shortSL = close + (atr * atrMultiplier)
shortTP = close - ((shortSL - close) * riskRewardRatio)
// Execute trades
if (longCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", stop=longSL, limit=longTP)
if (shortCondition)
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", stop=shortSL, limit=shortTP)
// 🔔 Add Alert Conditions for TradingView Alerts
alertcondition(longCondition, title="BTC Buy Signal", message="🚀 Buy Signal: 9 EMA crossed above 21 EMA, Price above VWAP, RSI > 50")
alertcondition(shortCondition, title="BTC Sell Signal", message="🔻 Sell Signal: 9 EMA crossed below 21 EMA, Price below VWAP, RSI < 50")
// Plot indicators
plot(emaShort, color=color.blue, title="9 EMA", linewidth=2) // Thicker line for better visibility
plot(emaLong, color=color.red, title="21 EMA", linewidth=2) // Thicker line for better visibility
hline(rsiOverbought, "RSI Overbought", color=color.red, linewidth=2) // Thicker line for RSI Overbought
hline(rsiOversold, "RSI Oversold", color=color.green, linewidth=2) // Thicker line for RSI Oversold
plot(vwap, color=color.purple, title="VWAP", linewidth=2) // VWAP line on price chart
// Create a separate panel for RSI for better scaling
plot(rsi, color=color.orange, title="RSI", linewidth=2, style=plot.style_line) // Plot RSI on a separate panel