Plot zones based on VolumeProfile on Daily chart?

Whats going on, I am wondering if it is possible to auto plot zones based on volume profile on the daily? I am trying to plot volume sticks that are higher than the two candle sticks next to them to show a sort of point of control for that area. Wanting to know if its possible before attempting a code.
Could you be of assistance on this code because I don't even know where to begin. Still new to coding, I'm looking at the code and I know i must define what I mean by my regions to be shaded but don't know where to start. @XeoNoX

This is the volume profile code:

input pricePerRowHeightMode = {default AUTOMATIC, TICKSIZE, CUSTOM};
input timeframe =;
input customRowHeight = 1.0;
input timePerProfile = {default CHART, MINUTE, HOUR, DAY, WEEK, MONTH, "OPT EXP", BAR};
input multiplier = 1;
input onExpansion = yes;
input profiles = 1000;
input showPointOfControl = yes;
input showValueArea = yes;
input valueAreaPercent = 70;
input opacity = 50;

def period;
def yyyymmdd = getYyyyMmDd();
def seconds = secondsFromTime(0);
def month = getYear() * 12 + getMonth();
def day_number = daysFromDate(first(yyyymmdd)) + getDayOfWeek(first(yyyymmdd));
def dom = getDayOfMonth(yyyymmdd);
def dow = getDayOfWeek(yyyymmdd - dom + 1);
def expthismonth = (if dow > 5 then 27 else 20) - dow;
def exp_opt = month + (dom > expthismonth);
switch (timePerProfile) {
case CHART:
    period = 0;
case MINUTE:
    period = floor(seconds / 60 + day_number * 24 * 60);
case HOUR:
    period = floor(seconds / 3600 + day_number * 24);
case DAY:
    period = countTradingDays(min(first(yyyymmdd), yyyymmdd), yyyymmdd) - 1;
case WEEK:
    period = floor(day_number / 7);
case MONTH:
    period = floor(month - first(month));
case "OPT EXP":
    period = exp_opt - first(exp_opt);
case BAR:
    period = barNumber() - 1;

def count = CompoundValue(1, if period != period[1] then (count[1] + period - period[1]) % multiplier else count[1], 0);
def cond = count < count[1] + period - period[1];
def height;
switch (pricePerRowHeightMode) {
    height = PricePerRow.AUTOMATIC;
    height = PricePerRow.TICKSIZE;
case CUSTOM:
    height = customRowHeight;

profile vol = volumeProfile("startNewProfile" = cond, "onExpansion" = onExpansion, "numberOfProfiles" = profiles, "pricePerRow" = height, "value area percent" = valueAreaPercent);
def con = compoundValue(1, onExpansion, no);
def pc = if IsNaN(vol.getPointOfControl()) and con then pc[1] else vol.getPointOfControl();
def hVA = if IsNaN(vol.getHighestValueArea()) and con then hVA[1] else vol.getHighestValueArea();
def lVA = if IsNaN(vol.getLowestValueArea()) and con then lVA[1] else vol.getLowestValueArea();

def hProfile = if IsNaN(vol.getHighest()) and con then hProfile[1] else vol.getHighest();
def lProfile = if IsNaN(vol.getLowest()) and con then lProfile[1] else vol.getLowest();
def plotsDomain = IsNaN(close) == onExpansion;

plot POC = if plotsDomain then pc else Double.NaN;
plot ProfileHigh = if plotsDomain then hProfile else Double.NaN;
plot ProfileLow = if plotsDomain then lProfile else Double.NaN;
plot VAHigh = if plotsDomain then hVA else Double.NaN;
plot VALow = if plotsDomain then lVA else Double.NaN;

DefineGlobalColor("Profile", GetColor(1));
DefineGlobalColor("Point Of Control", GetColor(5));
DefineGlobalColor("Value Area", GetColor(8));"Profile"), if showPointOfControl then globalColor("Point Of Control") else color.current, if showValueArea then globalColor("Value Area") else color.current, opacity);
POC.SetDefaultColor(globalColor("Point Of Control"));
VAHigh.SetDefaultColor(globalColor("Value Area"));
VALow.SetDefaultColor(globalColor("Value Area"));
So on volume profile I want to plot zones on my chart where the candle stick has large volume compared to the candle sticks beside it. Pretty much just plotting zones for big volume based on the volume profile @XeoNoX


Have you tried to tinker with the indicator's settings?

Changing "on expansion" from Yes to No will give you this. Sounds like this is what you're looking for.


If that is not it, you may want to show some screenshots/annotations of the concept.


Well-known member
like ben said, sounds like something u may have to post a picture of what you are trying to accomplish with a more detailed explination


Well-known member
im not sure what you are trying to do, but if you can explain in clarity im sure it can possibly be done.
you stated
"created these zones around the daily volume profile."
you would have to define zones and why you drew those zones, and what makes the event trigger that those zones are specifically in that area.


Well-known member
that would just draw a bunch of lines around the volumes that are larger, effectly making vp useless since you would be able to see it when its drawn around all the larger volumes. i know what you are trying to do, but in order to code it, you have to define it. that seems like a complicated script, im sure if you defined it in detail however it could be done.


New member
I like the idea ace boogie is trying to accomplish. I believe there would have to be written like 30% higher volume than average so it filters just the larger spikes ranges. Then from these higher waves filter it to the largest volume bar and the 2 on either side of it. From these areas create a cloud that would designate a zone for support or resistance. U could adjust the 30% to 50% or whatever is needed and filter timeframes too. Week day hours minutes.

I think this would be neat to see how it follows these areas with the ORB strategy but adding highest volume in a particular range.

I will try to create a screenshot next week if that would help with my meaning. I know sometimes I have a hard time getting out my meaning in text.

Similar threads