New Members: Be sure to confirm your email address by clicking on the link that was sent to your email inbox. You will not be able to post messages until you click that link.
If you mean Minervini's VCP, that's a very variable pattern, and from what I can see, nobody uses indicators to find it. On the other hand, it seems to resemble the Bollinger Band squeeze.
This might be a start for finding candidates that currently or may eventually fit the pattern:
[group is sp500]
and [sma(200,close) > 50 days ago sma(200,close)] // rising MA 200
and [sma(50,close) > sma(200,close)] // MA 50 above the MA 200
and [BB Width(20,2) = min(20,BB Width(20,2))] // narrowest Bollinger Band width in 20 days.
You can play with all the parameters to see if you can optimize the results, although they can change as markets change.
From time to time, I see this question come up on the useThinkScript forum as well as other forums. They haven't come up with a ToS VCP filter yet. I've never really given it much thought.
I think that this summary on traderlion.com is pretty inclusive.
What I see is a Channel (I tend to see most everything in channels) that gets tighter left to right.
So, if one were to look at a longer term price channel and then add a shorter term price channel, this might be a way to see this type of situation. The shorter term price channel (STPC) should be contained within the longer term price channel (LTPC). Preferably the STPC will have a higher lower price channel than the LTPC. And perhaps a lower higher price channel than the LTPC. This would show "contraction" to some degree.
I don't know, but let's see. I gave it a try. After a little bit of tweaking I came up with this to try and match up with some of the things I saw in the graphic and the text explanation.
//Weekly Settings //Setup is late Stage 1 or Early Stage 2. You can use Full or Slow if desired and [weekly Fast Stoch %K(30,3) > 45.0]
//Set the height of the LTPC to show max drawdown. < value is the %. ex. 1.3 = 30% and [weekly Upper Price Chan(20) / weekly Lower Price Chan(20) < 1.3 ] and [8 weeks ago weekly Upper Price Chan(20) / 8 weeks ago weekly Lower Price Chan(20) < 1.3 ]
//Set the Top of LTPC to show no significant breakout. Multiplier is the amount allowed to have "broken above" during VCP setup and [weekly Upper Price Chan(20) <= 8 weeks ago weekly Upper Price Chan(20) * 1.02]
//Set the Top of STPC to show no significant breakout. Multiplier is the amount allowed to have "broken above" during VCP setup and [weekly Upper Price Chan(9) <= 8 weeks ago weekly Upper Price Chan(20) * 0.99]
//Set the Lower STPC to be greater than the Lower LTPC Multiplier is the % the Lower STPC is above the Lower LTPC and [weekly Lower Price Chan(9) > weekly Lower Price Chan(20) * 1.05]
//Sets the Lower STPC as not diving below prior Lower STPC levels and [weekly Lower Price Chan(9) >= 8 weeks ago weekly Lower Price Chan(9)]
// Sets the Volume to be contracting and [weekly SMA(10,weekly volume) < 8 weeks ago weekly SMA(10,weekly volume)]
Provides some interesting looking charts and some not so interesting charts. The parameters can be tweaked more and other criteria added or changed to meet your needs. I haven't given VCP much thought but think the scan makes sense to a certain extent.
Another option may be to look at PnF Triangle patterns. Bullish Triangles have broken to the upside. Bearish Triangles have broken out to the downside. Broken out just means that it is testing moving out of that consolidation by plotting a "buy" or "sell" signal. The triangle is still intact. You can scan for Bullish Triangle is true now and wasn't true a week or a few weeks ago or something like that.
@markd is right, it appears to be a very variable pattern. I suggest that you add the two Price Channels you choose to your chart. Add the Zigzag as well. It makes it a lot easier to see what this scan is looking at.
Answers
This might be a start for finding candidates that currently or may eventually fit the pattern:
[group is sp500]
and [sma(200,close) > 50 days ago sma(200,close)] // rising MA 200
and [sma(50,close) > sma(200,close)] // MA 50 above the MA 200
and [BB Width(20,2) = min(20,BB Width(20,2))] // narrowest Bollinger Band width in 20 days.
You can play with all the parameters to see if you can optimize the results, although they can change as markets change.
The BB squeeze is explained here:
https://chartschool.stockcharts.com/table-of-contents/trading-strategies-and-models/trading-strategies/bollinger-band-squeeze
Also see:
https://chartschool.stockcharts.com/table-of-contents/technical-indicators-and-overlays/technical-overlays/bollinger-bands
I think that this summary on traderlion.com is pretty inclusive.
https://traderlion.com/technical-analysis/volatility-contraction-pattern/
I see this graphic used to show what the pattern looks like in essence.
Or dotnettutorials.net offers some more nuances to consider as well
https://dotnettutorials.net/lesson/volatility-contraction-pattern-strategy/#google_vignette
What I see is a Channel (I tend to see most everything in channels) that gets tighter left to right.
So, if one were to look at a longer term price channel and then add a shorter term price channel, this might be a way to see this type of situation. The shorter term price channel (STPC) should be contained within the longer term price channel (LTPC). Preferably the STPC will have a higher lower price channel than the LTPC. And perhaps a lower higher price channel than the LTPC. This would show "contraction" to some degree.
I don't know, but let's see. I gave it a try. After a little bit of tweaking I came up with this to try and match up with some of the things I saw in the graphic and the text explanation.
//Weekly Settings
//Setup is late Stage 1 or Early Stage 2. You can use Full or Slow if desired
and [weekly Fast Stoch %K(30,3) > 45.0]
//Set the height of the LTPC to show max drawdown. < value is the %. ex. 1.3 = 30%
and [weekly Upper Price Chan(20) / weekly Lower Price Chan(20) < 1.3 ]
and [8 weeks ago weekly Upper Price Chan(20) / 8 weeks ago weekly Lower Price Chan(20) < 1.3 ]
//Set the Top of LTPC to show no significant breakout. Multiplier is the amount allowed to have "broken
above" during VCP setup
and [weekly Upper Price Chan(20) <= 8 weeks ago weekly Upper Price Chan(20) * 1.02]
//Set the Top of STPC to show no significant breakout. Multiplier is the amount allowed to have "broken
above" during VCP setup
and [weekly Upper Price Chan(9) <= 8 weeks ago weekly Upper Price Chan(20) * 0.99]
//Set the Lower STPC to be greater than the Lower LTPC Multiplier is the % the Lower STPC is above the
Lower LTPC
and [weekly Lower Price Chan(9) > weekly Lower Price Chan(20) * 1.05]
//Sets the Lower STPC as not diving below prior Lower STPC levels
and [weekly Lower Price Chan(9) >= 8 weeks ago weekly Lower Price Chan(9)]
// Sets the Volume to be contracting
and [weekly SMA(10,weekly volume) < 8 weeks ago weekly SMA(10,weekly volume)]
Provides some interesting looking charts and some not so interesting charts. The parameters can be tweaked more and other criteria added or changed to meet your needs. I haven't given VCP much thought but think the scan makes sense to a certain extent.
Another option may be to look at PnF Triangle patterns. Bullish Triangles have broken to the upside. Bearish Triangles have broken out to the downside. Broken out just means that it is testing moving out of that consolidation by plotting a "buy" or "sell" signal. The triangle is still intact. You can scan for Bullish Triangle is true now and wasn't true a week or a few weeks ago or something like that.
@markd is right, it appears to be a very variable pattern. I suggest that you add the two Price Channels you choose to your chart. Add the Zigzag as well. It makes it a lot easier to see what this scan is looking at.
Just my 2 cents