Volume Support & Resistance Zones

A

AngryBeavers

Guest
Hi @SuryaKiranC and @cos251 and @mashume, was wondering if one of you could help me out. I was watching youtube video that has the same concept as:
https://usethinkscript.com/threads/vzone-volumes-based-support-resistance-for-thinkorswim.7169/
but is a little bit different.

In the video she looks at the highest volume bars on a daily chart (at the 2:14 mark of the video) and draws and extends a horizontal line at the base of the price candle for each of those matching high volume bars. I would like to utilize the same two volume lower indicators (plots Buys/Sells and set Average across them) that you have in the original post of this thread to be implemented with this also, especially the set Average across them.

Here is a picture of my setup and the reason why I am asking for help is because I am a new trader and am currently using @MerryDay advice and setup using Mobius's Volume waves, trend pivots and RSI Laguerre (found here):

https://usethinkscript.com/threads/...-and-rsi-laguerre-for-thinkorswim.8035/page-2

and I would like to keep that current setup but not have the volume take up real estate as a bottom indicator and not have to manually plot support and resistance lines off of extreme volume bars.

Below is a my current setup with manual support and resistance lines based off of high volume (shown in white ARROWS)
Thank you in advance for your advice and help.

 
Last edited by a moderator:
@MerryDay can you please move this back to the original forum
That thread is for discussing the indicator as it is written in the first post.
If you want a new indicator or these types of changes to the original indicator. You need to ask in a new thread.
You can refer to that indicator and more importantly you need to explain in a well-laid out logic map with the quantitative mathematical conditions that you want to add or revise. I am sure the video is very informative, but as the requester, you need to be able to provide in words and images, the conditional computational changes that you seeking.

Then, if what you are asking is possible, @SuryaKiranC and @cos251 and @mashume, or one of the other amazing contributors on this forum will be able to take a stab at providing the syntax.

Hope this helps.
 
Last edited:

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

That thread is for discussing the indicator as it is written in the first post.
If you want a new indicator or these types of changes to the original indicator. You need to ask in a new thread.
You can refer to that indicator and more importantly you need to explain in a well-laid out logic map with the quantitative mathematical conditions that you want to add or revise. I am sure the video is very informative, but as the requester, you need to be able to provide in words and images, the conditional computational changes that you seeking.

Then, if what you are asking is possible, @SuryaKiranC and @cos251 and @mashume, or one of the other amazing contributors on this forum will be able to take a stab at providing the syntax.

Hope this helps.
Okay got it thank you. What if I don't know or understand the quantitative mathmatical conditions (I am brand new to this and math is not one of my strong suits..I apologize) but am simply looking for help mapping out support and resistance based on the unusual high volume on a daily or a 15 minute chart like shown in the video and how it looks on the chart that I manually drew in and uploaded? Thanks. I updated above post with new picture showing in greater detail what I was trying to explain with arrows and verbage.
 
Last edited by a moderator:
Okay got it thank you. What if I don't know or understand the quantitative mathmatical conditions (I am brand new to this and math is not one of my strong suits..I apologize) but am simply looking for help mapping out support and resistance based on the unusual high volume on a daily or a 15 minute chart like shown in the video and how it looks on the chart that I manually drew in and uploaded? Thanks. I updated above post with new picture showing in greater detail what I was trying to explain with arrows and verbage.


hello and welcome.
this may sound harsh , but it isn't meant to be, just blunt.
i don't don't understand your remarks about averages from something else.
later i will try to make a study that draws several lines.
-------------------------------

you don't need to know any programming to list out some rules for a study to follow. just write out short sentences that describe each rule. if you can't describe what you want, then you aren't ready. keep reading and studying.

i'm not going to watch a video to figure out what you want. that is your job.
you watch it and write up an outline, the best you can, that descibes each rule the study should act on and what to do.

example...
1. if volume crosses above avg(vol, x),
.1a. start plotting horz line, from ??, the close of the candle. it goes until retriggered. if 10 lines, then every 10th trigger will restart one of the lines.
.1b. copy this code 10x, so up to 10 lines are drawn at once.


"..horizontal line at the base of the price candle.."
base isn't a candle price parameter. what do you want to draw lines from?
 
Okay got it thank you. What if I don't know or understand the quantitative mathmatical conditions (I am brand new to this and math is not one of my strong suits..I apologize) but am simply looking for help mapping out support and resistance based on the unusual high volume on a daily or a 15 minute chart like shown in the video and how it looks on the chart that I manually drew in and uploaded? Thanks. I updated above post with new picture showing in greater detail what I was trying to explain with arrows and verbage.

EDIT
sorry for posting this code before checking it ( i typed it up on my cell)
it had too many typos and errors so i removed it.

working on a working version.....


---------------------------------------------

here is something that I threw together on my cell. Formulas 4 to 9 will need to be created by copying similar ones and changing the numbers.
I will check back tonight and probably edit this post with a working version.


when volume crosses above a volume average level,
increment a line counter,
update the value of that specific line number.

start drawing a horz line from the close of that bar,
until
 
Last edited:
hello and welcome.
this may sound harsh , but it isn't meant to be, just blunt.
i don't don't understand your remarks about averages from something else.
later i will try to make a study that draws several lines.
-------------------------------

you don't need to know any programming to list out some rules for a study to follow. just write out short sentences that describe each rule. if you can't describe what you want, then you aren't ready. keep reading and studying.

i'm not going to watch a video to figure out what you want. that is your job.
you watch it and write up an outline, the best you can, that descibes each rule the study should act on and what to do.

example...
1. if volume crosses above avg(vol, x),
.1a. start plotting horz line, from ??, the close of the candle. it goes until retriggered. if 10 lines, then every 10th trigger will restart one of the lines.
.1b. copy this code 10x, so up to 10 lines are drawn at once.


"..horizontal line at the base of the price candle.."
base isn't a candle price parameter. what do you want to draw lines from?
Hi, no problem I appreciate the feedback...My comment about "Set average across them" was from @SuryaKiranC original Post #102 on this forum https://usethinkscript.com/threads/vzone-volumes-based-support-resistance-for-thinkorswim.7169/

My original post and question including that verbage was moved here because that forum was for the vzone indicator. I apologize for the miscommunication. Okay, I understand and I didn't expect you to watch the video, I only posted it if anyone was interested in her philosophy. I will write out what you specified and get right back to you. Thanks for your help.
 
Hi @halcyonguy ,

Okay if you could please help me with the following:

1) If volume crosses above average volume.
2) If possible have an option for not just above the average volume but also major volume spikes (2x to say 5x the average volume) because stocks like WMT are a lot different volume wise than say for example ZM if that makes any sense and maybe the support and resistance lines would be drawn too close together?
2) Start plotting horizontal line from the lowest price of that matching candle/volume in that time frame.
3) Copy this code 10x so up to 10 lines are drawn at once.

Again sorry for the miscommunication and I appreciate your help and bluntness.
 
Last edited by a moderator:
Hi @halcyonguy ,

Okay if you could please help me with the following:

1) If volume crosses above average volume.
2) If possible have an option for not just above the average volume but also major volume spikes (2x to say 5x the average volume) because stocks like WMT are a lot different volume wise than say for example ZM if that makes any sense and maybe the support and resistance lines would be drawn too close together?
2) Start plotting horizontal line from the lowest price of that matching candle/volume in that time frame.
3) Copy this code 10x so up to 10 lines are drawn at once.

Again sorry for the miscommunication and I appreciate your help and bluntness.


here is a fixed study

when volume crosses above a volume average * 1.5 (a vol factor) a horizontal line is drawn.
default is 15 lines at a time. can be less.


Ruby:
# bigvol_sr_horzlines_00

declare upper;

def na = Double.NaN;
def bn = BarNumber();

def v = volume;
input volavg_len = 20;
def vavg = Average(v, volavg_len);

input volavg_factor = 1.5;
def volf = floor(vavg * volavg_factor);
def vxup = if v crosses above volf then 1 else 0;


#----------------------
# if lmax Is increased > 15, then more formulas will have to be added,  L#  and plot commands.
def lmax = 15;

input qty_of_lines = 15;
def lqty = if qty_of_lines < 1 then 1
else if qty_of_lines > lmax then lmax
else qty_of_lines;

#----------------------
# incr line counter on each vol trigger
#  counts 1 to qty_of_lines, then resets to 1
def linecnt = if bn == 1 then 0
else if vxup and linecnt[1] == qty_of_lines then 1
else if vxup then linecnt[1] + 1
else linecnt[1];


input show_wedge_on_vol_trigger = no;
plot w = if show_wedge_on_vol_trigger and vxup then 1 else 0;
w.SetPaintingStrategy(PaintingStrategy.BOOLEAN_WEDGE_up);
w.SetDefaultColor(Color.WHITE);
#w.SetLineWeight(2);

#--------------------------------------

addlabel(1, "volavg_len " + volavg_len, color.yellow);
addlabel(1, "volavg_factor " + volavg_factor, color.yellow);


input show_line_count = no;
plot y1 = if vxup and show_line_count then linecnt else na;
y1.SetPaintingStrategy(PaintingStrategy.VALUES_below);
y1.SetDefaultColor(Color.white);
#y1.setlineweight(1);
y1.hidebubble();


input test1_labels = no;
addlabel( test1_labels, "vol cross up " + vxup, color.yellow);
addlabel( test1_labels, "qty_of_lines " + qty_of_lines, color.yellow);
addlabel( test1_labels, "linecnt " + linecnt, color.yellow);


input test2_linecnt_bubbles = no;
addchartbubble(test2_linecnt_bubbles, low*0.997,
bn + " bn\n" +
vxup + " x\n" +
linecnt + " cnt"
, ( if vxup then color.yellow else color.gray), no);


#----------------------

def linelevel = low;
#def init = na;
def init = 0;

def L1 = if bn == 1 then init else if (vxup and linecnt == 1) then linelevel else L1[1];
def L2 = if bn == 1 then init else if (vxup and linecnt == 2) then linelevel else L2[1];
def L3 = if bn == 1 then init else if (vxup and linecnt == 3) then linelevel else L3[1];
def L4 = if bn == 1 then init else if (vxup and linecnt == 4) then linelevel else L4[1];
def L5 = if bn == 1 then init else if (vxup and linecnt == 5) then linelevel else L5[1];
def L6 = if bn == 1 then init else if (vxup and linecnt == 6) then linelevel else L6[1];
def L7 = if bn == 1 then init else if (vxup and linecnt == 7) then linelevel else L7[1];
def L8 = if bn == 1 then init else if (vxup and linecnt == 8) then linelevel else L8[1];
def L9 = if bn == 1 then init else if (vxup and linecnt == 9) then linelevel else L9[1];
def L10 = if bn == 1 then init else if (vxup and linecnt == 10) then linelevel else L10[1];

def L11 = if bn == 1 then init else if (vxup and linecnt == 11) then linelevel else L11[1];
def L12 = if bn == 1 then init else if (vxup and linecnt == 12) then linelevel else L12[1];
def L13 = if bn == 1 then init else if (vxup and linecnt == 13) then linelevel else L13[1];
def L14 = if bn == 1 then init else if (vxup and linecnt == 14) then linelevel else L14[1];
def L15 = if bn == 1 then init else if (vxup and linecnt == 15) then linelevel else L15[1];


#----------------------
plot z1 = L1;
z1.SetDefaultColor(Color.GRAY);
z1.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z2 = L2;
z2.SetDefaultColor(Color.GRAY);
z2.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z3 = L3;
z3.SetDefaultColor(Color.GRAY);
z3.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z4 = L4;
z4.SetDefaultColor(Color.GRAY);
z4.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z5 = L5;
z5.SetDefaultColor(Color.GRAY);
z5.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z6 = L6;
z6.SetDefaultColor(Color.GRAY);
z6.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z7 = L7;
z7.SetDefaultColor(Color.GRAY);
z7.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z8 = L8;
z8.SetDefaultColor(Color.GRAY);
z8.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z9 = L9;
z9.SetDefaultColor(Color.GRAY);
z9.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z10 = L10;
z10.SetDefaultColor(Color.GRAY);
z10.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

plot z11 = L11;
z11.SetDefaultColor(Color.GRAY);
z11.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z12 = L12;
z12.SetDefaultColor(Color.GRAY);
z12.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z13 = L13;
z13.SetDefaultColor(Color.GRAY);
z13.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z14 = L14;
z14.SetDefaultColor(Color.GRAY);
z14.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z15 = L15;
z15.SetDefaultColor(Color.GRAY);
z15.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

#----------------------

input test3_line_values = no;
addchartbubble(test3_line_values, low*0.997,
l1 + " 1\n" +
l2 + " 2\n" +
l3 + " 3\n" +
l4 + " 4\n" +
l5 + " 5\n" +
l6 + " 6\n" +
l7 + " 7\n" +
l8 + " 8\n" +
l9 + " 9\n" +
l10 + " 10"
, ( if vxup then color.yellow else color.gray), no);
#
#


TJX 10D 15m
15 horizontal lines are drawn when volume crosses above a volume average * 1.5 (a vol factor)
wedges and line counts are set to yes

xyOVSNq.jpg



=====================================


this is a test study to have a visual on when volume spikes cross the average
make sure this has same settings as main chart settings

Ruby:
# volavg2_fac
input volavg_len = 20;
def volavg = average(volume, volavg_len);

input volavg_factor = 1.5;
def volf = floor(volavg * volavg_factor);
def vxup = if volume crosses above volf then 1 else 0;

plot z1 = volavg;
plot z2 = volf;
z1.SetDefaultColor(Color.gray);
z2.SetDefaultColor(Color.cyan);

addlabel(1, "volavg_len " + volavg_len, color.yellow);
addlabel(1, "volavg_factor " + volavg_factor, color.cyan);
#
 
Last edited:
@halcyonguy Thank you very much for all of your help, I appreciate you taking the time out to help me out.
It looks amazing!! Perfect, just what I was looking for.
 
Last edited by a moderator:
Hi @SuryaKiranC and @cos251 and @mashume, was wondering if one of you could help me out. I was watching youtube video that has the same concept as:
https://usethinkscript.com/threads/vzone-volumes-based-support-resistance-for-thinkorswim.7169/
but is a little bit different.

In the video she looks at the highest volume bars on a daily chart (at the 2:14 mark of the video) and draws and extends a horizontal line at the base of the price candle for each of those matching high volume bars. I would like to utilize the same two volume lower indicators (plots Buys/Sells and set Average across them) that you have in the original post of this thread to be implemented with this also, especially the set Average across them.

Here is a picture of my setup and the reason why I am asking for help is because I am a new trader and am currently using @MerryDay advice and setup using Mobius's Volume waves, trend pivots and RSI Laguerre (found here):

https://usethinkscript.com/threads/...-and-rsi-laguerre-for-thinkorswim.8035/page-2

and I would like to keep that current setup but not have the volume take up real estate as a bottom indicator and not have to manually plot support and resistance lines off of extreme volume bars.

Below is a my current setup with manual support and resistance lines based off of high volume (shown in white ARROWS)
Thank you in advance for your advice and help.

Hi @AngryBeavers - Could you please share the studies you have on the imgur screenshot above? Thanks for your help!
 
here is a fixed study

when volume crosses above a volume average * 1.5 (a vol factor) a horizontal line is drawn.
default is 15 lines at a time. can be less.


Ruby:
# bigvol_sr_horzlines_00

declare upper;

def na = Double.NaN;
def bn = BarNumber();

def v = volume;
input volavg_len = 20;
def vavg = Average(v, volavg_len);

input volavg_factor = 1.5;
def volf = floor(vavg * volavg_factor);
def vxup = if v crosses above volf then 1 else 0;


#----------------------
# if lmax Is increased > 15, then more formulas will have to be added,  L#  and plot commands.
def lmax = 15;

input qty_of_lines = 15;
def lqty = if qty_of_lines < 1 then 1
else if qty_of_lines > lmax then lmax
else qty_of_lines;

#----------------------
# incr line counter on each vol trigger
#  counts 1 to qty_of_lines, then resets to 1
def linecnt = if bn == 1 then 0
else if vxup and linecnt[1] == qty_of_lines then 1
else if vxup then linecnt[1] + 1
else linecnt[1];


input show_wedge_on_vol_trigger = no;
plot w = if show_wedge_on_vol_trigger and vxup then 1 else 0;
w.SetPaintingStrategy(PaintingStrategy.BOOLEAN_WEDGE_up);
w.SetDefaultColor(Color.WHITE);
#w.SetLineWeight(2);

#--------------------------------------

addlabel(1, "volavg_len " + volavg_len, color.yellow);
addlabel(1, "volavg_factor " + volavg_factor, color.yellow);


input show_line_count = no;
plot y1 = if vxup and show_line_count then linecnt else na;
y1.SetPaintingStrategy(PaintingStrategy.VALUES_below);
y1.SetDefaultColor(Color.white);
#y1.setlineweight(1);
y1.hidebubble();


input test1_labels = no;
addlabel( test1_labels, "vol cross up " + vxup, color.yellow);
addlabel( test1_labels, "qty_of_lines " + qty_of_lines, color.yellow);
addlabel( test1_labels, "linecnt " + linecnt, color.yellow);


input test2_linecnt_bubbles = no;
addchartbubble(test2_linecnt_bubbles, low*0.997,
bn + " bn\n" +
vxup + " x\n" +
linecnt + " cnt"
, ( if vxup then color.yellow else color.gray), no);


#----------------------

def linelevel = low;
#def init = na;
def init = 0;

def L1 = if bn == 1 then init else if (vxup and linecnt == 1) then linelevel else L1[1];
def L2 = if bn == 1 then init else if (vxup and linecnt == 2) then linelevel else L2[1];
def L3 = if bn == 1 then init else if (vxup and linecnt == 3) then linelevel else L3[1];
def L4 = if bn == 1 then init else if (vxup and linecnt == 4) then linelevel else L4[1];
def L5 = if bn == 1 then init else if (vxup and linecnt == 5) then linelevel else L5[1];
def L6 = if bn == 1 then init else if (vxup and linecnt == 6) then linelevel else L6[1];
def L7 = if bn == 1 then init else if (vxup and linecnt == 7) then linelevel else L7[1];
def L8 = if bn == 1 then init else if (vxup and linecnt == 8) then linelevel else L8[1];
def L9 = if bn == 1 then init else if (vxup and linecnt == 9) then linelevel else L9[1];
def L10 = if bn == 1 then init else if (vxup and linecnt == 10) then linelevel else L10[1];

def L11 = if bn == 1 then init else if (vxup and linecnt == 11) then linelevel else L11[1];
def L12 = if bn == 1 then init else if (vxup and linecnt == 12) then linelevel else L12[1];
def L13 = if bn == 1 then init else if (vxup and linecnt == 13) then linelevel else L13[1];
def L14 = if bn == 1 then init else if (vxup and linecnt == 14) then linelevel else L14[1];
def L15 = if bn == 1 then init else if (vxup and linecnt == 15) then linelevel else L15[1];


#----------------------
plot z1 = L1;
z1.SetDefaultColor(Color.GRAY);
z1.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z2 = L2;
z2.SetDefaultColor(Color.GRAY);
z2.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z3 = L3;
z3.SetDefaultColor(Color.GRAY);
z3.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z4 = L4;
z4.SetDefaultColor(Color.GRAY);
z4.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z5 = L5;
z5.SetDefaultColor(Color.GRAY);
z5.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z6 = L6;
z6.SetDefaultColor(Color.GRAY);
z6.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z7 = L7;
z7.SetDefaultColor(Color.GRAY);
z7.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z8 = L8;
z8.SetDefaultColor(Color.GRAY);
z8.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z9 = L9;
z9.SetDefaultColor(Color.GRAY);
z9.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z10 = L10;
z10.SetDefaultColor(Color.GRAY);
z10.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

plot z11 = L11;
z11.SetDefaultColor(Color.GRAY);
z11.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z12 = L12;
z12.SetDefaultColor(Color.GRAY);
z12.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z13 = L13;
z13.SetDefaultColor(Color.GRAY);
z13.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z14 = L14;
z14.SetDefaultColor(Color.GRAY);
z14.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z15 = L15;
z15.SetDefaultColor(Color.GRAY);
z15.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

#----------------------

input test3_line_values = no;
addchartbubble(test3_line_values, low*0.997,
l1 + " 1\n" +
l2 + " 2\n" +
l3 + " 3\n" +
l4 + " 4\n" +
l5 + " 5\n" +
l6 + " 6\n" +
l7 + " 7\n" +
l8 + " 8\n" +
l9 + " 9\n" +
l10 + " 10"
, ( if vxup then color.yellow else color.gray), no);
#
#


TJX 10D 15m
15 horizontal lines are drawn when volume crosses above a volume average * 1.5 (a vol factor)
wedges and line counts are set to yes

xyOVSNq.jpg



=====================================


this is a test study to have a visual on when volume spikes cross the average
make sure this has same settings as main chart settings

Ruby:
# volavg2_fac
input volavg_len = 20;
def volavg = average(volume, volavg_len);

input volavg_factor = 1.5;
def volf = floor(volavg * volavg_factor);
def vxup = if volume crosses above volf then 1 else 0;

plot z1 = volavg;
plot z2 = volf;
z1.SetDefaultColor(Color.gray);
z2.SetDefaultColor(Color.cyan);

addlabel(1, "volavg_len " + volavg_len, color.yellow);
addlabel(1, "volavg_factor " + volavg_factor, color.cyan);
#
@halcyonguy....this is great...can I ask for theses codes but with some changes. Is it possible for it to place the lines at the close instead of the open....and can the lines be red for the unusual red volume and green for unusual green volume?
 
Last edited by a moderator:
here is a fixed study

when volume crosses above a volume average * 1.5 (a vol factor) a horizontal line is drawn.
default is 15 lines at a time. can be less.


Ruby:
# bigvol_sr_horzlines_00

declare upper;

def na = Double.NaN;
def bn = BarNumber();

def v = volume;
input volavg_len = 20;
def vavg = Average(v, volavg_len);

input volavg_factor = 1.5;
def volf = floor(vavg * volavg_factor);
def vxup = if v crosses above volf then 1 else 0;


#----------------------
# if lmax Is increased > 15, then more formulas will have to be added,  L#  and plot commands.
def lmax = 15;

input qty_of_lines = 15;
def lqty = if qty_of_lines < 1 then 1
else if qty_of_lines > lmax then lmax
else qty_of_lines;

#----------------------
# incr line counter on each vol trigger
#  counts 1 to qty_of_lines, then resets to 1
def linecnt = if bn == 1 then 0
else if vxup and linecnt[1] == qty_of_lines then 1
else if vxup then linecnt[1] + 1
else linecnt[1];


input show_wedge_on_vol_trigger = no;
plot w = if show_wedge_on_vol_trigger and vxup then 1 else 0;
w.SetPaintingStrategy(PaintingStrategy.BOOLEAN_WEDGE_up);
w.SetDefaultColor(Color.WHITE);
#w.SetLineWeight(2);

#--------------------------------------

addlabel(1, "volavg_len " + volavg_len, color.yellow);
addlabel(1, "volavg_factor " + volavg_factor, color.yellow);


input show_line_count = no;
plot y1 = if vxup and show_line_count then linecnt else na;
y1.SetPaintingStrategy(PaintingStrategy.VALUES_below);
y1.SetDefaultColor(Color.white);
#y1.setlineweight(1);
y1.hidebubble();


input test1_labels = no;
addlabel( test1_labels, "vol cross up " + vxup, color.yellow);
addlabel( test1_labels, "qty_of_lines " + qty_of_lines, color.yellow);
addlabel( test1_labels, "linecnt " + linecnt, color.yellow);


input test2_linecnt_bubbles = no;
addchartbubble(test2_linecnt_bubbles, low*0.997,
bn + " bn\n" +
vxup + " x\n" +
linecnt + " cnt"
, ( if vxup then color.yellow else color.gray), no);


#----------------------

def linelevel = low;
#def init = na;
def init = 0;

def L1 = if bn == 1 then init else if (vxup and linecnt == 1) then linelevel else L1[1];
def L2 = if bn == 1 then init else if (vxup and linecnt == 2) then linelevel else L2[1];
def L3 = if bn == 1 then init else if (vxup and linecnt == 3) then linelevel else L3[1];
def L4 = if bn == 1 then init else if (vxup and linecnt == 4) then linelevel else L4[1];
def L5 = if bn == 1 then init else if (vxup and linecnt == 5) then linelevel else L5[1];
def L6 = if bn == 1 then init else if (vxup and linecnt == 6) then linelevel else L6[1];
def L7 = if bn == 1 then init else if (vxup and linecnt == 7) then linelevel else L7[1];
def L8 = if bn == 1 then init else if (vxup and linecnt == 8) then linelevel else L8[1];
def L9 = if bn == 1 then init else if (vxup and linecnt == 9) then linelevel else L9[1];
def L10 = if bn == 1 then init else if (vxup and linecnt == 10) then linelevel else L10[1];

def L11 = if bn == 1 then init else if (vxup and linecnt == 11) then linelevel else L11[1];
def L12 = if bn == 1 then init else if (vxup and linecnt == 12) then linelevel else L12[1];
def L13 = if bn == 1 then init else if (vxup and linecnt == 13) then linelevel else L13[1];
def L14 = if bn == 1 then init else if (vxup and linecnt == 14) then linelevel else L14[1];
def L15 = if bn == 1 then init else if (vxup and linecnt == 15) then linelevel else L15[1];


#----------------------
plot z1 = L1;
z1.SetDefaultColor(Color.GRAY);
z1.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z2 = L2;
z2.SetDefaultColor(Color.GRAY);
z2.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z3 = L3;
z3.SetDefaultColor(Color.GRAY);
z3.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z4 = L4;
z4.SetDefaultColor(Color.GRAY);
z4.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z5 = L5;
z5.SetDefaultColor(Color.GRAY);
z5.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z6 = L6;
z6.SetDefaultColor(Color.GRAY);
z6.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z7 = L7;
z7.SetDefaultColor(Color.GRAY);
z7.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z8 = L8;
z8.SetDefaultColor(Color.GRAY);
z8.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z9 = L9;
z9.SetDefaultColor(Color.GRAY);
z9.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z10 = L10;
z10.SetDefaultColor(Color.GRAY);
z10.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

plot z11 = L11;
z11.SetDefaultColor(Color.GRAY);
z11.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z12 = L12;
z12.SetDefaultColor(Color.GRAY);
z12.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z13 = L13;
z13.SetDefaultColor(Color.GRAY);
z13.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z14 = L14;
z14.SetDefaultColor(Color.GRAY);
z14.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z15 = L15;
z15.SetDefaultColor(Color.GRAY);
z15.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

#----------------------

input test3_line_values = no;
addchartbubble(test3_line_values, low*0.997,
l1 + " 1\n" +
l2 + " 2\n" +
l3 + " 3\n" +
l4 + " 4\n" +
l5 + " 5\n" +
l6 + " 6\n" +
l7 + " 7\n" +
l8 + " 8\n" +
l9 + " 9\n" +
l10 + " 10"
, ( if vxup then color.yellow else color.gray), no);
#
#


TJX 10D 15m
15 horizontal lines are drawn when volume crosses above a volume average * 1.5 (a vol factor)
wedges and line counts are set to yes

xyOVSNq.jpg



=====================================


this is a test study to have a visual on when volume spikes cross the average
make sure this has same settings as main chart settings

Ruby:
# volavg2_fac
input volavg_len = 20;
def volavg = average(volume, volavg_len);

input volavg_factor = 1.5;
def volf = floor(volavg * volavg_factor);
def vxup = if volume crosses above volf then 1 else 0;

plot z1 = volavg;
plot z2 = volf;
z1.SetDefaultColor(Color.gray);
z2.SetDefaultColor(Color.cyan);

addlabel(1, "volavg_len " + volavg_len, color.yellow);
addlabel(1, "volavg_factor " + volavg_factor, color.cyan);
#
Hi @halcyonguy, quick question..Is it possible to use this on a 333t 5day tick chart? I tried, but did not see any horizontal lines show up. I'm assuming that's because this is based on price and the tick chart is based on the amount of trades/transactions? Thanks for your help.

@MerryDay how would I go about asking for help if I wanted to use the above script on a tick chart? I asked halcyonguy but he didn't know. I just don't want to post on wrong thread or don't know if I am allowed to post another question thread? Thanks and I will delete this paragraph once I hear back from you. I didn't know how else to reach out to ask. Thanks
 
Last edited by a moderator:
Hi @halcyonguy, quick question..Is it possible to use this on a 333t 5day tick chart? I tried, but did not see any horizontal lines show up. I'm assuming that's because this is based on price and the tick chart is based on the amount of trades/transactions?

The reason why I ask is that I'm currently using the above setup in post #1 and I noticed that I got more accurate entry and exit signals using the 333t 5 day chart (which also coincided with Mobius's supertrend volume waves along with his trend reversal and RSI Laguerre indicator) and I was researching if it was feasible to in fact use a volume related indicator with tick charts and there was some research published back in 2011 by Casper Marney who felt there was a 90% correlation of strikingly high levels of accuracy.





Thanks for your help.
sorry, i don't know, i don't use tick charts.
 
here is a fixed study

when volume crosses above a volume average * 1.5 (a vol factor) a horizontal line is drawn.
default is 15 lines at a time. can be less.


Ruby:
# bigvol_sr_horzlines_00

declare upper;

def na = Double.NaN;
def bn = BarNumber();

def v = volume;
input volavg_len = 20;
def vavg = Average(v, volavg_len);

input volavg_factor = 1.5;
def volf = floor(vavg * volavg_factor);
def vxup = if v crosses above volf then 1 else 0;


#----------------------
# if lmax Is increased > 15, then more formulas will have to be added,  L#  and plot commands.
def lmax = 15;

input qty_of_lines = 15;
def lqty = if qty_of_lines < 1 then 1
else if qty_of_lines > lmax then lmax
else qty_of_lines;

#----------------------
# incr line counter on each vol trigger
#  counts 1 to qty_of_lines, then resets to 1
def linecnt = if bn == 1 then 0
else if vxup and linecnt[1] == qty_of_lines then 1
else if vxup then linecnt[1] + 1
else linecnt[1];


input show_wedge_on_vol_trigger = no;
plot w = if show_wedge_on_vol_trigger and vxup then 1 else 0;
w.SetPaintingStrategy(PaintingStrategy.BOOLEAN_WEDGE_up);
w.SetDefaultColor(Color.WHITE);
#w.SetLineWeight(2);

#--------------------------------------

addlabel(1, "volavg_len " + volavg_len, color.yellow);
addlabel(1, "volavg_factor " + volavg_factor, color.yellow);


input show_line_count = no;
plot y1 = if vxup and show_line_count then linecnt else na;
y1.SetPaintingStrategy(PaintingStrategy.VALUES_below);
y1.SetDefaultColor(Color.white);
#y1.setlineweight(1);
y1.hidebubble();


input test1_labels = no;
addlabel( test1_labels, "vol cross up " + vxup, color.yellow);
addlabel( test1_labels, "qty_of_lines " + qty_of_lines, color.yellow);
addlabel( test1_labels, "linecnt " + linecnt, color.yellow);


input test2_linecnt_bubbles = no;
addchartbubble(test2_linecnt_bubbles, low*0.997,
bn + " bn\n" +
vxup + " x\n" +
linecnt + " cnt"
, ( if vxup then color.yellow else color.gray), no);


#----------------------

def linelevel = low;
#def init = na;
def init = 0;

def L1 = if bn == 1 then init else if (vxup and linecnt == 1) then linelevel else L1[1];
def L2 = if bn == 1 then init else if (vxup and linecnt == 2) then linelevel else L2[1];
def L3 = if bn == 1 then init else if (vxup and linecnt == 3) then linelevel else L3[1];
def L4 = if bn == 1 then init else if (vxup and linecnt == 4) then linelevel else L4[1];
def L5 = if bn == 1 then init else if (vxup and linecnt == 5) then linelevel else L5[1];
def L6 = if bn == 1 then init else if (vxup and linecnt == 6) then linelevel else L6[1];
def L7 = if bn == 1 then init else if (vxup and linecnt == 7) then linelevel else L7[1];
def L8 = if bn == 1 then init else if (vxup and linecnt == 8) then linelevel else L8[1];
def L9 = if bn == 1 then init else if (vxup and linecnt == 9) then linelevel else L9[1];
def L10 = if bn == 1 then init else if (vxup and linecnt == 10) then linelevel else L10[1];

def L11 = if bn == 1 then init else if (vxup and linecnt == 11) then linelevel else L11[1];
def L12 = if bn == 1 then init else if (vxup and linecnt == 12) then linelevel else L12[1];
def L13 = if bn == 1 then init else if (vxup and linecnt == 13) then linelevel else L13[1];
def L14 = if bn == 1 then init else if (vxup and linecnt == 14) then linelevel else L14[1];
def L15 = if bn == 1 then init else if (vxup and linecnt == 15) then linelevel else L15[1];


#----------------------
plot z1 = L1;
z1.SetDefaultColor(Color.GRAY);
z1.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z2 = L2;
z2.SetDefaultColor(Color.GRAY);
z2.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z3 = L3;
z3.SetDefaultColor(Color.GRAY);
z3.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z4 = L4;
z4.SetDefaultColor(Color.GRAY);
z4.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z5 = L5;
z5.SetDefaultColor(Color.GRAY);
z5.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z6 = L6;
z6.SetDefaultColor(Color.GRAY);
z6.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z7 = L7;
z7.SetDefaultColor(Color.GRAY);
z7.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z8 = L8;
z8.SetDefaultColor(Color.GRAY);
z8.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z9 = L9;
z9.SetDefaultColor(Color.GRAY);
z9.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z10 = L10;
z10.SetDefaultColor(Color.GRAY);
z10.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

plot z11 = L11;
z11.SetDefaultColor(Color.GRAY);
z11.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z12 = L12;
z12.SetDefaultColor(Color.GRAY);
z12.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z13 = L13;
z13.SetDefaultColor(Color.GRAY);
z13.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z14 = L14;
z14.SetDefaultColor(Color.GRAY);
z14.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z15 = L15;
z15.SetDefaultColor(Color.GRAY);
z15.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

#----------------------

input test3_line_values = no;
addchartbubble(test3_line_values, low*0.997,
l1 + " 1\n" +
l2 + " 2\n" +
l3 + " 3\n" +
l4 + " 4\n" +
l5 + " 5\n" +
l6 + " 6\n" +
l7 + " 7\n" +
l8 + " 8\n" +
l9 + " 9\n" +
l10 + " 10"
, ( if vxup then color.yellow else color.gray), no);
#
#


TJX 10D 15m
15 horizontal lines are drawn when volume crosses above a volume average * 1.5 (a vol factor)
wedges and line counts are set to yes

xyOVSNq.jpg



=====================================


this is a test study to have a visual on when volume spikes cross the average
make sure this has same settings as main chart settings

Ruby:
# volavg2_fac
input volavg_len = 20;
def volavg = average(volume, volavg_len);

input volavg_factor = 1.5;
def volf = floor(volavg * volavg_factor);
def vxup = if volume crosses above volf then 1 else 0;

plot z1 = volavg;
plot z2 = volf;
z1.SetDefaultColor(Color.gray);
z2.SetDefaultColor(Color.cyan);

addlabel(1, "volavg_len " + volavg_len, color.yellow);
addlabel(1, "volavg_factor " + volavg_factor, color.cyan);
#
@halcyonguy....using this same script, can I ask Is it possible for it to place the lines at the close instead of the open....and can the lines be red for the unusual red volume and green for unusual green volume?
 
@halcyonguy....this is great...can I ask for theses codes but with some changes. Is it possible for it to place the lines at the close instead of the open....

the lines are placed at the low.
change line 85, to use input instead of def, and close instead of low. then in edit studies you can change it anytime.
from
def linelevel = low;

to
input linelevel = close;
 
@halcyonguy....using this same script, can I ask Is it possible for it to place the lines at the close instead of the open....and can the lines be red for the unusual red volume and green for unusual green volume?

this version can color the lines, based on this,
def buying = V*(C-L)/(H-L);
def selling = V*(H-C)/(H-L);

there is an input to turn off the colors, and use gray.

this has the line starting point as close, and uses an input for linelevel, so the user can change it.

Ruby:
# bigvol_sr_horzlines_01

# 04/03 update
# chg price from close to open. use an input for user to change
# add color to lines


# https://usethinkscript.com/threads/volume-support-resistance-zones.10103/#post-90471
# Volume Support & Resistance Zones

declare upper;

def na = Double.NaN;
def bn = BarNumber();

def v = volume;
input volavg_len = 20;
def vavg = Average(v, volavg_len);

input volavg_factor = 1.5;
def volf = floor(vavg * volavg_factor);
def vxup = if v crosses above volf then 1 else 0;

#----------------------

# approx green and red vol, based on where the candle closes.
#  cant read time-sales data.
#  this is not accurate, won't match time and sales data.
def O = open;
def H = high;
def C = close;
def L = low;
#def V = volume;
def buying = V*(C-L)/(H-L);
def selling = V*(H-C)/(H-L);

def isvolgrn = ( buying > selling);


#----------------------
# if lmax Is increased > 15, then more formulas will have to be added,  L#  and plot commands.
def lmax = 15;

input qty_of_lines = 15;
def lqty = if qty_of_lines < 1 then 1
else if qty_of_lines > lmax then lmax
else qty_of_lines;

#----------------------
# incr line counter on each vol trigger
#  counts 1 to qty_of_lines, then resets to 1
def linecnt = if bn == 1 then 0
else if vxup and linecnt[1] == qty_of_lines then 1
else if vxup then linecnt[1] + 1
else linecnt[1];


input show_wedge_on_vol_trigger = no;
plot w = if show_wedge_on_vol_trigger and vxup then 1 else 0;
w.SetPaintingStrategy(PaintingStrategy.BOOLEAN_WEDGE_up);
w.SetDefaultColor(Color.WHITE);
#w.SetLineWeight(2);

#--------------------------------------

addlabel(1, "volavg_len " + volavg_len, color.yellow);
addlabel(1, "volavg_factor " + volavg_factor, color.yellow);


input show_line_count = no;
plot y1 = if vxup and show_line_count then linecnt else na;
y1.SetPaintingStrategy(PaintingStrategy.VALUES_below);
y1.SetDefaultColor(Color.white);
#y1.setlineweight(1);
y1.hidebubble();


input test1_labels = no;
addlabel( test1_labels, "vol cross up " + vxup, color.yellow);
addlabel( test1_labels, "qty_of_lines " + qty_of_lines, color.yellow);
addlabel( test1_labels, "linecnt " + linecnt, color.yellow);


input test2_linecnt_bubbles = no;
addchartbubble(test2_linecnt_bubbles, low*0.997,
bn + " bn\n" +
vxup + " x\n" +
linecnt + " cnt"
, ( if vxup then color.yellow else color.gray), no);


#----------------------

# def linelevel = low;
# chg line starting point
input linelevel = close;
#def init = na;
def init = 0;

def L1 = if bn == 1 then init else if (vxup and linecnt == 1) then linelevel else L1[1];
def L2 = if bn == 1 then init else if (vxup and linecnt == 2) then linelevel else L2[1];
def L3 = if bn == 1 then init else if (vxup and linecnt == 3) then linelevel else L3[1];
def L4 = if bn == 1 then init else if (vxup and linecnt == 4) then linelevel else L4[1];
def L5 = if bn == 1 then init else if (vxup and linecnt == 5) then linelevel else L5[1];
def L6 = if bn == 1 then init else if (vxup and linecnt == 6) then linelevel else L6[1];
def L7 = if bn == 1 then init else if (vxup and linecnt == 7) then linelevel else L7[1];
def L8 = if bn == 1 then init else if (vxup and linecnt == 8) then linelevel else L8[1];
def L9 = if bn == 1 then init else if (vxup and linecnt == 9) then linelevel else L9[1];
def L10 = if bn == 1 then init else if (vxup and linecnt == 10) then linelevel else L10[1];

def L11 = if bn == 1 then init else if (vxup and linecnt == 11) then linelevel else L11[1];
def L12 = if bn == 1 then init else if (vxup and linecnt == 12) then linelevel else L12[1];
def L13 = if bn == 1 then init else if (vxup and linecnt == 13) then linelevel else L13[1];
def L14 = if bn == 1 then init else if (vxup and linecnt == 14) then linelevel else L14[1];
def L15 = if bn == 1 then init else if (vxup and linecnt == 15) then linelevel else L15[1];



#----------------------

# line color , chg from gray ro red/green

input color_lines = yes;

def clr1 = 6;
def clr2 = 5;

def init2 = -1;
def c1 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 1 and isvolgrn) then clr1 else if (vxup and linecnt == 1 and !isvolgrn) then clr2 else c1[1];
def c2 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 2 and isvolgrn) then clr1 else if (vxup and linecnt == 2 and !isvolgrn) then clr2 else c2[1];
def c3 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 3 and isvolgrn) then clr1 else if (vxup and linecnt == 3 and !isvolgrn) then clr2 else c3[1];
def c4 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 4 and isvolgrn) then clr1 else if (vxup and linecnt == 4 and !isvolgrn) then clr2 else c4[1];
def c5 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 5 and isvolgrn) then clr1 else if (vxup and linecnt == 5 and !isvolgrn) then clr2 else c5[1];

def c6 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 6 and isvolgrn) then clr1 else if (vxup and linecnt == 6 and !isvolgrn) then clr2 else c6[1];
def c7 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 7 and isvolgrn) then clr1 else if (vxup and linecnt == 7 and !isvolgrn) then clr2 else c7[1];
def c8 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 8 and isvolgrn) then clr1 else if (vxup and linecnt == 8 and !isvolgrn) then clr2 else c8[1];
def c9 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 9 and isvolgrn) then clr1 else if (vxup and linecnt == 9 and !isvolgrn) then clr2 else c9[1];
def c10 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 10 and isvolgrn) then clr1 else if (vxup and linecnt == 10 and !isvolgrn) then clr2 else c10[1];

def c11 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 11 and isvolgrn) then clr1 else if (vxup and linecnt == 11 and !isvolgrn) then clr2 else c11[1];
def c12 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 12 and isvolgrn) then clr1 else if (vxup and linecnt == 12 and !isvolgrn) then clr2 else c12[1];
def c13 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 13 and isvolgrn) then clr1 else if (vxup and linecnt == 13 and !isvolgrn) then clr2 else c13[1];
def c14 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 14 and isvolgrn) then clr1 else if (vxup and linecnt == 14 and !isvolgrn) then clr2 else c14[1];
def c15 = if bn == 1 or !color_lines then init2 else if (vxup and linecnt == 15 and isvolgrn) then clr1 else if (vxup and linecnt == 15 and !isvolgrn) then clr2 else c15[1];




#----------------------
plot z1 = L1;
#z1.SetDefaultColor(Color.GRAY);
z1.AssignValueColor( if c1 == 6 then color.green else if c1 == 5 then color.red else color.gray);
# z1.SetDefaultColor(getcolor(c1));
z1.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

plot z2 = L2;
#z2.SetDefaultColor(Color.GRAY);
z2.AssignValueColor( if c2 == clr1 then color.green else if c2 == clr2 then color.red else color.gray);
z2.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z3 = L3;
#z3.SetDefaultColor(Color.GRAY);
z3.AssignValueColor( if c3 == clr1 then color.green else if c3 == clr2 then color.red else color.gray);
z3.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z4 = L4;
#z4.SetDefaultColor(Color.GRAY);
z4.AssignValueColor( if c4 == clr1 then color.green else if c4 == clr2 then color.red else color.gray);
z4.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z5 = L5;
#z5.SetDefaultColor(Color.GRAY);
z5.AssignValueColor( if c5 == clr1 then color.green else if c5 == clr2 then color.red else color.gray);
z5.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z6 = L6;
#z6.SetDefaultColor(Color.GRAY);
z6.AssignValueColor( if c6 == clr1 then color.green else if c6 == clr2 then color.red else color.gray);
z6.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z7 = L7;
#z7.SetDefaultColor(Color.GRAY);
z7.AssignValueColor( if c7 == clr1 then color.green else if c7 == clr2 then color.red else color.gray);
z7.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z8 = L8;
#z8.SetDefaultColor(Color.GRAY);
z8.AssignValueColor( if c8 == clr1 then color.green else if c8 == clr2 then color.red else color.gray);
z8.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z9 = L9;
#z9.SetDefaultColor(Color.GRAY);
z9.AssignValueColor( if c9 == clr1 then color.green else if c9 == clr2 then color.red else color.gray);
z9.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z10 = L10;
#z10.SetDefaultColor(Color.GRAY);
z10.AssignValueColor( if c10 == clr1 then color.green else if c10 == clr2 then color.red else color.gray);
z10.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

plot z11 = L11;
#z11.SetDefaultColor(Color.GRAY);
z11.AssignValueColor( if c11 == clr1 then color.green else if c11 == clr2 then color.red else color.gray);
z11.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z12 = L12;
#z12.SetDefaultColor(Color.GRAY);
z12.AssignValueColor( if c12 == clr1 then color.green else if c12 == clr2 then color.red else color.gray);
z12.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z13 = L13;
#z13.SetDefaultColor(Color.GRAY);
z13.AssignValueColor( if c13 == clr1 then color.green else if c13 == clr2 then color.red else color.gray);
z13.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z14 = L14;
#z14.SetDefaultColor(Color.GRAY);
z14.AssignValueColor( if c14 == clr1 then color.green else if c14 == clr2 then color.red else color.gray);
z14.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);
plot z15 = L15;
#z15.SetDefaultColor(Color.GRAY);
z15.AssignValueColor( if c15 == clr1 then color.green else if c15 == clr2 then color.red else color.gray);
z15.SetPaintingStrategy(PaintingStrategy.HORIZONTAL);

#----------------------

input test3_line_values = no;
addchartbubble(test3_line_values, low*0.997,
l1 + " 1\n" +
l2 + " 2\n" +
l3 + " 3\n" +
l4 + " 4\n" +
l5 + " 5\n" +
l6 + " 6\n" +
l7 + " 7\n" +
l8 + " 8\n" +
l9 + " 9\n" +
l10 + " 10"
, ( if vxup then color.yellow else color.gray), no);
#
#
 

Similar threads

Not the exact question you're looking for?

Start a new thread and receive assistance from our community.

87k+ Posts
422 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