Chiến lược này là một chiến lược giao dịch dựa trên EMA, VWAP và khối lượng. Ý tưởng chính là tạo ra tín hiệu mở cửa khi giá đóng phá vỡ VWAP và EMA, và khối lượng giao dịch lớn hơn khối lượng của nến trước đó trong một thời gian giao dịch cụ thể. Nó cũng thiết lập dừng lỗ và lấy lợi nhuận, cũng như các điều kiện để đóng các vị trí trong một khoảng thời gian cụ thể.
Bằng cách xem xét toàn diện xu hướng giá, giá trị hợp lý của thị trường và khối lượng giao dịch, chiến lược này giao dịch trong một thời gian giao dịch cụ thể. Mặc dù dừng lỗ, lấy lợi nhuận và thời gian giao dịch hạn chế được thiết lập, nhưng nó vẫn cần chú ý đến các rủi ro như thị trường biến động và trượt trong ứng dụng thực tế. Trong tương lai, tính mạnh mẽ và lợi nhuận của chiến lược có thể được cải thiện bằng cách thêm nhiều điều kiện lọc, tối ưu hóa các tham số và quản lý các vị trí.
/*backtest start: 2024-04-27 00:00:00 end: 2024-04-28 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("EMA, VWAP, Volume Strategy", overlay=true, process_orders_on_close=true) // Inputs emaLength = input.int(21, title="EMA Length") vwapSource = input.source(defval=hlc3, title='VWAP Source') stopLossPoints = input.float(100, title="Stop Loss (points)") targetPoints = input.float(200, title="Target (points)") session = input("0950-1430", title='Only take entry during') exit = input(defval='1515-1525', title='Exit Trade') tradein = not na(time(timeframe.period, session)) exit_time = not na(time(timeframe.period, exit)) // Calculate indicators ema = ta.ema(close, emaLength) vwapValue = ta.vwap(vwapSource) // Entry Conditions longCondition = close > vwapValue and close > ema and volume > volume[1] and close > open and tradein shortCondition = close < vwapValue and close < ema and volume > volume[1] and open > close and tradein // Exit Conditions longExitCondition = ta.crossunder(close, vwapValue) or ta.crossunder(close, ema) or close - strategy.position_avg_price >= targetPoints or close - strategy.position_avg_price <= -stopLossPoints or exit_time shortExitCondition = ta.crossover(close, vwapValue) or ta.crossover(close, ema) or strategy.position_avg_price - close >= targetPoints or strategy.position_avg_price - close <= -stopLossPoints or exit_time // Plotting plot(vwapValue, color=color.blue, title="VWAP") plot(ema, color=color.green, title="EMA") // Strategy if longCondition strategy.entry("Long", strategy.long) if shortCondition strategy.entry("Short", strategy.short) if longExitCondition strategy.close('Long', immediately=true) if shortExitCondition strategy.close("Short", immediately=true)