
This is an intraday trading strategy that combines Volume Weighted Average Price (VWAP), Average True Range (ATR), and price action analysis. The strategy determines market trends by observing price crossovers with VWAP while using ATR to set dynamic stop-loss and profit targets. The core concept is to identify trading opportunities when price pulls back to VWAP, with risk management controlled by ATR.
The strategy is based on several core principles: 1. Uses VWAP as a trend reference line, bullish above VWAP and bearish below 2. Identifies entry points through price crossovers with VWAP 3. Utilizes ATR for dynamic calculation of stop-loss and profit targets, providing flexible risk management 4. Long entry condition: price crosses above VWAP from below 5. Short entry condition: price crosses below VWAP from above 6. Stop-loss set at 1x ATR, profit target at 1.5x ATR
This is a quantitative trading strategy combining technical analysis and dynamic risk management. The combination of VWAP and ATR ensures objective trading signals while maintaining effective risk control. The strategy design aligns with modern quantitative trading requirements, offering good practicality and scalability. Through the suggested optimizations, there is room for further performance improvement.
/*backtest
start: 2019-12-23 08:00:00
end: 2024-11-25 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Price Action + VWAP + ATR Intraday Strategy", overlay=true)
// VWAP Calculation
vwapValue = ta.vwap(close)
// ATR Calculation (14-period)
atr = ta.atr(14)
// Price Action Setup for Bullish and Bearish Trades
bullishCondition = close > vwapValue and close[1] < vwapValue // Price above VWAP (Bullish bias) and Price action pullback to VWAP
bearishCondition = close < vwapValue and close[1] > vwapValue // Price below VWAP (Bearish bias) and Price action rally to VWAP
// Set stop loss and take profit based on ATR
atrMultiplier = 1.5
longStopLoss = low - atr
shortStopLoss = high + atr
longTakeProfit = close + (atr * atrMultiplier)
shortTakeProfit = close - (atr * atrMultiplier)
// Entry and Exit Rules
// Bullish Trade: Price pullback to VWAP and a bounce with ATR confirmation
if (bullishCondition and ta.crossover(close, vwapValue))
strategy.entry("Long", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Long", limit=longTakeProfit, stop=longStopLoss)
// Bearish Trade: Price rally to VWAP and a rejection with ATR confirmation
if (bearishCondition and ta.crossunder(close, vwapValue))
strategy.entry("Short", strategy.short)
strategy.exit("Take Profit/Stop Loss", from_entry="Short", limit=shortTakeProfit, stop=shortStopLoss)
// Plot VWAP on the chart
plot(vwapValue, color=color.blue, linewidth=2, title="VWAP")
// Plot ATR on the chart for reference (Optional)
plot(atr, title="ATR", color=color.orange, linewidth=1)