Volume-Weighted Average Price (VWAP) is a trading algorithm based on pre-computed schedule which is used in an execution of a bigger order without excessive impact on the market price.

The schedule is a heart of a strategy. To compute it strategy first should look in a historical data. As an input user defines n the Number of Intervals and delay between each two of them. This gives us a partition of period since Start Time until End Time into intervals I_1, \ldots I_n. Using the historical data strategy have to estimate how big fraction of a volume traded between Start Time and End Time is traded in each time interval - this values are denoted by u_j for each time interval I_j.

Notice that the following holds:

  • \sum_{j = 1}^{n} u_j = 1
  • u_j \geq 0 for each value of j \in \{1, 2, \ldots n\}

On a base of the above considerations strategy can estimate the size of a trade which should be traded in the end of each time interval to minimize market price strategy’s self-impact. For a i-th time interval it is defined as follows:

x_j = u_j \times Target~quantity.

Larger market participation does more impact on a market asset’s price weighted by volume, which is expressed by formula:

VWAP = \frac{\sum_i v_i p_i}{\sum_i v_i},

where i is every trade. Therefore strategy tries to keep steady market participation in each of intervals.

If, defined above, predictions of volume fractions in each interval are proper then the algorithm works perfectly, otherwise it can cause huge impact on a market price. To prevent this bad situation more advance versions of this algorithm takes into the account also actual volume and modify their schedule to fit the market conditions.

Market Data

  • Last trade
  • Best quote
  • Order book
  • Statistics
  • Historical market data


Parameter name Description Essential
Target Quantity Overall quantity to be realized by strategy Yes
Number of Intervals Number of intervals to be used Yes
Delay Table Delay times between following orders Yes
Start Time Time when strategy begins to submit orders Yes
End Time Time when strategy stops working No
Side Market side for orders Yes


Open position

Side Defined by Side parameter
Amount Proper step size (x_j defined in the Description)
Price Last market price
Type Limit or Market Order

Strategy opens positions every time the delay value is reached.

Close position

Strategy does not close its opened positions.


Strategy ends when the declared orders’ quantity has been realized. By design around defined End Time.

Time frame

This strategy is dedicated to be used in short period of time like one day.

Further information & source

  • Barry Johnson, Algorithmic Trading & DMA: An introduction to direct access trading strategies, 4Myeloma Press, 2010.
PLEASE NOTE: Empirica does not provide tax, investment, or financial services. The information available through this website is provided on an "as is" basis at user's sole risk and does not constitute trading advice or a solicitation to buy or sell any stock, option, future, commodity, or forex product. Empirica makes no guarantees as to the accurateness, quality, or completeness of the information and shall not be responsible or liable for any errors, omissions, inaccuracies in the information or for any user's reliance on the information. User is solely responsible for verifying the information as being appropriate for user's personal use, including without limitation, seeking the advice of a qualified professional regarding any specific financial questions a user may have. Past performance is not necessarily an indication of future performance. Trading is inherently risky.