For this indicator...is there way to have started time 18:00 ( 6o pm futures open) to 17o ( 5 pm futures close)..would like to use to on /ES.
For this indicator...is there way to have started time 18:00 ( 6o pm futures open) to 17o ( 5 pm futures close)..would like to use to on /ES.
For this indicator...is there way to have started time 18:00 ( 6o pm futures open) to 17o ( 5 pm futures close)..would like to use to on /ES.
# Points Of Control Support / Resistance Areas
# Mobius
# V01.03.08.2016
# Locates last 10 Points of Control based on RTH only
# 20240107 Substituted inrange for rth to allow overnight hour inputs
declare Hide_On_Daily;
input RthBegin = 1800;
input RthEnd = 1700;
def sec1 = SecondsFromTime(RthBegin);
def sec2 = SecondsFromTime(RthEnd);
def isTime1 = (sec1 >= 0 and sec1[1] < 0) or (sec1 < sec1[1] and sec1 >= 0);
def isTime2 = (sec2 >= 0 and sec2[1] < 0) or (sec2 <= sec2[1] and sec2 >= 0) or istime1[-1]>0;
def inRange = CompoundValue(1, if isTime1 then 1 else if isTime2 then 0 else inRange[1], 0);
def bar = BarNumber();
def RTH = inrange;
def cond = RTH != RTH[1];
profile vol = VolumeProfile("startNewProfile" = cond, "onExpansion" = no, "numberOfProfiles" = 20, "pricePerRow" = PricePerRow.TICKSIZE, "value area percent" = 68.4);
def poc = if RTH then Round(vol.GetPointOfControl(), 2)
else Double.NaN;
def Poc1 = if !RTH and RTH[1]
then poc[1]
else Poc1[1];
def Poc2 = if !RTH and RTH[1]
then Poc1[1]
else Poc2[1];
def Poc3 = if !RTH and RTH[1]
then Poc2[1]
else Poc3[1];
def Poc4 = if !RTH and RTH[1]
then Poc3[1]
else Poc4[1];
def Poc5 = if !RTH and RTH[1]
then Poc4[1]
else Poc5[1];
def Poc6 = if !RTH and RTH[1]
then Poc5[1]
else Poc6[1];
def Poc7 = if !RTH and RTH[1]
then Poc6[1]
else Poc7[1];
def Poc8 = if !RTH and RTH[1]
then Poc7[1]
else Poc8[1];
def Poc9 = if !RTH and RTH[1]
then Poc8[1]
else Poc9[1];
plot pc = HighestAll(if isNaN(close[-1])
then poc
else double.nan);
pc.SetStyle(Curve.Firm);
pc.SetDefaultColor(Color.Orange);
pc.SetLineWeight(2);
plot pc1 = HighestAll(if isNaN(close[-1])
then Poc1
else double.nan);
pc1.SetStyle(Curve.Long_Dash);
pc1.SetDefaultColor(Color.Orange);
plot pc2 = HighestAll(if isNaN(close[-1])
then poc2
else double.nan);
pc2.SetStyle(Curve.Long_Dash);
pc2.SetDefaultColor(Color.Orange);
plot pc3 = HighestAll(if isNaN(close[-1])
then poc3
else double.nan);
pc3.SetStyle(Curve.Long_Dash);
pc3.SetDefaultColor(Color.Orange);
plot pc4 = HighestAll(if isNaN(close[-1])
then poc4
else double.nan);
pc4.SetStyle(Curve.Long_Dash);
pc4.SetDefaultColor(Color.Orange);
plot pc5 = HighestAll(if isNaN(close[-1])
then poc5
else double.nan);
pc5.SetStyle(Curve.Long_Dash);
pc5.SetDefaultColor(Color.Orange);
plot pc6 = HighestAll(if isNaN(close[-1])
then poc6
else double.nan);
pc6.SetStyle(Curve.Long_Dash);
pc6.SetDefaultColor(Color.Orange);
plot pc7 = HighestAll(if isNaN(close[-1])
then poc7
else double.nan);
pc7.SetStyle(Curve.Long_Dash);
pc7.SetDefaultColor(Color.Orange);
plot pc8 = HighestAll(if isNaN(close[-1])
then poc8
else double.nan);
pc8.SetStyle(Curve.Long_Dash);
pc8.SetDefaultColor(Color.Orange);
plot pc9 = HighestAll(if isNaN(close[-1])
then poc9
else double.nan);
pc9.SetStyle(Curve.Long_Dash);
pc9.SetDefaultColor(Color.Orange);
Do you have indicator that points Monthly POC for X amount months and X amout of weeks?Thanks for updating the script. I just want to see a line for the average vpoc and tried to comment out the others and change plot to def so they wouldn't show, but now the average vpoc line appears as a dash today only on the daily chart and doesn't extend to the right. The bubble and label do show. Thanks for your help.
https://tos.mx/StM6MSX
@SleepyZ or anyone who can do this. Is it possible to create an average volume profile excluding the current day? For example, (D[1] + D[2] + D[3] + D[4]) /4, so it would plot an average VAH, VAL, and POC over the past 4 days, not including today.
I appreciate your help.
Thank you.
Code:#VPOC_VAH_VAL_AVG_xDays input showlabels = yes; input showplots = yes; def volpoc = reference VolumeProfile("time per profile" = "DAY", "on expansion" = no, "price per row height mode" = "TICKSIZE").POC; def volvah = reference VolumeProfile("time per profile" = "DAY", "on expansion" = no, "price per row height mode" = "TICKSIZE").VAHigh; def volval = reference VolumeProfile("time per profile" = "DAY", "on expansion" = no, "price per row height mode" = "TICKSIZE").VALow; #Define Days def ymd = GetYYYYMMDD(); def count = if !IsNaN(volpoc) and ymd != ymd[1] then count[1] + 1 else count[1]; def cond = HighestAll(count) - count ; #POC def p1 = if cond == 1 then volpoc else p1[1]; plot poc1 = p1; def p2 = if cond == 2 then volpoc else p2[1]; plot poc2 = p2; def p3 = if cond == 3 then volpoc else p3[1]; plot poc3 = p3; def p4 = if cond == 4 then volpoc else p4[1]; plot poc4 = p4; #VAH def h1 = if cond == 1 then volvah else h1[1]; plot hva1 = h1; def h2 = if cond == 2 then volvah else h2[1]; plot hva2 = h2; def h3 = if cond == 3 then volvah else h3[1]; plot hva3 = h3; def h4 = if cond == 4 then volvah else h4[1]; plot hva4 = h4; #VAL def l1 = if cond == 1 then volval else l1[1]; plot lva1 = l1; def l2 = if cond == 2 then volval else l2[1]; plot lva2 = l2; def l3 = if cond == 3 then volval else l3[1]; plot lva3 = l3; def l4 = if cond == 4 then volval else l4[1]; plot lva4 = l4; #Labels AddLabel(showlabels, "Prior 4 Days", Color.WHITE); AddLabel(showlabels, "AVG VAH: " + AsDollars((h1 + h2 + h3 + h4) / 4), Color.GREEN); AddLabel(showlabels, "AVG POC: " + AsDollars((p1 + p2 + p3 + p4) / 4), Color.CYAN); AddLabel(showlabels, "AVG VAL: " + AsDollars((l1 + l2 + l3 + l4) / 4), Color.RED); #Hide Plots poc1.SetHiding(!showplots); poc2.SetHiding(!showplots); poc3.SetHiding(!showplots); poc4.SetHiding(!showplots); hva1.SetHiding(!showplots); hva2.SetHiding(!showplots); hva3.SetHiding(!showplots); hva4.SetHiding(!showplots); lva1.SetHiding(!showplots); lva2.SetHiding(!showplots); lva3.SetHiding(!showplots); lva4.SetHiding(!showplots); #
@SleepyZ I added plots for the averages, i.e., avgPOC = (p1 + p2 + p3 + p4) / 4; etc but it doesn't plot the past history. Is it possible to make it plot the past averages for the avgPOC, avgHVA, and avgLVA?This provides labels for the averages.
The image shows the TOS Volumeprofiles and the plots from the code for comparison for each day.
There are options to show labels and plots
@SleepyZ I added plots for the averages, i.e., avgPOC = (p1 + p2 + p3 + p4) / 4; etc but it doesn't plot the past history. Is it possible to make it plot the past averages for the avgPOC, avgHVA, and avgLVA?
In addition, is it possible to be able to select from the preferences menu, Day, Week, etc?
Thank you.
Code:#VPOC_VAH_VAL_AVG_xDays_v1 #Added timeperperofile (D,W,M), Avg Plots, Bubbles input timeperprofile = {default DAY, WEEK, MONTH}; input showlabels = yes; input showtestplots = no; input showAVGplots = yes; input showbubbles = yes; def na = Double.NaN; def mode; switch (timeperprofile) { case DAY: mode = GetYYYYMMDD(); case WEEK: mode = GetWeek(); case MONTH: mode = GetMonth(); } def volpoc = reference VolumeProfile("time per profile" = timeperprofile, "on expansion" = no, "price per row height mode" = "TICKSIZE").POC; def volvah = reference VolumeProfile("time per profile" = timeperprofile, "on expansion" = no, "price per row height mode" = "TICKSIZE").VAHigh; def volval = reference VolumeProfile("time per profile" = timeperprofile, "on expansion" = no, "price per row height mode" = "TICKSIZE").VALow; #Define Mose Periods def count = if !IsNaN(volpoc) and mode != mode[1] then count[1] + 1 else count[1]; def cond = HighestAll(count) - count ; #POC def p1 = if cond == 1 then volpoc else p1[1]; plot poc1 = p1; def p2 = if cond == 2 then volpoc else p2[1]; plot poc2 = p2; def p3 = if cond == 3 then volpoc else p3[1]; plot poc3 = p3; def p4 = if cond == 4 then volpoc else p4[1]; plot poc4 = p4; #VAH def h1 = if cond == 1 then volvah else h1[1]; plot hva1 = h1; def h2 = if cond == 2 then volvah else h2[1]; plot hva2 = h2; def h3 = if cond == 3 then volvah else h3[1]; plot hva3 = h3; def h4 = if cond == 4 then volvah else h4[1]; plot hva4 = h4; #VAL def l1 = if cond == 1 then volval else l1[1]; plot lva1 = l1; def l2 = if cond == 2 then volval else l2[1]; plot lva2 = l2; def l3 = if cond == 3 then volval else l3[1]; plot lva3 = l3; def l4 = if cond == 4 then volval else l4[1]; plot lva4 = l4; #Plot Average POC, VAH and VAL defineGlobalColor("H", color.green); defineGlobalColor("P", color.cyan); defineGlobalColor("L", color.red); plot AvgVAH = if showAVGplots and cond < 1 then highestall((h1 + h2 + h3 + h4) / 4) else na; plot AvgPOC = if showAVGplots and cond < 1 then highestall((p1 + p2 + p3 + p4) / 4) else na; plot AvgVAL = if showAVGplots and cond < 1 then highestall((l1 + l2 + l3 + l4) / 4) else na; AvgVAH.setdefaultColor(globalColor("H")); AvgPOC.setdefaultColor(globalColor("P")); AvgVAL.setdefaultColor(globalColor("L")); #Labels AddLabel(showlabels, "Prior 4 " + timeperprofile + "s", Color.WHITE); AddLabel(showlabels, "AVG VAH: " + AsDollars((h1 + h2 + h3 + h4) / 4), Color.GREEN); AddLabel(showlabels, "AVG POC: " + AsDollars((p1 + p2 + p3 + p4) / 4), Color.CYAN); AddLabel(showlabels, "AVG VAL: " + AsDollars((l1 + l2 + l3 + l4) / 4), Color.RED); #Bubbles input bubblemover = 2; def b = bubblemover; def mover = showbubbles and isnan(close[b]) and !isnan(close[b + 1]); addchartBubble(mover, AvgVAH, "H: " + asdollars(AVGVAH), AVGVAH.takevaluecolor()); addchartBubble(mover, AvgPOC, "P: " + asdollars(AVGPOC), AVGPOC.takevaluecolor()); addchartBubble(mover, AvgVAL, "L: " + asdollars(AVGVAL), AVGVAL.takevaluecolor()); #Hide Plots poc1.SetHiding(!showtestplots); poc2.SetHiding(!showtestplots); poc3.SetHiding(!showtestplots); poc4.SetHiding(!showtestplots); hva1.SetHiding(!showtestplots); hva2.SetHiding(!showtestplots); hva3.SetHiding(!showtestplots); hva4.SetHiding(!showtestplots); lva1.SetHiding(!showtestplots); lva2.SetHiding(!showtestplots); lva3.SetHiding(!showtestplots); lva4.SetHiding(!showtestplots); #
Join useThinkScript to post your question to a community of 21,000+ developers and traders.
Start a new thread and receive assistance from our community.
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.
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.