Home » Technical Analysis Functions » Understanding the ta.vwap Function in Pine Script

Understanding the ta.vwap Function in Pine Script

Photo of author
Published on

Pine Script is an integral part of the TradingView platform, empowering traders and developers to create custom technical analysis indicators and strategies. One such built-in function that holds significant value is ta.vwap, which stands for Volume Weighted Average Price. In this article, we’ll dissect the function, its overloads, and delve into its practical implementation.

What is VWAP?

VWAP, or Volume Weighted Average Price, provides a more comprehensive picture of an asset’s average price by factoring in both price and volume. Essentially, it weighs the price of each transaction by the volume of that transaction, providing an average that reflects where most of the volume has traded.

How does ta.vwap Function Work?

The ta.vwap function comes with multiple overloads, which means you can use it in several ways based on your requirements:

  • ta.vwap(source) → series float: This simply returns the VWAP series using the source as the base for calculation.
  • ta.vwap(source, anchor) → series float: Here, you can specify an anchor (like a specific timeframe) for the VWAP calculation.
  • ta.vwap(source, anchor, stdev_mult) → [series float, series float, series float]: This not only returns the VWAP series but also upper and lower bands by specifying a standard deviation multiplier.

Arguments Used

  • source (series int/float): This is the primary data, like open, close, high, etc., used for the VWAP calculation.

Basic Implementation: A Simple VWAP

This straightforward example demonstrates a basic VWAP calculation:

indicator("Simple VWAP")
vwap = ta.vwap(open)

In this snippet:

  1. We set the Pine Script version using //@version=5.
  2. We initiate a new indicator titled “Simple VWAP”.
  3. ta.vwap(open) calculates the VWAP using the open price as the source.
  4. Finally, plot(vwap) visualizes the VWAP on the chart.

Advanced Implementation: VWAP with Anchor and Bands

This example dives a bit deeper, introducing the concept of anchors and bands around the VWAP:

indicator("Advanced VWAP")
vwapAnchorInput = input.string("Daily", "Anchor", options = ["Daily", "Weekly", "Monthly"])
stdevMultiplierInput = input.float(1.0, "Standard Deviation Multiplier")
anchorTimeframe = switch vwapAnchorInput
"Daily" => "1D"
"Weekly" => "1W"
"Monthly" => "1M"
anchor = timeframe.change(anchorTimeframe)
[vwap, upper, lower] = ta.vwap(open, anchor, stdevMultiplierInput)
plot(upper, color = color.green)
plot(lower, color = color.green)
ta.vwap Function in Pine Script

Here’s a breakdown:

  1. We initiate the Pine Script version and a new indicator.
  2. User inputs for anchor selection (Daily, Weekly, Monthly) and a standard deviation multiplier are created.
  3. Based on the user’s anchor choice, we determine the appropriate timeframe.
  4. timeframe.change(anchorTimeframe) checks for changes in the selected timeframe to serve as the anchor.
  5. ta.vwap(open, anchor, stdevMultiplierInput) calculates the VWAP, upper band, and lower band using the specified parameters.
  6. Lastly, the VWAP and bands are plotted on the chart.

Key Takeaway

The ta.vwap function in Pine Script is versatile and allows traders to gauge market sentiment and identify potential support and resistance zones. By understanding its overloads and their respective uses, you can effectively implement VWAP in your strategies and analyses.


The ta.vwap function is an invaluable tool in Pine Script. Its flexibility in accommodating various parameters, from basic to advanced, makes it apt for diverse trading scenarios. With a clear understanding of its workings, you can leverage VWAP for deeper market insights and better trading decisions.

Leave a Comment