Library "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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>) _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<string, float>) _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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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<string, float>): (map<string, float>) 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.
發布通知
v2 - Corrected logic for N_QuietHighWave() to ensure a larger spread than the prior candle(s) unlike other 'Quiet' VSA functions, due to the requirements of 'High Wave Bar'. - All function parameter descriptions now include their default values where applicable. Parameters with default values are optional. - Updated order of parameters for setupDataForecastVolume() and setupDataForecastSpread() to allow for use of use of default parameters, as seen below.
setupDataForecastVolume(_dataForecast, _predictedLevelVolume, _mult_Low, _mult_High, _mult_Ultra, _maLengthVolume, _maTypeVolume) Sets up data for volume levels for forecast. Parameters: _dataForecast (map<string, float>) _predictedLevelVolume (float): (float) The predicted level for MA. _mult_Low (simple float): (float) The multiplier for low level. Default is 0.5. _mult_High (simple float): (float) The multiplier for high level. Default is 1.5. _mult_Ultra (simple float): (float) The multiplier for ultra level. Default is 3.0. _maLengthVolume (simple int): (int) The length for MA. Default is 5. _maTypeVolume (simple string): (string) The type for MA. Default is SMA. Returns: (void) Nothing.
setupDataForecastSpread(_dataForecast, _predictedLevelSpread, _mult_Low, _mult_High, _mult_Ultra, _maLengthSpread, _maTypeSpread) Sets up data for spread levels for forecast. Parameters: _dataForecast (map<string, float>) _predictedLevelSpread (float): (float) The predicted level for MA. _mult_Low (simple float): (float) The multiplier for low level. Default is 0.5. _mult_High (simple float): (float) The multiplier for high level. Default is 1.5. _mult_Ultra (simple float): (float) The multiplier for ultra level. Default is 3.0. _maLengthSpread (simple int): (int) The length for MA. Default is 20. _maTypeSpread (simple string): (string) The type for MA. Default is SMA. Returns: (void) Nothing.
█ Initializations
Functions containing "map<string, float> _data" require the following initialization in indicator's main code: