I created a stock market volume spike screener in the daily chart

Alger Makiputin
3 min readAug 7, 2022


Volume is one of the most important indicators in technical analysis. It helps us traders confirm the significance of a market move. If a price of a security increases, the price generally moves in the same direction. For us traders that means opportunity. Take a look at the example chart below.

The chart above is from DMCI Holding Inc. You can see the sudden volume surge (x8 or more volume than the previous 10 trading days), followed by strong upward momentum. The price of DMCI rose up more than 50% in a span of 2 months.

This kind of market activity signifies that something significant is happening during that trading day. As a retail trader, It’s important not to miss that opportunity. But how easy it is to spot a volume spike?

As someone who works in an 8 to 5 job, we don’t have the luxury to monitor the market movement daily. Sometimes, when I looked at the chart, the stock price has already takeoff and missed the trade or entered the trade late.

So I decided to create a stock screener using the volume spike criteria. At the end of the trading day, I want to be notified if there is abnormal trading volume during the trading session so that I can take action. Using some sort of algorithm I recorded the stock prices daily and save them to my own database. To have an understanding of what the data look like take a look at the table below.

Table structure

And below is the query I wrote to filter all the stocks with abnormal trading volume. Just for this example, I set the dates to static dates. And set a condition to display stocks with trading volume x8 greater than their 10-day trading average volume.

SELECT * FROM prices   LEFT JOIN (   SELECT AVG(volume) as avgVolume, symbol FROM prices   WHERE date <= '2022-08-04' AND date >= '2022-07-24'   GROUP BY symbol   ORDER BY date DESC) price2ON price2.symbol = prices.symbolWHERE prices.date = '2022-08-05' AND prices.volume > (price2.avgVolume * 8) ORDER BY prices.date DESC;

And here is the result:

Query results: The result of all stocks with 8x or more trading volume than their 10-day average volume

For now, it’s still not fully automated, but If you like to get updated with this project. Just follow me here on medium.

And if you are wondering where I get all the data. I have created this API to get PSE stock's historical price, check it out on GitHub don’t forget to hit star :) https://github.com/algermakiputin/PSEStocksAPI

Thanks for reading this article! Leave a comment below if you have any questions, and make sure to follow me here on medium :) https://medium.com/@algerwrites



Alger Makiputin

Software developer, working across mobile, web, and custom software development. Creator of POSLite www.poslitesoftware.com