VolumeSpreadAnalysisLibrary   "VolumeSpreadAnalysis" 
A library for Volume Spread Analysis (VSA).
 spread(_barIndex) 
  Calculates the spread of a bar.
  Parameters:
     _barIndex (int) : (int) The index of the bar.
  Returns: (float) The spread of the bar.
 volume(_barIndex) 
  Retrieves the volume of a bar.
  Parameters:
     _barIndex (int) : (int) The index of the bar.
  Returns: (float) The volume of the bar.
 body(_barIndex) 
  Calculates the body of a bar.
  Parameters:
     _barIndex (simple int) : (int) The index of the bar.
  Returns: (float) The body size of the bar.
 wickUpper(_barIndex) 
  Calculates the upper wick of a bar (upper shadow).
  Parameters:
     _barIndex (simple int) : (int) The index of the bar.
  Returns: (float) The upper wick size of the bar.
 wickLower(_barIndex) 
  Calculates the lower wick of a bar (lower shadow).
  Parameters:
     _barIndex (simple int) : (int) The index of the bar.
  Returns: (float) The lower wick size of the bar.
 calcForecastedSMA(_source, _length, _forecastedLevel) 
  Calculates the forecasted Simple Moving Average (SMA).
  Parameters:
     _source (float) : (series float) Source data for calculation.
     _length (simple int) : (int) The length of the SMA.
     _forecastedLevel (float) : (float) The forecasted level to include in the calculation.
  Returns: (float) The forecasted SMA value.
 calcForecastedEMA(_source, _length, _forecastedLevel) 
  Calculates the forecasted Exponential Moving Average (EMA).
  Parameters:
     _source (float) : (series float) Source data for calculation.
     _length (simple int) : (int) The length of the EMA.
     _forecastedLevel (float) : (float) The forecasted level to include in the calculation.
  Returns: (float) The forecasted EMA value.
 calcForecastedRMA(_source, _length, _forecastedLevel) 
  Calculates the forecasted Relative Moving Average (RMA).
  Parameters:
     _source (float) : (series float) Source data for calculation.
     _length (simple int) : (int) The length of the RMA.
     _forecastedLevel (float) : (float) The forecasted level to include in the calculation.
  Returns: (float) The forecasted RMA value.
 calcForecastedWMA(_source, _length, _forecastedLevel) 
  Calculates the forecasted Weighted Moving Average (WMA).
  Parameters:
     _source (float) : (series float) Source data for calculation.
     _length (simple int) : (int) The length of the WMA.
     _forecastedLevel (float) : (float) The forecasted level to include in the calculation.
  Returns: (float) The forecasted WMA value.
 calcElapsedTimePercent() 
  Calculates the elapsed time percent of the current bar.
  Returns: (float) The elapsed time percent.
 calcForecastedSpread(multiplierAtMidpoints, multiplierAtPeaks) 
  Calculates the forecasted spread using elapsed time and dynamic multipliers, handling spread's non-linear nature.
  Parameters:
     multiplierAtMidpoints (float) : (float) The multiplier value at midpoints.
     multiplierAtPeaks (float) : (float) The multiplier value at peaks.
  Returns: (float) The forecasted spread value.
 calcForecastedVolume() 
  Calculates the forecasted volume using elapsed time, satisfying volume's linear nature.
  Returns: (float) The forecasted volume value.
 calcForecastedMA(_source, _length, _forecastedSource, _type) 
  Calculates the forecasted Moving Average (MA) based on the specified type.
  Parameters:
     _source (float) : (series float) Source data for calculation.
     _length (simple int) : (int) The length of the MA.
     _forecastedSource (float) : (float) The forecasted level to include in the calculation.
     _type (simple string) : (string) The type of the MA ("SMA", "EMA", "SMMA (RMA)", "WMA").
  Returns: (float) The forecasted MA value.
 calcMA(_source, _length, _type) 
  Calculates the Moving Average (MA) based on the specified type.
  Parameters:
     _source (float) : (series float) Source data for calculation.
     _length (simple int) : (int) The length of the MA.
     _type (simple string) : (string) The type of the MA ("SMA", "EMA", "SMMA (RMA)", "WMA").
  Returns: (float) The MA value.
 bullBar(_barIndex) 
  Determines if the bar is bullish.
  Parameters:
     _barIndex (simple int) : (int) The index of the bar.
  Returns: (bool) True if the bar is bullish, otherwise false.
 bearBar(_barIndex) 
  Determines if the bar is bearish.
  Parameters:
     _barIndex (simple int) : (int) The index of the bar.
  Returns: (bool) True if the bar is bearish, otherwise false.
 breakout(_barIndex) 
  Determines if there is a breakout above the previous bar.
  Parameters:
     _barIndex (simple int) : (int) The index of the bar.
  Returns: (bool) True if there is a breakout, otherwise false.
 breakdown(_barIndex) 
  Determines if there is a breakdown below the previous bar.
  Parameters:
     _barIndex (simple int) : (int) The index of the bar.
  Returns: (bool) True if there is a breakdown, otherwise false.
 rejectionWickUpper(_rejectionWick) 
  Determines if the upper wick is a rejection wick.
  Parameters:
     _rejectionWick (simple float) : (float) The rejection wick percentage.
  Returns: (bool) True if the upper wick is a rejection wick, otherwise false.
 rejectionWickLower(_rejectionWick) 
  Determines if the lower wick is a rejection wick.
  Parameters:
     _rejectionWick (simple float) : (float) The rejection wick percentage.
  Returns: (bool) True if the lower wick is a rejection wick, otherwise false.
 setupDataVolume(_data, _mult_Low, _mult_High, _mult_Ultra, _maLengthVolume, _maTypeVolume) 
  Sets up data for volume levels.
  Parameters:
     _data (map) : (map) The map to store the levels.
     _mult_Low (simple float) : (float) The multiplier for low level.
     _mult_High (simple float) : (float) The multiplier for high level.
     _mult_Ultra (simple float) : (float) The multiplier for ultra level.
     _maLengthVolume (simple int) : (int) The length for MA.
     _maTypeVolume (simple string) : (string) The type for MA.
  Returns: (void) Nothing.
 setupDataSpread(_data, _mult_Low, _mult_High, _mult_Ultra, _maLengthSpread, _maTypeSpread) 
  Sets up data for spread levels.
  Parameters:
     _data (map) : (map) The map to store the levels.
     _mult_Low (simple float) : (float) The multiplier for low level.
     _mult_High (simple float) : (float) The multiplier for high level.
     _mult_Ultra (simple float) : (float) The multiplier for ultra level.
     _maLengthSpread (simple int) : (int) The length for MA.
     _maTypeSpread (simple string) : (string) The type for MA.
  Returns: (void) Nothing.
 setupDataForecastVolume(_dataForecast, _mult_Low, _mult_High, _mult_Ultra, _maLengthVolume, _predictedLevelVolume, _maTypeVolume) 
  Sets up data for volume and spread levels for forecast.
  Parameters:
     _dataForecast (map) 
     _mult_Low (simple float) : (float) The multiplier for low level.
     _mult_High (simple float) : (float) The multiplier for high level.
     _mult_Ultra (simple float) : (float) The multiplier for ultra level.
     _maLengthVolume (simple int) : (int) The length for MA.
     _predictedLevelVolume (float) : (float) The predicted level for MA.
     _maTypeVolume (simple string) : (string) The type for MA.
  Returns: (void) Nothing.
 setupDataForecastSpread(_dataForecast, _mult_Low, _mult_High, _mult_Ultra, _maLengthSpread, _predictedLevelSpread, _maTypeSpread) 
  Sets up data for spread levels for forecast.
  Parameters:
     _dataForecast (map) 
     _mult_Low (simple float) : (float) The multiplier for low level.
     _mult_High (simple float) : (float) The multiplier for high level.
     _mult_Ultra (simple float) : (float) The multiplier for ultra level.
     _maLengthSpread (simple int) : (int) The length for MA.
     _predictedLevelSpread (float) : (float) The predicted level for MA.
     _maTypeSpread (simple string) : (string) The type for MA.
  Returns: (void) Nothing.
 isVolumeLow(_data, _barIndex) 
  Determines if the volume is low.
  Parameters:
     _data (map) : (map) The data map with volume levels.
     _barIndex (int) 
  Returns: (bool) True if the volume is low, otherwise false.
 isVolumeNormal(_data, _barIndex) 
  Determines if the volume is normal.
  Parameters:
     _data (map) : (map) The data map with volume levels.
     _barIndex (int) 
  Returns: (bool) True if the volume is normal, otherwise false.
 isVolumeHigh(_data, _barIndex) 
  Determines if the volume is high.
  Parameters:
     _data (map) : (map) The data map with volume levels.
     _barIndex (int) 
  Returns: (bool) True if the volume is high, otherwise false.
 isVolumeUltra(_data, _barIndex) 
  Determines if the volume is ultra.
  Parameters:
     _data (map) : (map) The data map with volume levels.
     _barIndex (int) 
  Returns: (bool) True if the volume is ultra, otherwise false.
 isSpreadLow(_data, _barIndex) 
  Determines if the spread is low.
  Parameters:
     _data (map) : (map) The data map with spread levels.
     _barIndex (int) 
  Returns: (bool) True if the spread is low, otherwise false.
 isSpreadNormal(_data, _barIndex) 
  Determines if the spread is normal.
  Parameters:
     _data (map) : (map) The data map with spread levels.
     _barIndex (int) 
  Returns: (bool) True if the spread is normal, otherwise false.
 isSpreadHigh(_data, _barIndex) 
  Determines if the spread is high.
  Parameters:
     _data (map) : (map) The data map with spread levels.
     _barIndex (int) 
  Returns: (bool) True if the spread is high, otherwise false.
 isSpreadUltra(_data, _barIndex) 
  Determines if the spread is ultra.
  Parameters:
     _data (map) : (map) The data map with spread levels.
     _barIndex (int) 
  Returns: (bool) True if the spread is ultra, otherwise false.
 isVolumeText(_data) 
  Determines text string representing the volume area level.
  Parameters:
     _data (map) : (map) The data map with volume levels.
  Returns: (string) Text string of Low, Normal, High, or Ultra.
 isSpreadText(_data) 
  Determines text string representing the spread area level.
  Parameters:
     _data (map) : (map) The data map with spread levels.
  Returns: (string) Text string of Low, Normal, High, or Ultra.
 calcBarColor(_value, _level) 
  Calculates the color based level.
  Parameters:
     _value (float) : (float) The value to check.
     _level (float) : (float) The value level for comparison.
  Returns: (color) The color for the bar.
 bullPinBar(_maxBodyPercent, _minWickPercent) 
  Determines if the bar is a bull pin bar.
  Parameters:
     _maxBodyPercent (simple float) : (float) The maximum body percentage.
     _minWickPercent (simple float) : (float) The minimum wick percentage.
  Returns: (bool) True if the bar is a bull pin bar, otherwise false.
 bearPinBar(_maxBodyPercent, _minWickPercent) 
  Determines if the bar is a bear pin bar.
  Parameters:
     _maxBodyPercent (simple float) : (float) The maximum body percentage.
     _minWickPercent (simple float) : (float) The minimum wick percentage.
  Returns: (bool) True if the bar is a bear pin bar, otherwise false.
 dojiBar(_maxBodyPercent) 
  Determines if the bar is a doji.
  Parameters:
     _maxBodyPercent (simple float) : (float) The maximum body percentage.
  Returns: (bool) True if the bar is a doji, otherwise false.
 spinningTopBar(_minWicksPercent, _emaLength) 
  Determines if the bar is a spinning top.
  Parameters:
     _minWicksPercent (simple float) : (float) The minimum wicks percentage.
     _emaLength (simple int) : (int) The length for EMA calculation.
  Returns: (bool) True if the bar is a spinning top, otherwise false.
 highWaveBar(_minBodyPercent, _minWickPercent, _bars) 
  Determines if the bar is a high wave bar.
  Parameters:
     _minBodyPercent (simple float) : (float) The minimum body percentage.
     _minWickPercent (simple float) : (float) The minimum wick percentage.
     _bars (simple int) : (int) The number of bars for comparison.
  Returns: (bool) True if the bar is a high wave bar, otherwise false.
 consolidationBar(_data, _spread, _bars) 
  Determines if the bars are in consolidation.
  Parameters:
     _data (map) : (map) The data map with spread levels.
     _spread (simple float) : (float) The spread percentage for comparison.
     _bars (simple int) : (int) The number of bars for comparison.
  Returns: (bool) True if the bars are in consolidation, otherwise false.
 S_DownThrust(_data, _bullPinBarMaxBody, _bullPinBarMinWick) 
  Determines if there is a sign of strength (DownThrust).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
     _bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
     _bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
  Returns: (bool) True if there is a sign of strength (DownThrust), otherwise false.
 S_SellingClimax(_data, _rejectionWick) 
  Determines if there is a sign of strength (Selling Climax).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
     _rejectionWick (simple float) : (float) The rejection wick percentage.
  Returns: (bool) True if there is a sign of strength (Selling Climax), otherwise false.
 S_NoEffortBearishResult() 
  Determines if there is a sign of strength (No Effort Bearish Result).
  Returns: (bool) True if there is a sign of strength (No Effort Bearish Result), otherwise false.
 S_BearishEffortNoResult() 
  Determines if there is a sign of strength (Bearish Effort No Result).
  Returns: (bool) True if there is a sign of strength (Bearish Effort No Result), otherwise false.
 S_InverseDownThrust(_data, _bearPinBarMaxBody, _bearPinBarMinWick) 
  Determines if there is a sign of strength (Inverse DownThrust).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
     _bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
     _bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
  Returns: (bool) True if there is a sign of strength (Inverse DownThrust), otherwise false.
 S_FailedSellingClimax() 
  Determines if there is a sign of strength (Failed Selling Climax).
  Returns: (bool) True if there is a sign of strength (Failed Selling Climax), otherwise false.
 S_BullOutsideReversal(_data) 
  Determines if there is a sign of strength (Bull Outside Reversal).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
  Returns: (bool) True if there is a sign of strength (Bull Outside Reversal), otherwise false.
 S_EndOfFallingMarket(_data) 
  Determines if there is a sign of strength (End of Falling Market).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
  Returns: (bool) True if there is a sign of strength (End of Falling Market), otherwise false.
 S_PseudoDownThrust(_bullPinBarMaxBody, _bullPinBarMinWick) 
  Determines if there is a sign of strength (Pseudo DownThrust).
  Parameters:
     _bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
     _bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
  Returns: (bool) True if there is a sign of strength (Pseudo DownThrust), otherwise false.
 S_NoSupply(_bullPinBarMaxBody, _bullPinBarMinWick) 
  Determines if there is a sign of strength (No Supply).
  Parameters:
     _bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
     _bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
  Returns: (bool) True if there is a sign of strength (No Supply), otherwise false.
 W_UpThrust(_data, _bearPinBarMaxBody, _bearPinBarMinWick) 
  Determines if there is a sign of weakness (UpThrust).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
     _bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
     _bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
  Returns: (bool) True if there is a sign of weakness (UpThrust), otherwise false.
 W_BuyingClimax(_data, _rejectionWick) 
  Determines if there is a sign of weakness (Buying Climax).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
     _rejectionWick (simple float) : (float) The rejection wick percentage.
  Returns: (bool) True if there is a sign of weakness (Buying Climax), otherwise false.
 W_NoEffortBullishResult() 
  Determines if there is a sign of weakness (No Effort Bullish Result).
  Returns: (bool) True if there is a sign of weakness (No Effort Bullish Result), otherwise false.
 W_BullishEffortNoResult() 
  Determines if there is a sign of weakness (Bullish Effort No Result).
  Returns: (bool) True if there is a sign of weakness (Bullish Effort No Result), otherwise false.
 W_InverseUpThrust(_data, _bullPinBarMaxBody, _bullPinBarMinWick) 
  Determines if there is a sign of weakness (Inverse UpThrust).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
     _bullPinBarMaxBody (simple float) : (float) The maximum body percentage for bull pin bar.
     _bullPinBarMinWick (simple float) : (float) The minimum wick percentage for bull pin bar.
  Returns: (bool) True if there is a sign of weakness (Inverse UpThrust), otherwise false.
 W_FailedBuyingClimax() 
  Determines if there is a sign of weakness (Failed Buying Climax).
  Returns: (bool) True if there is a sign of weakness (Failed Buying Climax), otherwise false.
 W_BearOutsideReversal(_data) 
  Determines if there is a sign of weakness (Bear Outside Reversal).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
  Returns: (bool) True if there is a sign of weakness (Bear Outside Reversal), otherwise false.
 W_EndOfRisingMarket(_data) 
  Determines if there is a sign of weakness (End of Rising Market).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
  Returns: (bool) True if there is a sign of weakness (End of Rising Market), otherwise false.
 W_PseudoUpThrust(_bearPinBarMaxBody, _bearPinBarMinWick) 
  Determines if there is a sign of weakness (Pseudo UpThrust).
  Parameters:
     _bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
     _bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
  Returns: (bool) True if there is a sign of weakness (Pseudo UpThrust), otherwise false.
 W_NoDemand(_bearPinBarMaxBody, _bearPinBarMinWick) 
  Determines if there is a sign of weakness (No Demand).
  Parameters:
     _bearPinBarMaxBody (simple float) : (float) The maximum body percentage for bear pin bar.
     _bearPinBarMinWick (simple float) : (float) The minimum wick percentage for bear pin bar.
  Returns: (bool) True if there is a sign of weakness (No Demand), otherwise false.
 N_QuietDoji(_dojiBarMaxBody) 
  Determines if there is a neutral signal (Quiet Doji).
  Parameters:
     _dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
  Returns: (bool) True if there is a neutral signal (Quiet Doji), otherwise false.
 N_BalancedDoji(_data, _dojiBarMaxBody) 
  Determines if there is a neutral signal (Balanced Doji).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
     _dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
  Returns: (bool) True if there is a neutral signal (Balanced Doji), otherwise false.
 N_StrongDoji(_dojiBarMaxBody) 
  Determines if there is a neutral signal (Strong Doji).
  Parameters:
     _dojiBarMaxBody (simple float) : (float) The maximum body percentage for doji bar.
  Returns: (bool) True if there is a neutral signal (Strong Doji), otherwise false.
 N_QuietSpinningTop(_spinningTopBarMinWicks, _spinningTopBarEmaLength) 
  Determines if there is a neutral signal (Quiet Spinning Top).
  Parameters:
     _spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
     _spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
  Returns: (bool) True if there is a neutral signal (Quiet Spinning Top), otherwise false.
 N_BalancedSpinningTop(_data, _spinningTopBarMinWicks, _spinningTopBarEmaLength) 
  Determines if there is a neutral signal (Balanced Spinning Top).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
     _spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
     _spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
  Returns: (bool) True if there is a neutral signal (Balanced Spinning Top), otherwise false.
 N_StrongSpinningTop(_spinningTopBarMinWicks, _spinningTopBarEmaLength) 
  Determines if there is a neutral signal (Strong Spinning Top).
  Parameters:
     _spinningTopBarMinWicks (simple float) : (float) The minimum wicks percentage for spinning top bar.
     _spinningTopBarEmaLength (simple int) : (int) The length for EMA calculation.
  Returns: (bool) True if there is a neutral signal (Strong Spinning Top), otherwise false.
 N_QuietHighWave(_highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars) 
  Determines if there is a neutral signal (Quiet High Wave).
  Parameters:
     _highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
     _highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
     _highWaveBarBars (simple int) : (int) The number of bars for comparison.
  Returns: (bool) True if there is a neutral signal (Quiet High Wave), otherwise false.
 N_BalancedHighWave(_data, _highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars) 
  Determines if there is a neutral signal (Balanced High Wave).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
     _highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
     _highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
     _highWaveBarBars (simple int) : (int) The number of bars for comparison.
  Returns: (bool) True if there is a neutral signal (Balanced High Wave), otherwise false.
 N_StrongHighWave(_highWaveBarMinBody, _highWaveBarMinWick, _highWaveBarBars) 
  Determines if there is a neutral signal (Strong High Wave).
  Parameters:
     _highWaveBarMinBody (simple float) : (float) The minimum body percentage for high wave bar.
     _highWaveBarMinWick (simple float) : (float) The minimum wick percentage for high wave bar.
     _highWaveBarBars (simple int) : (int) The number of bars for comparison.
  Returns: (bool) True if there is a neutral signal (Strong High Wave), otherwise false.
 N_Consolidation(_data, _consolidationBarSpread, _consolidationBarBars) 
  Determines if there is a neutral signal (Consolidation).
  Parameters:
     _data (map) : (map) The data map with volume and spread levels.
     _consolidationBarSpread (simple float) : (float) The spread percentage for consolidation bar.
     _consolidationBarBars (simple int) : (int) The number of bars for comparison.
  Returns: (bool) True if there is a neutral signal (Consolidation), otherwise false.
