Anna Coulling Volume Price Analysis For ThinkOrSwim

jhey

New member
I'm not in front of my computer.
The process is as simple as pressing the "#" sign one time on your keyboard, there's nothing more to it. That is the ONLY edit you need to make to get it working as you wish. Please reference the above post again.

For your convenience here it is again.
Add a pound sign to the beginning of this line:

AddLabel(showLabels, "Day_volume: " + volume (period = "DAY" ), Color.LIGHT_GRAY);

So it looks like this:

#AddLabel(showLabels, "Day_volume: " + volume (period = "DAY" ), Color.LIGHT_GRAY);

If that is too difficult then simply delete the entire line.
Yesss, success! Thanks for hanging in with me.

mod edit:
It is against our Terms & Guidelines to:
To offer payment for scripts. Solicit members to write scripts for pay or offering services in return for payment.
 
Last edited by a moderator:

makamilman

New member
@Tidan I know it's been a couple months since anyone commented on this indicator but I had just started reading Anna Coulling's works. I was excited to see this indicator for TOS as she does not provide one.
On my chart, I'm not seeing the arrow alerts as I've seen in other pictures on this post. I'm not finding any input for it. Does this include a setting for showing those alert arrows or is this from something else? Thanks.
 

MerryDay

Administrative
Staff member
Staff
VIP
Lifetime
@Tidan I know it's been a couple months since anyone commented on this indicator but I had just started reading Anna Coulling's works. I was excited to see this indicator for TOS as she does not provide one.
On my chart, I'm not seeing the arrow alerts as I've seen in other pictures on this post. I'm not finding any input for it. Does this include a setting for showing those alert arrows or is this from something else? Thanks.
You didn't provide enough information to say where you went astray.

Here is an example chart, using the FIRST script from post#8:
https://usethinkscript.com/threads/...ice-analysis-for-thinkorswim.8882/#post-82520
(the 2nd script is a strategy and won't work in the study tab)

Make sure that you are using it in the "lower chart" area not the "volume chart"
There are no 'arrows' this version uses vertical lines as signals.
There are lots of signals:
oUzURfi.png
 

makamilman

New member
I was trying this on GBP/USD and it was not showing anything. I switched back to SPY and now everything is showing up. Lots of arrows, now to filter the best ones. Any suggestions for that? Thanks for your support.
 

MerryDay

Administrative
Staff member
Staff
VIP
Lifetime
I was trying this on GBP/USD and it was not showing anything. I switched back to SPY and now everything is showing up. Lots of arrows, now to filter the best ones. Any suggestions for that? Thanks for your support.
Volume indicators can only be used on instruments that have volume.
When troubleshooting ToS issues, the explanation point symbol in the upper left-hand corner of the chart can be clicked on for more information.
In this case, it provides a pop-up that states:
Volume is hidden as some bars int are equal to zero.
y2waY9g.png
 
Last edited:

TechGuy

New member
I tend to wait for the next bar to close. If price is divergence with disparity index then I take the trade.
I copied your formula from 12/12/21 and I am trying to distinguish between what is happening between up 1-2-3. To me, they all sound the same. I must not be reading the code properly. Many thanks for your help.
 

Tidan

Member
I copied your formula from 12/12/21 and I am trying to distinguish between what is happening between up 1-2-3. To me, they all sound the same. I must not be reading the code properly. Many thanks for your help.
The formula evaluates volume relative to its moving average and to the range of each candle on the price chart.
 

nxg

New member
The formula evaluates volume relative to its moving average and to the range of each candle on the price chart.
Hi Tidan, can you share what indicator you are using in the #22 chart that is predicting reversals in the upper chart ?
 

MerryDay

Administrative
Staff member
Staff
VIP
Lifetime
Hi Tidan, can you share what indicator you are using in the #22 chart that is predicting reversals in the upper chart ?

The disparity index I use is one I customized to include Bollinger bands, but you can use the factory one that is available in TOS.
When I see a cyan or magenta bar on the Anna Coulling VPA I check to see if the price is in divergence with the disparity index indicator.
 

Intrinsic Knowledge

New member
VIP
# Original script by Cwparker23 # Mods/additions by Tidan # Updates: # Further reduced redundancy # # v2.1 #hint: The indicator finds irregular bodies based on candle size and volume it colors price to indicate irregular bodies below volume average (blue bullish and plum bearish) and indicate bodies above-average volume (cyan bullish and magenta bearish). Also colors price with above-average volume (green bullish and red bearish) and below-average volume (light green bullish and orange bearish). input multiplier = 2; input allowOpposingVolume = yes; AddLabel(yes, "Day_volume: " + volume (period = "DAY" ), Color.LIGHT_GRAY); AddLabel(yes, "volume: " + volume, Color.white); declare lower; declare zerobase; plot Vol = volume; plot VolAvg = expAverage(volume); VolAvg .SetPaintingStrategy(PaintingStrategy.squared_HISTOGRAM); VolAvg .SetDefaultColor(Color.GRAY); def BODY_RANGE = max(oPEN,cLOSE) - min(oPEN,cLOSE); def IR_BODY = if (BODY_RANGE < BODY_RANGE[1]) and (volume > volume[1]) then 1 else 0 ; def IR_BODYG = if IR_BODY and (close > open) then 1 else 0; def IR_BODYR = if IR_BODY and (close < open) then 1 else 0; #### def up3 = if IR_BODYG and (Vol > VolAvg) then 1 else 0; def up4 = if IR_BODYG then 1 else 0; def down3 = if IR_BODYR and (Vol > VolAvg) then 1 else 0; def down4 = if IR_BODYR then 1 else 0; def up = if (close > open) and (Vol > VolAvg) then 1 else 0; def down = if (close < open) and (Vol > VolAvg) then 1 else 0; def up2 = if (close > open) then 1 else 0; def down2 = if (close < open) then 1 else 0; #### Vol.SetPaintingStrategy(PaintingStrategy.HISTOGRAM); Vol.SetLineWeight(3); Vol.DefineColor("Up", Color.green); Vol.DefineColor("Down", Color.red); Vol.DefineColor("Up2", Color.light_green); Vol.DefineColor("Down2", Color.dark_ORANGE ); Vol.DefineColor("Up3", Color.cyan); Vol.DefineColor("Up4", Color.blue); Vol.DefineColor("Down3", Color.mAGENTA ); Vol.DefineColor("Down4", Color.plum ); Vol.AssignValueColor( if up3 then Vol.color("Up3") else if up4 then Vol.color("Up4") else if down3 then Vol.color("Down3") else if down4 then Vol.color("Down4") else if up then Vol.color("Up") else if down then Vol.color("Down") else if up2 then Vol.color("Up2") else if down2 then Vol.color("Down2") else GetColor(1)); input paintBars = yes; DefineGlobalColor("CAM_UP", Color.GREEN); DefineGlobalColor("CAM_UP2", Color.liGHT_GREEN); DefineGlobalColor("CAM_UP3", Color.cyan); DefineGlobalColor("CAM_UP4", Color.blue); DefineGlobalColor("CAM_DN", Color.RED); DefineGlobalColor("CAM_DN2", Color.darK_ORANGE ); DefineGlobalColor("CAM_DN3", Color.mAGENTA ); DefineGlobalColor("CAM_DN4", Color.plum ); AssignPriceColor( if !paintBars then Color.CURRENT else if up3 then GlobalColor("CAM_UP3") else if down3 then GlobalColor("CAM_DN3") else if up4 then GlobalColor("CAM_UP4") else if down4 then GlobalColor("CAM_DN4") else if up then GlobalColor("CAM_UP") else if down then GlobalColor("CAM_DN") else if up2 then GlobalColor("CAM_UP2") else if down2 then GlobalColor("CAM_DN2") else Color.CURRENT); def bull = if up3 and vol >= (volAvg * multiplier) and (up3[-1] or up4[-1] or up[-1] or up2[-1]) then yes else if allowOpposingVolume and down3 and (vol >= (volAvg * multiplier)) and (up3[-1] or up4[-1] or up[-1] or up2[-1]) then yes else double.nan; def bear = if down3 and vol >= (volAvg * multiplier) and (down3[-1] or down4[-1] or down[-1] or down2[-1]) then yes else if allowOpposingVolume and up3 and (vol >= (volAvg * multiplier)) and (down3[-1] or down4[-1] or down[-1] or down2[-1]) then yes else double.nan; addVerticalLine(bull[1],"bull",color.green,curve.short_dash); addverticalLine(bear[1],"bear",color.red,curve.short_dash); # end of script
Hi bro Tidan, thank you so much for this! The below signal works well, please could you advise the "logic" behind and it would be very much appreciated! Thanks in advance. Cheers

def bull =
if up3 and vol >= (volAvg * multiplier) and (up3[-1] or up4[-1] or up[-1] or up2[-1]) then yes
else if allowOpposingVolume and down3 and (vol >= (volAvg * multiplier)) and (up3[-1] or up4[-1] or up[-1] or up2[-1]) then yes
else double.nan;
def bear =
if down3 and vol >= (volAvg * multiplier) and (down3[-1] or down4[-1] or down[-1] or down2[-1]) then yes
else if allowOpposingVolume and up3 and (vol >= (volAvg * multiplier)) and (down3[-1] or down4[-1] or down[-1] or down2[-1]) then yes
else double.nan;
 

Tidan

Member
Hi bro Tidan, thank you so much for this! The below signal works well, please could you advise the "logic" behind and it would be very much appreciated! Thanks in advance. Cheers

def bull =
if up3 and vol >= (volAvg * multiplier) and (up3[-1] or up4[-1] or up[-1] or up2[-1]) then yes
else if allowOpposingVolume and down3 and (vol >= (volAvg * multiplier)) and (up3[-1] or up4[-1] or up[-1] or up2[-1]) then yes
else double.nan;
def bear =
if down3 and vol >= (volAvg * multiplier) and (down3[-1] or down4[-1] or down[-1] or down2[-1]) then yes
else if allowOpposingVolume and up3 and (vol >= (volAvg * multiplier)) and (down3[-1] or down4[-1] or down[-1] or down2[-1]) then yes
else double.nan;
It's largely based on Anna Coulling's volume price analysis. Clicking the question mark next to the study will give you more details.
 

BigScalp

Member
VIP
@Cwparker23 I know getting lots of custom indicators to work on mobile are tricky. Since mobile basically only plots a single color(with your code), is it possible to add options within the code for certain time charts to choose and options for only specific color bars to display?

So for example, let's say on mobile I want to look at the 5min chart and the red bars are the only bars I want to display...is this possible?

Forget about the time frame. Anyway to just add in the code to display only certain color bars?
 
Last edited by a moderator:

BigScalp

Member
VIP
Yes, you would have to use an if then statement and paint strategy histogram

I'm not sure exactly how to enter it in but what I'm looking for is basically:

if any other color than green do not display else green

When you get a chance could you let me know exactly how I would enter that into the code? All your time is appreciated.
 

Similar threads

Top