View Of Volume (VoV) In ThinkOrSwim

MatthewA

Active member

VIEW of VOLUME (VoV)

View Of Volume (VoV). Calculations for Low Stress trading

Global Capital functions through issuing currency and paying interest on debts.
Arbitrarily massive sums of derivatives might exhaust the most intelligent minds that look for complex patterns to solve.
imresizer-1707797766703.jpg
imresizer-1707797826732.jpg
We can only understand relationships by seeing each thing relative to everything else.
By looking through the lens of relativity, we may view the markets with more clarity and less stress

First let us consider the Price Action and Order Flow Relatively.
Here are the indicators. http://tos.mx/oOFOZpO Click here for --> Easiest way to load shared links
Feb12th2024NQ.png
On today's chart of the Nasdaq Futures each 1 minutes Bar has a Brightness according to how EASILY the price responded to the Order flow; this was calculated Relative to how EASILY Orders Flow onto the tape. The EoM function allows us a View of Volumes that price will consolidate EASILY within or Volumes which may EASILY develop into a strong trend. We also have a Blue Price Line from our function of EoM and we are able to utilize this EASY Line in many useful calculations which will be the topic of future posts.

The Horizontal Blue Lines are the DIFFICULT Price Lines DPL, and these values are calculated Relative to how DIFFICULT Orders Flow onto the tape. The DIFFICULT DPL lines rarely occur where traders might draw Support or Resistance and we do NOT hold loses in the hopes that direction may change at the DPL.
We use the DPL as a timely warning where the order flow will become DIFFICULT, and we save ourselves a great deal of stress by taking profits before we reach a DPL or by waiting to open a new position until we have left a consolidation within a DPL.

On today's Market Open, we see a bright EASY EoM order flow which remains within the DPLs and other VoV Lines.
We do not expect a strong trend to form and so we relax and patiently wait the first hours of this morning.
Feb12th2024NQ opening.png


After consolidating most of the morning and upward trend begins to form.

Feb12th2024NQ Trend Pause.png


Feb12th2024NQ Take Small Profits.png


Now we see the first signs of a retracement which might become a larger reversal. We do not immediately begin to short as there are many bright EoM bars around where price could drift and consolidate EASILY.

Feb12th2024NQ Retracement.png


Now bright EoM bars show us that a downtrend can begin EASILY.

Feb12th2024NQ Short Afternoon.png


We open short positions, and we keep a tighter Stop-Loss than with our Long Positions as we are aware of the EASY EoM values above us and the uptrend which developed this morning.
Feb12th2024NQ Close Afternoon Short.png


Now that we have successfully traded the Uptrend of the morning and the Downtrend in the afternoon we will complete some other work on another computer and do some other activities while we leave some computer screen recording the market.
Feb12th2024NQ End Of Market.png
 
Last edited by a moderator:
Let us look a second time at today's trades on the Nasdaq Futures but this time with more of the View Of Volume VoV Lines shown...
The VoV Profiles are easy to understand however too many bright lines will crowd out our view.

Feb12th2024NQ VoV Lines Open.png

Feb12th2024NQ VoV Lines First Trend.png

Feb12th2024NQ VoV Lines Noon.png


Feb12th2024NQ VoV Lines rectracement.png


Feb12th2024NQ VoV Lines rectracement SHORT.png

Feb12th2024NQ VoV Lines No Trend at close.png
 
Last edited:
Let us look a second time at todays trades on the Nasdaq Futures but this time with more of the View Of Volume VoV Lines shown...
The VoV Profiles are easy to understand however too many bright lines will crowd out our view.

View attachment 21036
View attachment 21037
View attachment 21038

View attachment 21039

View attachment 21040
View attachment 21041
I have had a very enjoyable trading experience with Relative terms.
I am thankful for contributions from people such as Dr Trefor Bazett and @Welkin ...


I do hope that @mashume does find the time to return in the coming months.
His ideas of simplifying second derivatives to see when price is "Concave Up" or "Concave Down" was a goal of early math with Concavity.
In particular I think that @mashume and his friends might enjoy the EoM Line included in this code.
I think we might simplify the accumulated market Volumes which make a significant curve inevitable.
The question is how we accomplish this using as little of computer resources as possible.
screencapture-usethinkscript-threads-hull-moving-average-turning-points-and-concavity-2nd-deri...png

View Of Volume VoV might be able provide us with data that can constrain curves NOT to repaint.

Also, the community of traders @Ramisegal who work with the Options Expected Move may see a use for developing VoV tools because we know that Options may not be executed all at once.
The most logical way of Viewing the Markets random walk might be to price in the Delta $ of all of the markets options together with a loose and gentle Relativistic relationship...

I hope everyone is well and I thank all of you for any constructive criticism. 🙏
 
Good Morning...
I am off to school and then work but quick update this February 13th 2024.

Market drops EASILY below the previous VoV Profile Lines straight to DIFFICULT DPL Lines.
I did NOT trade this and if I had received confirmation I would have kept a very tight stop loss. 🤷‍♂️
There might be some opportunities later in the day but I will be at school or work until close.
ES Feb 13th.png

2024-02-13-FLEXIBLE_GRID.png
 
Thanks for sharing your work! While blue is best for your viewing purposes is there any way we can see the volume in the red, green and gray like this? If I can see the charts like the first 4 examples i think i have something very very good this can be paired with
 
Last edited by a moderator:
Thanks for sharing your work! While blue is best for your viewing purposes is there any way we can see the volume in the red, green and gray like this? If I can see the charts like the first 4 examples i think i have something very very good this can be paired with
Absolutely yes. We can change it to any color people would like.
I'm just sensitive about crowding people's eyes or printing what might be thought of as Buy/Sell signals that might rush people into bad trades.
 
Good Morning...
I am off to school and then work but quick update this February 13th 2024.

Market drops EASILY below the previous VoV Profile Lines straight to DIFFICULT DPL Lines.
I did NOT trade this and if I had received confirmation I would have kept a very tight stop loss. 🤷‍♂️
There might be some opportunities later in the day but I will be at school or work until close.
View attachment 21047
View attachment 21048
Small Trade Days.png

If I were free to trade today I would probably do 1 long and 1 short again just like last day.
Because of the position of the market today I would be using 30 tick profits with 20 tick stops which I would advance quickly. I would trade multiple contracts filled one at a time on separate orders with staggered targets and safety stop losses. 🥱🥱🥱

It is okay to have a chill day. The market took a rapid retracement in the early morning and is drifting along a random walk amongst the DPLs. ☺️☺️☺️
 
@MatthewA : @FutureTony's "Volatility Sentiment" looks promising...

Here's one from my Archive...Implied Volatility Rank...

View attachment 20865

And here's the script:

Code:
declare lower;
#declare hide_on_intraday;

#IVPercentile

def vol = imp_volatility();

input DisplayIVPercentile = yes;
input TimePeriod = 252;
input LowVolLimit = 30;
input HighVolLimit = 50;
input Display6monthIVR = yes;
input MiddleTimePeriod = 126;
input DisplayShorterTerm = yes;
input ShortTimePeriod = 63;
input DisplayImpVolatility = yes;
input DisplayDaily1StandardDev = no;
input DisplayWeekly1StandardDev = yes;
input DisplayMonthly1StandardDev = yes;
input InvertRedGreen = yes;
input PercentileMALength = 21;

def data = if !IsNaN(vol) then vol else vol[-1];
def hi = Highest(data, TimePeriod);
def lo = Lowest(data, TimePeriod);
def MiddleHi = Highest(data, MiddleTimePeriod);
def MiddleLo = Lowest(data, MiddleTimePeriod);
def ShortHi = Highest(data, ShortTimePeriod);
def ShortLo = Lowest(data, ShortTimePeriod);

plot Percentile = (data – lo) / (hi – lo) * 100;
Percentile.SetDefaultColor(CreateColor(0, 102, 204));
Percentile.SetLineWeight(2);

plot PercentileMA = ExpAverage(Percentile, PercentileMALength);
PercentileMA.SetDefaultColor(Color.ORANGE);
PercentileMA.SetLineWeight(2);

def lowend = Percentile < LowVolLimit; def highend = Percentile > HighVolLimit;
def mPercentile = (data – MiddleLo) / (MiddleHi – MiddleLo) * 100;
def MiddleLowend = mPercentile < LowVolLimit;
def MiddleHighend = mPercentile < HighVolLimit;
def sPercentile = (data – ShortLo) / (ShortHi – ShortLo) * 100;
def ShortLowend = sPercentile < LowVolLimit; def ShortHighend = sPercentile > HighVolLimit;

DefineGlobalColor(“lowcolor”, if InvertRedGreen then Color.RED else Color.GREEN);
DefineGlobalColor(“Shortlowcolor”, if InvertRedGreen then Color.GREEN else Color.GREEN);
DefineGlobalColor(“highcolor”, if InvertRedGreen then Color.GREEN else Color.RED);
DefineGlobalColor(“Shorthighcolor”, if InvertRedGreen then Color.GREEN else Color.RED);

#Labels

AddLabel(DisplayIVPercentile , Concat(“IV Rank = “, AsPrice(Round(Percentile, 0))), color = CreateColor(255-(Percentile*2.55),Percentile*2.55,0));
AddLabel(Display6monthIVR , Concat(“6mo IVR = “, AsPrice(Round(mPercentile , 0))), color = CreateColor(255-(mPercentile*2.55),mPercentile*2.55,0));
AddLabel(DisplayShorterTerm , Concat(“3mo IVR = “, AsPrice(Round(sPercentile , 0))), color = CreateColor(255-(sPercentile*2.55),sPercentile*2.55,0));
AddLabel(DisplayImpVolatility, Concat(“ImpVol: “, AsPercent(vol)), if lowend then color.gray else if highend then color.gray else color.gray);

def ImpPts = (vol / Sqrt(252)) * close;
AddLabel(DisplayDaily1StandardDev , Concat(“1 Day SD +/- $”, AsText( ImpPts, NumberFormat.TWO_DECIMAL_PLACES)), if lowend then color.gray else if highend then color.gray else Color.gray);
def ImpPts2 = (vol / Sqrt(52)) * close;
AddLabel(DisplayWeekly1StandardDev, Concat(“1 Week SD +/- $”, AsText( ImpPts2, NumberFormat.TWO_DECIMAL_PLACES)), if lowend then color.gray else if highend then color.gray else Color.gray);
def ImpPts3 = (vol / Sqrt(12)) * close;
AddLabel(DisplayMonthly1StandardDev, Concat(“1 Month SD +/- $”, AsText( ImpPts3, NumberFormat.TWO_DECIMAL_PLACES)), if lowend then color.gray else if highend then color.gray else Color.gray);

plot LowVol = LowVolLimit;
plot HighVol = HighVolLimit;

LowVol.SetDefaultColor(GetColor(6));
HighVol.SetDefaultColor(GetColor(5));

Let me know what you think/if I'm on the right track with what you're thinking...Thanks 😎
@netarchitech, Thanks for posting your indicator!

However, per your code, I realize that the Percentile line rises when the Implied Volatility increases, but …

Question: How could the thinkscript be changed so that the indicator is flipped upside down so that that Percentile line (and the PercentileMA line) falls when the Implied Volatility increases? This would make it essentially move in the same direction as the market instead of opposite. Thanks!
 
@KC8 : You are certainly welcome! Thank you for your Question...

In regards to inverting the Percentile and PercentileMA, I believe this alteration might suffice:

Code:
declare lower;
#declare hide_on_intraday;

#IVPercentile

def vol = imp_volatility();

input DisplayIVPercentile = yes;
input TimePeriod = 252;
input LowVolLimit = 30;
input HighVolLimit = 50;
input Display6monthIVR = yes;
input MiddleTimePeriod = 126;
input DisplayShorterTerm = yes;
input ShortTimePeriod = 63;
input DisplayImpVolatility = yes;
input DisplayDaily1StandardDev = no;
input DisplayWeekly1StandardDev = yes;
input DisplayMonthly1StandardDev = yes;
input InvertRedGreen = yes;
input PercentileMALength = 21;

def data = if !IsNaN(vol) then vol else vol[-1];
def hi = Highest(data, TimePeriod);
def lo = Lowest(data, TimePeriod);
def MiddleHi = Highest(data, MiddleTimePeriod);
def MiddleLo = Lowest(data, MiddleTimePeriod);
def ShortHi = Highest(data, ShortTimePeriod);
def ShortLo = Lowest(data, ShortTimePeriod;

plot Percentile = (data – lo) / (hi – lo) * 100);
Percentile.SetDefaultColor(CreateColor(0, 102, 204));
Percentile.SetLineWeight(2);

plot PercentileMA = ExpAverage(Percentile, PercentileMALength);
PercentileMA.SetDefaultColor(Color.ORANGE);
PercentileMA.SetLineWeight(2);

def lowend = Percentile < LowVolLimit; def highend = Percentile > HighVolLimit;
def mPercentile = (data – MiddleLo) / (MiddleHi – MiddleLo) * 100;
def MiddleLowend = mPercentile < LowVolLimit;
def MiddleHighend = mPercentile < HighVolLimit;
def sPercentile = (data – ShortLo) / (ShortHi – ShortLo) * 100;
def ShortLowend = sPercentile < LowVolLimit; def ShortHighend = sPercentile > HighVolLimit;

DefineGlobalColor(“lowcolor”, if InvertRedGreen then Color.RED else Color.GREEN);
DefineGlobalColor(“Shortlowcolor”, if InvertRedGreen then Color.GREEN else Color.GREEN);
DefineGlobalColor(“highcolor”, if InvertRedGreen then Color.GREEN else Color.RED);
DefineGlobalColor(“Shorthighcolor”, if InvertRedGreen then Color.GREEN else Color.RED);

#Labels

AddLabel(DisplayIVPercentile , Concat(“IV Rank = “, AsPrice(Round(Percentile, 0))), color = CreateColor(255-(Percentile*2.55),Percentile*2.55,0));
AddLabel(Display6monthIVR , Concat(“6mo IVR = “, AsPrice(Round(mPercentile , 0))), color = CreateColor(255-(mPercentile*2.55),mPercentile*2.55,0));
AddLabel(DisplayShorterTerm , Concat(“3mo IVR = “, AsPrice(Round(sPercentile , 0))), color = CreateColor(255-(sPercentile*2.55),sPercentile*2.55,0));
AddLabel(DisplayImpVolatility, Concat(“ImpVol: “, AsPercent(vol)), if lowend then color.gray else if highend then color.gray else color.gray);

def ImpPts = (vol / Sqrt(252)) * close;
AddLabel(DisplayDaily1StandardDev , Concat(“1 Day SD +/- $”, AsText( ImpPts, NumberFormat.TWO_DECIMAL_PLACES)), if lowend then color.gray else if highend then color.gray else Color.gray);
def ImpPts2 = (vol / Sqrt(52)) * close;
AddLabel(DisplayWeekly1StandardDev, Concat(“1 Week SD +/- $”, AsText( ImpPts2, NumberFormat.TWO_DECIMAL_PLACES)), if lowend then color.gray else if highend then color.gray else Color.gray);
def ImpPts3 = (vol / Sqrt(12)) * close;
AddLabel(DisplayMonthly1StandardDev, Concat(“1 Month SD +/- $”, AsText( ImpPts3, NumberFormat.TWO_DECIMAL_PLACES)), if lowend then color.gray else if highend then color.gray else Color.gray);

plot LowVol = LowVolLimit;
plot HighVol = HighVolLimit;

LowVol.SetDefaultColor(GetColor(6));
HighVol.SetDefaultColor(GetColor(5));

@KC8 : I've tried several iterations of potential solutions...Unfortunately, in the end, I was unable to invert the IVPercentile and IVPercentile...
 
  • Like
Reactions: KC8
Is there a way to convert this to work on the daily chart?

The settings for the shared link he provided are different than the default settings for the indicators. I would ask that the author provide scripts instead of links with the correct settings to be used so there is no confusion. Nice work and thanks for contributing.
 
Is there a way to convert this to work on the daily chart?

The settings for the shared link he provided are different than the default settings for the indicators. I would ask that the author provide scripts instead of links with the correct settings to be used so there is no confusion. Nice work and thanks for contributing.
This is a theoritical discussion. Yes, the settings will be constantly evolving.
No, it is not possible to provide what the settings were at any one time, in history.
No, you won't see adaptations made right now.
 
Last edited:

Join useThinkScript to post your question to a community of 21,000+ developers and traders.

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
430 Online
Create Post

Similar threads

Similar threads

The Market Trading Game Changer

Join 2,500+ subscribers inside the useThinkScript VIP Membership Club
  • Exclusive indicators
  • Proven strategies & setups
  • Private Discord community
  • ‘Buy The Dip’ signal alerts
  • Exclusive members-only content
  • Add-ons and resources
  • 1 full year of unlimited support

Frequently Asked Questions

What is useThinkScript?

useThinkScript is the #1 community of stock market investors using indicators and other tools to power their trading strategies. Traders of all skill levels use our forums to learn about scripting and indicators, help each other, and discover new ways to gain an edge in the markets.

How do I get started?

We get it. Our forum can be intimidating, if not overwhelming. With thousands of topics, tens of thousands of posts, our community has created an incredibly deep knowledge base for stock traders. No one can ever exhaust every resource provided on our site.

If you are new, or just looking for guidance, here are some helpful links to get you started.

What are the benefits of VIP Membership?
VIP members get exclusive access to these proven and tested premium indicators: Buy the Dip, Advanced Market Moves 2.0, Take Profit, and Volatility Trading Range. In addition, VIP members get access to over 50 VIP-only custom indicators, add-ons, and strategies, private VIP-only forums, private Discord channel to discuss trades and strategies in real-time, customer support, trade alerts, and much more. Learn all about VIP membership here.
How can I access the premium indicators?
To access the premium indicators, which are plug and play ready, sign up for VIP membership here.
Back
Top