The majority of these are used within published projects, some useful variants have been included here aswell. This is volume one consisting mainly of smaller functions, predominantly the filters and standard deviations from Weight Gain 4000. Also included at the bottom are various snippets of related code for demonstration. These can be copied and adjusted according to your needs.
A full up-to-date table of contents is located at the top of the main script.
WEIGHT GAIN FILTERS
A collection of moving average type filters with adjustable volume weighting. Based upon the two most common methods of volume weighting. 'Simple' uses the standard method in which a basic VWMA is analogous to SMA. 'Elastic' uses exponential method found in EVWMA which is analogous to RMA.
Volume weighting is applied according to an exponent multiplier of input volume. 0 >> volume^0 (unweighted), 1 >> volume^1 (fully weighted), use float values for intermediate weighting. Additional volume filter switch for smoothing of outlier events.
DIVA MODULAR DEVIATIONS
A small collection of standard and absolute deviations. Includes the weightgain functionality as above.
Basic modular functionality for more creative uses. Optional input (ct) for external central tendency (aka: estimator). Can be assigned to alternative filter or any float value. Will default to internal filter when no ct input is received.
Some other useful or related functions included at the bottom along with basic demonstration use.
weightgain_sma(src, len, xVol, fVol) Simple Moving Average (SMA): Weight Gain (Simple Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Standard Simple Moving Average with Simple Weight Gain applied.
weightgain_hsma(src, len, xVol, fVol) Harmonic Simple Moving Average (hSMA): Weight Gain (Simple Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Harmonic Simple Moving Average with Simple Weight Gain applied.
weightgain_gsma(src, len, xVol, fVol) Geometric Simple Moving Average (gSMA): Weight Gain (Simple Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Geometric Simple Moving Average with Simple Weight Gain applied.
weightgain_wma(src, len, xVol, fVol) Linear Weighted Moving Average (WMA): Weight Gain (Simple Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Basic Linear Weighted Moving Average with Simple Weight Gain applied.
weightgain_hma(src, len, xVol, fVol) Hull Moving Average (HMA): Weight Gain (Simple Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Basic Hull Moving Average with Simple Weight Gain applied.
diva_sd_sma(src, len, xVol, fVol, ct) Standard Deviation (SD SMA): Diva / Weight Gain (Simple Volume) Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. ct (float): Central tendency (optional, na = bypass). Internal: weightgain_sma(). Returns: [Calculated Deviation value, Central Tendency (as used)]
diva_sd_wma(src, len, xVol, fVol, ct) Standard Deviation (SD WMA): Diva / Weight Gain (Simple Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. ct (float): Central tendency (optional, na = bypass). Internal: weightgain_wma(). Returns: [Calculated Deviation value, Central Tendency (as used)]
diva_aad_sma(src, len, xVol, fVol, ct) Average Absolute Deviation (AAD SMA): Diva / Weight Gain (Simple Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. ct (float): Central tendency (optional, na = bypass). Internal: weightgain_sma(). Returns: [Calculated Deviation value, Central Tendency (as used)]
diva_aad_wma(src, len, xVol, fVol, ct) Average Absolute Deviation (AAD WMA): Diva / Weight Gain (Simple Volume) . Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. ct (float): Central tendency (optional, na = bypass). Internal: weightgain_wma(). Returns: [Calculated Deviation value, Central Tendency (as used)]
weightgain_ema(src, len, xVol, fVol) Exponential Moving Average (EMA): Weight Gain (Elastic Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Exponential Moving Average with Elastic Weight Gain applied.
weightgain_dema(src, len, xVol, fVol) Double Exponential Moving Average (DEMA): Weight Gain (Elastic Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Double Exponential Moving Average with Elastic Weight Gain applied.
weightgain_tema(src, len, xVol, fVol) Triple Exponential Moving Average (TEMA): Weight Gain (Elastic Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Triple Exponential Moving Average with Elastic Weight Gain applied.
weightgain_rma(src, len, xVol, fVol) Rolling Moving Average (RMA): Weight Gain (Elastic Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Rolling Moving Average with Elastic Weight Gain applied.
weightgain_drma(src, len, xVol, fVol) Double Rolling Moving Average (DRMA): Weight Gain (Elastic Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Double Rolling Moving Average with Elastic Weight Gain applied.
weightgain_trma(src, len, xVol, fVol) Triple Rolling Moving Average (TRMA): Weight Gain (Elastic Volume). Parameters: src (float): Source input. len (int): Length (number of bars). xVol (float): Volume exponent multiplier (0 = unweighted, 1 = fully weighted). fVol (bool): Volume smoothing filter. Returns: Triple Rolling Moving Average with Elastic Weight Gain applied.
diva_mad_mm(src, len, ct) Median Absolute Deviation (MAD MM): Diva (no volume weighting). Parameters: src (float): Source input. len (int): Length (number of bars). ct (float): Central tendency (optional, na = bypass). Internal: ta.median() Returns: [Calculated Deviation value, Central Tendency (as used)]
source_switch(slct, aux1, aux2, aux3, aux4) Custom Source Selector/Switch function. Features standard & custom 'weighted' sources with additional aux inputs. Parameters: slct (string): Choose from custom set of string values. aux1 (float): Additional input for user-defined source, eg: standard input.source(). Optional, use na to bypass. aux2 (float): Additional input for user-defined source, eg: standard input.source(). Optional, use na to bypass. aux3 (float): Additional input for user-defined source, eg: standard input.source(). Optional, use na to bypass. aux4 (float): Additional input for user-defined source, eg: standard input.source(). Optional, use na to bypass. Returns: Float value, to be used as src input for other functions.
colour_gradient_ma_div(ma1, ma2, div, bull, bear, mid, mult) Colour Gradient for plot fill between two moving averages etc, with seperate bull/bear and divergence strength. Parameters: ma1 (float): Input for fast moving average (eg: bullish when above ma2). ma2 (float): Input for slow moving average (eg: bullish when below ma1). div (float): Input deviation/divergence value used to calculate strength of colour. bull (color): Colour when ma1 above ma2. bear (color): Colour when ma1 below ma2. mid (color): Neutral colour when ma1 = ma2. mult (int): Opacity multiplier. 100 = maximum, 0 = transparent. Returns: Colour with transparency (according to specified inputs)
진정한 TradingView 정신에 따라, 저자는 이 파인 코드를 다른 파인 프로그래머들이 재사용할 수 있도록 오픈 소스 라이브러리로 공개했습니다. 저자에게 박수를 보냅니다! 이 라이브러리는 개인적으로 사용하거나 다른 오픈 소스 출판물에서 사용할 수 있지만, 이 코드를 출판물에서 재사용하는 것은 하우스 룰에 의해 관리됩니다.