#### Overview of this book

If you want to find out how you can build a solid foundation in algorithmic trading using Python, this cookbook is here to help. Starting by setting up the Python environment for trading and connectivity with brokers, you’ll then learn the important aspects of financial markets. As you progress, you’ll learn to fetch financial instruments, query and calculate various types of candles and historical data, and finally, compute and plot technical indicators. Next, you’ll learn how to place various types of orders, such as regular, bracket, and cover orders, and understand their state transitions. Later chapters will cover backtesting, paper trading, and finally real trading for the algorithmic strategies that you've created. You’ll even understand how to automate trading and find the right strategy for making effective decisions that would otherwise be impossible for human traders. By the end of this book, you’ll be able to use Python libraries to conduct key tasks in the algorithmic trading ecosystem. Note: For demonstration, we're using Zerodha, an Indian Stock Market broker. If you're not an Indian resident, you won't be able to use Zerodha and therefore will not be able to test the examples directly. However, you can take inspiration from the book and apply the concepts across your preferred stock market broker of choice.

# Volume indicators – volume-weighted average price

Volume-weighted average price (VWAP) is a lagging volume indicator. The VWAP is a weighted moving average that uses the volume as the weighting factor so that higher volume days have more weight. It is a non-cumulative moving average, so only data within the time period is used in the calculation.

Although this function is available in talib, we will show you how to compute an indicator manually here by creating its formula. This will help you create your own indicators at times when you may use customer technical indicators or not-so-popular indicators that are missing from talib.

The formula for calculating VWAP is as follows:

Here, n is the time period and has to be defined by the user.

## Getting started

Make sure your Python namespace has the following objects:

1. pd (module)
2. plot_candlesticks_chart (function)
3. PlotType (enum)
4. historical_data (a pandas DataFrame)

Refer to the Technical requirements section of this chapter to set...