PINE LIBRARY
Casa_VolumeProfileSession

Library "Casa_VolumeProfileSession"
Analyzes price and volume during regular trading hours to provide a session volume profile,
including Point of Control (POC), Value Area High (VAH), and Value Area Low (VAL).
Calculates and displays these levels historically and for the developing session.
Offers customizable visualization options for the Value Area, POC, histogram, and labels.
Uses lower timeframe data for increased accuracy and supports futures sessions.
The number of rows used for the volume profile can be fixed or dynamically calculated based on the session's price range and the instrument's minimum tick increment, providing optimal resolution.
calculateEffectiveRows(configuredRows, dayHigh, dayLow)
Determines the optimal number of rows for the volume profile, either using the configured value or calculating dynamically based on price range and tick size
Parameters:
configuredRows (int): User-specified number of rows (0 means auto-calculate)
dayHigh (float): Highest price of the session
dayLow (float): Lowest price of the session
Returns: The number of rows to use for the volume profile
debug(vp, position)
Helper function to write some information about the supplied SVP object to the screen in a table.
Parameters:
vp (Object): The SVP object to debug
position (string): The position.* to place the table. Defaults to position.bottom_center
getLowerTimeframe()
Depending on the timeframe of the chart, determines a lower timeframe to grab volume data from for the analysis
Returns: The timeframe string to fetch volume for
get(volumeProfile, lowerTimeframeHigh, lowerTimeframeLow, lowerTimeframeVolume, lowerTimeframeTime, lowerTimeframeSessionIsMarket)
Populated the provided SessionVolumeProfile object with vp data on the session.
Parameters:
volumeProfile (Object): The SessionVolumeProfile object to populate
lowerTimeframeHigh (array<float>): The lower timeframe high values
lowerTimeframeLow (array<float>): The lower timeframe low values
lowerTimeframeVolume (array<float>): The lower timeframe volume values
lowerTimeframeTime (array<int>): The lower timeframe time values
lowerTimeframeSessionIsMarket (array<bool>): The lower timeframe session.ismarket values (that are futures-friendly)
drawPriorValueAreas(todaySessionVolumeProfile, extendYesterdayOverToday, showLabels, labelSize, pocColor, pocStyle, pocWidth, vahlColor, vahlStyle, vahlWidth, vaColor)
Given a SessionVolumeProfile Object, will render the historical value areas for that object.
Parameters:
todaySessionVolumeProfile (Object): The SessionVolumeProfile Object to draw
extendYesterdayOverToday (bool): Defaults to true
showLabels (bool): Defaults to true
labelSize (string): Defaults to size.small
pocColor (color): Defaults to #e500a4
pocStyle (string): Defaults to line.style_solid
pocWidth (int): Defaults to 1
vahlColor (color): The color of the value area high/low lines. Defaults to #1592e6
vahlStyle (string): The style of the value area high/low lines. Defaults to line.style_solid
vahlWidth (int): The width of the value area high/low lines. Defaults to 1
vaColor (color): The color of the value area background. Defaults to #00bbf911)
drawHistogram(volumeProfile, bgColor, showVolumeOnHistogram)
Given a SessionVolumeProfile object, will render the histogram for that object.
Parameters:
volumeProfile (Object): The SessionVolumeProfile object to draw
bgColor (color): The baseline color to use for the histogram. Defaults to #00bbf9
showVolumeOnHistogram (bool): Show the volume amount on the histogram bars. Defaults to false.
Object
Object Contains all settings and calculated values for a Volume Profile Session analysis
Fields:
numberOfRows (series int): Number of price levels to divide the range into. If set to 0, auto-calculates based on price range and tick size
valueAreaCoverage (series int): Percentage of total volume to include in the Value Area (default 70%)
trackDevelopingVa (series bool): Whether to calculate and display the Value Area as it develops during the session
valueAreaHigh (series float): Upper boundary of the Value Area - price level containing specified % of volume
pointOfControl (series float): Price level with the highest volume concentration
valueAreaLow (series float): Lower boundary of the Value Area
startTime (series int): Session start time in Unix timestamp format
endTime (series int): Session end time in Unix timestamp format
dayHigh (series float): Highest price of the session
dayLow (series float): Lowest price of the session
step (series float): Size of each price row (calculated as price range divided by number of rows)
pointOfControlLevel (series int): Index of the row containing the Point of Control
valueAreaHighLevel (series int): Index of the row containing the Value Area High
valueAreaLowLevel (series int): Index of the row containing the Value Area Low
lastTime (series int): Tracks the most recent timestamp processed
volumeRows (map<int, float>): Stores volume data for each price level row (key=row number, value=volume)
ltfSessionHighs (array<float>): Stores high prices from lower timeframe data
ltfSessionLows (array<float>): Stores low prices from lower timeframe data
ltfSessionVols (array<float>): Stores volume data from lower timeframe data
Analyzes price and volume during regular trading hours to provide a session volume profile,
including Point of Control (POC), Value Area High (VAH), and Value Area Low (VAL).
Calculates and displays these levels historically and for the developing session.
Offers customizable visualization options for the Value Area, POC, histogram, and labels.
Uses lower timeframe data for increased accuracy and supports futures sessions.
The number of rows used for the volume profile can be fixed or dynamically calculated based on the session's price range and the instrument's minimum tick increment, providing optimal resolution.
calculateEffectiveRows(configuredRows, dayHigh, dayLow)
Determines the optimal number of rows for the volume profile, either using the configured value or calculating dynamically based on price range and tick size
Parameters:
configuredRows (int): User-specified number of rows (0 means auto-calculate)
dayHigh (float): Highest price of the session
dayLow (float): Lowest price of the session
Returns: The number of rows to use for the volume profile
debug(vp, position)
Helper function to write some information about the supplied SVP object to the screen in a table.
Parameters:
vp (Object): The SVP object to debug
position (string): The position.* to place the table. Defaults to position.bottom_center
getLowerTimeframe()
Depending on the timeframe of the chart, determines a lower timeframe to grab volume data from for the analysis
Returns: The timeframe string to fetch volume for
get(volumeProfile, lowerTimeframeHigh, lowerTimeframeLow, lowerTimeframeVolume, lowerTimeframeTime, lowerTimeframeSessionIsMarket)
Populated the provided SessionVolumeProfile object with vp data on the session.
Parameters:
volumeProfile (Object): The SessionVolumeProfile object to populate
lowerTimeframeHigh (array<float>): The lower timeframe high values
lowerTimeframeLow (array<float>): The lower timeframe low values
lowerTimeframeVolume (array<float>): The lower timeframe volume values
lowerTimeframeTime (array<int>): The lower timeframe time values
lowerTimeframeSessionIsMarket (array<bool>): The lower timeframe session.ismarket values (that are futures-friendly)
drawPriorValueAreas(todaySessionVolumeProfile, extendYesterdayOverToday, showLabels, labelSize, pocColor, pocStyle, pocWidth, vahlColor, vahlStyle, vahlWidth, vaColor)
Given a SessionVolumeProfile Object, will render the historical value areas for that object.
Parameters:
todaySessionVolumeProfile (Object): The SessionVolumeProfile Object to draw
extendYesterdayOverToday (bool): Defaults to true
showLabels (bool): Defaults to true
labelSize (string): Defaults to size.small
pocColor (color): Defaults to #e500a4
pocStyle (string): Defaults to line.style_solid
pocWidth (int): Defaults to 1
vahlColor (color): The color of the value area high/low lines. Defaults to #1592e6
vahlStyle (string): The style of the value area high/low lines. Defaults to line.style_solid
vahlWidth (int): The width of the value area high/low lines. Defaults to 1
vaColor (color): The color of the value area background. Defaults to #00bbf911)
drawHistogram(volumeProfile, bgColor, showVolumeOnHistogram)
Given a SessionVolumeProfile object, will render the histogram for that object.
Parameters:
volumeProfile (Object): The SessionVolumeProfile object to draw
bgColor (color): The baseline color to use for the histogram. Defaults to #00bbf9
showVolumeOnHistogram (bool): Show the volume amount on the histogram bars. Defaults to false.
Object
Object Contains all settings and calculated values for a Volume Profile Session analysis
Fields:
numberOfRows (series int): Number of price levels to divide the range into. If set to 0, auto-calculates based on price range and tick size
valueAreaCoverage (series int): Percentage of total volume to include in the Value Area (default 70%)
trackDevelopingVa (series bool): Whether to calculate and display the Value Area as it develops during the session
valueAreaHigh (series float): Upper boundary of the Value Area - price level containing specified % of volume
pointOfControl (series float): Price level with the highest volume concentration
valueAreaLow (series float): Lower boundary of the Value Area
startTime (series int): Session start time in Unix timestamp format
endTime (series int): Session end time in Unix timestamp format
dayHigh (series float): Highest price of the session
dayLow (series float): Lowest price of the session
step (series float): Size of each price row (calculated as price range divided by number of rows)
pointOfControlLevel (series int): Index of the row containing the Point of Control
valueAreaHighLevel (series int): Index of the row containing the Value Area High
valueAreaLowLevel (series int): Index of the row containing the Value Area Low
lastTime (series int): Tracks the most recent timestamp processed
volumeRows (map<int, float>): Stores volume data for each price level row (key=row number, value=volume)
ltfSessionHighs (array<float>): Stores high prices from lower timeframe data
ltfSessionLows (array<float>): Stores low prices from lower timeframe data
ltfSessionVols (array<float>): Stores volume data from lower timeframe data
Pine脚本库
本着真正的TradingView精神,作者将此Pine代码发布为开源库,以便我们社区的其他Pine程序员可以重复使用它。向作者致敬!您可以私密或在其他开源出版物中使用此库,但在出版物中重复使用此代码受网站规则约束。
Mupsje aka Casatropical
免责声明
这些信息和出版物并不意味着也不构成TradingView提供或认可的金融、投资、交易或其它类型的建议或背书。请在使用条款阅读更多信息。
Pine脚本库
本着真正的TradingView精神,作者将此Pine代码发布为开源库,以便我们社区的其他Pine程序员可以重复使用它。向作者致敬!您可以私密或在其他开源出版物中使用此库,但在出版物中重复使用此代码受网站规则约束。
Mupsje aka Casatropical
免责声明
这些信息和出版物并不意味着也不构成TradingView提供或认可的金融、投资、交易或其它类型的建议或背书。请在使用条款阅读更多信息。