Skip to main content
Version: v25

PineJSStd

Interface

PineJS standard library functions.

Properties

isZero

Check if a value is zero.

Type

(v: number) => number

Type declaration

Signature

(v: number) => number
Parameters
NameTypeDescription
vnumberthe value to test.
Returns

number


max_series_default_size

Default maximum size of a pine series.

Type

10001

Methods

abs

Absolute value of x is x if x >= 0, or -x otherwise.

Signature

abs(x: number) => number

Parameters

NameType
xnumber

Returns

The absolute value of x

number


accdist

Accumulation/distribution index.

Signature

accdist(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Accumulation/distribution index.

number


acos

The acos function returns the arccosine (in radians) of number such that cos(acos(y)) = y for y in range [-1, 1].

Signature

acos(x: number) => number

Parameters

NameTypeDescription
xnumberAngle, in radians.

Returns

The arc cosine of a value; the returned angle is in the range [0, Pi] , or na if y is outside of range [-1, 1] .

number


add_days_considering_dst

Get time in daysCount number of days while taking Daylight savings time into account.

Signature

add_days_considering_dst(timezone: string, utcTime: Date, daysCount: number) => Date

Parameters

NameTypeDescription
timezonestringTimezone
utcTimeDateDate (JS built-in)
daysCountnumberNumber of days

Returns

The time is daysCount number of days, taking into account Daylight savings time.

Date


add_years_considering_dst

Get time in yearsCount number of years while taking Daylight savings time into account.

Signature

add_years_considering_dst(timezone: string, utcTime: Date, yearsCount: number) => Date

Parameters

NameTypeDescription
timezonestringTimezone
utcTimeDateDate (JS built-in)
yearsCountnumberNumber of years

Returns

The time is yearsCount number of years, taking into account Daylight savings time.

Date


alma

Arnaud Legoux Moving Average. It uses Gaussian distribution as weights for moving average.

Signature

alma(series: IPineSeries, length: number, offset: number, sigma: number) => number

Parameters

NameTypeDescription
seriesIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
offsetnumberControls tradeoff between smoothness (closer to 1) and responsiveness (closer to 0).
sigmanumberChanges the smoothness of ALMA. The larger sigma the smoother ALMA.

Returns

number


and

Logical AND.

Signature

and(n_0: number, n_1: number) => number

Parameters

NameType
n_0number
n_1number

Returns

1 if both values are truthy, 0 otherwise.

number


asin

The asin function returns the arcsine (in radians) of number such that sin(asin(y)) = y for y in range [-1, 1].

Signature

asin(x: number) => number

Parameters

NameTypeDescription
xnumberAngle, in radians.

Returns

The arcsine of a value; the returned angle is in the range [-Pi/2, Pi/2] , or na if y is outside of range [-1, 1] .

number


atan

The atan function returns the arctangent (in radians) of number such that tan(atan(y)) = y for any y.

Signature

atan(x: number) => number

Parameters

NameTypeDescription
xnumberAngle, in radians.

Returns

The arc tangent of a value; the returned angle is in the range [-Pi/2, Pi/2] .

number


atr

Function atr (average true range) returns the RMA of true range. True range is max(high - low, abs(high - close[1]), abs(low - close[1]))

Signature

atr(length: number, context: IContext) => number

Parameters

NameTypeDescription
lengthnumberLength (number of bars back).
contextIContextPineJS execution context.

Returns

Average true range.

number


avg

Calculates average of all given series (elementwise).

Signature

avg(...values: number[]) => number

Parameters

NameType
...valuesnumber[]

Returns

the average of the values

number


ceil

The ceil function returns the smallest (closest to negative infinity) integer that is greater than or equal to the argument.

Signature

ceil(x: number) => number

Parameters

NameType
xnumber

Returns

The smallest integer greater than or equal to the given number.

number


change

Difference between current value and previous, x - x[1].

Signature

change(source: IPineSeries) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries to process.

Returns

The result of subtraction.

number


close

Close Price

Signature

close(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Current close price.

number


compare

Compare the values of n1 and n2

Signature

compare(n1: number, n2: number, eps?: number) => -1 | 0 | 1

Parameters

NameTypeDescription
n1number
n2number
eps?numberEpsilon (Optional).

Returns

0 if values are equal. 1 if x1 is greater than x2. -1 if x1 is less than x2

-1 | 0 | 1


correlation

Correlation coefficient. Describes the degree to which two series tend to deviate from their sma values.

Signature

correlation(sourceA: IPineSeries, sourceB: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceAIPineSeriesSource series.
sourceBIPineSeriesTarget series.
lengthnumberLength (number of bars back).
contextIContextPineJS execution context.

Returns

Correlation coefficient.

number


cos

The cos function returns the trigonometric cosine of an angle.

Signature

cos(x: number) => number

Parameters

NameTypeDescription
xnumberAngle, in radians.

Returns

The trigonometric cosine of an angle.

number


createNewSessionCheck

checks whether a new session can be created

Signature

createNewSessionCheck(context: IContext) => (time: number) => boolean

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

checks whether a new session can be created

fn

Signature

(time: number) => boolean
Parameters
NameType
timenumber
Returns

boolean


cross

Crossing of series.

Signature

cross(n_0: number, n_1: number, context: IContext) => boolean

Parameters

NameTypeDescription
n_0numberFirst value.
n_1numberSecond value.
contextIContextPineJS execution context.

Returns

true if two series have crossed each other, otherwise false .

boolean


cum

Cumulative (total) sum. The function tracks the previous values internally.

Signature

cum(n_value: number, context: IContext) => number

Parameters

NameTypeDescription
n_valuenumberValue to add to the sum.
contextIContextPineJS execution context.

Returns

The sum.

number


currencyCode

Get the symbol currency code.

Signature

currencyCode(ctx: IContext) => string

Parameters

NameTypeDescription
ctxIContextPineJS execution context.

Returns

Symbol currency code.

string


dayofmonth

Day of month for current bar time in exchange timezone.

Signature

dayofmonth(context: IContext, time?: number) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.
time?numberoptional time. Current bar time will be used by default.

Returns

Day of month for current bar time in exchange timezone.

number


dayofweek

Day of week for current bar time in exchange timezone.

Signature

dayofweek(context: IContext, time?: number) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.
time?numberoptional time. Current bar time will be used by default.

Returns

Day of week for current bar time in exchange timezone.

number


dev

Measure of difference between the series and its sma.

Signature

dev(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Deviation of source for length bars back.

number


dmi

Calculates the directional movement values +DI, -DI, DX, ADX, and ADXR.

Signature

dmi(diLength: number, adxSmoothingLength: number, context: IContext) => [number, number, number, number, number]

Parameters

NameTypeDescription
diLengthnumberNumber of bars (length) used when calculating the +DI and -DI values.
adxSmoothingLengthnumberNumber of bars (length) used when calculating the ADX value.
contextIContextPineJS execution context.

Returns

An array of the +DI, -DI, DX, ADX, and ADXR values with diLength smoothing for the (+/-)DI values and adxSmoothingLength for the ADX value.

[number, number, number, number, number]


ema

Exponential Moving Average. In EMA weighting factors decrease exponentially.

It calculates by using a formula: EMA = alpha * x + (1 - alpha) * EMA[1], where alpha = 2 / (y + 1).

Signature

ema(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Exponential moving average of x with alpha = 2 / (y + 1)

number


eps

Epsilon (machine precision)

Signature

eps() => number

Returns

Epsilon (machine precision). Upper bound on the relative approximation error due to rounding in floating point arithmetic.

number


eq

Checks if n1 is equal to n2.

Signature

eq(n1: number, n2: number) => number

Parameters

NameType
n1number
n2number

Returns

1 if n1 is equal to n2 , 0 otherwise.

number


equal

Checks if n1 is equal to n2 (within the accuracy of epsilon).

Signature

equal(n1: number, n2: number, eps?: number) => boolean

Parameters

NameTypeDescription
n1number
n2number
eps?numberEpsilon (Optional).

Returns

True if n1 is equal to n2 .

boolean


error

Display an error message.

Signature

error(message: string) => never

Parameters

NameTypeDescription
messagestringmessage to display for error

Returns

never


exp

The exp function of x is e^x, where x is the argument and e is Euler's number.

Signature

exp(x: number) => number

Parameters

NameType
xnumber

Returns

A number representing e^x .

number


falling

Test if the series is now falling for length bars long.

Signature

falling(series: IPineSeries, length: number) => number

Parameters

NameTypeDescription
seriesIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).

Returns

true if current x is less than any previous x for length bars back, false otherwise.

number


fixnan

For a given series replaces NaN values with previous nearest non-NaN value.

Signature

fixnan(n_current: number, context: IContext) => number

Parameters

NameTypeDescription
n_currentnumberSeries of values to process.
contextIContextPineJS execution context.

Returns

Series without na gaps.

number


floor

Round the number down to the closest integer

Signature

floor(x: number) => number

Parameters

NameType
xnumber

Returns

The largest integer less than or equal to the given number.

number


ge

Checks if n1 is greater than or equal to n2

Signature

ge(n1: number, n2: number) => number

Parameters

NameType
n1number
n2number

Returns

1 if n1 is greater than or equal to n2 , 0 otherwise.

number


greater

Checks if n1 is greater than n2

Signature

greater(n1: number, n2: number, eps?: number) => boolean

Parameters

NameTypeDescription
n1number
n2number
eps?numberEpsilon (Optional).

Returns

True if n1 is greater than n2 .

boolean


greaterOrEqual

Checks if n1 is greater than or equal to n2

Signature

greaterOrEqual(n1: number, n2: number, eps?: number) => boolean

Parameters

NameTypeDescription
n1number
n2number
eps?numberEpsilon (Optional).

Returns

True if n1 is greater than or equal to n2 .

boolean


gt

Checks if n1 is greater than n2

Signature

gt(n1: number, n2: number) => number

Parameters

NameType
n1number
n2number

Returns

1 if n1 is greater than n2 , 0 otherwise.

number


high

High Price

Signature

high(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Current high price.

number


highest

Highest value for a given number of bars back.

Signature

highest(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Highest value.

number


highestbars

Highest value offset for a given number of bars back.

Signature

highestbars(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Offset to the highest bar.

number


hl2

Is a shortcut for (high + low)/2

Signature

hl2(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Calculated average of the current HL values

number


hlc3

Is a shortcut for (high + low + close)/3

Signature

hlc3(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Calculated average of the current HLC values

number


hour

Hour of current bar time in exchange timezone.

Signature

hour(context: IContext, time?: number) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.
time?numberoptional time. Current bar time will be used by default.

Returns

Current bar hour in exchange timezone.

number


iff

If ... then ... else ... iff does exactly the same thing as ternary conditional operator ?: but in a functional style. Also iff is slightly less efficient than operator ?:

Signature

iff(condition: number, thenValue: number, elseValue: number) => number

Parameters

NameTypeDescription
conditionnumbercondition to check
thenValuenumbervalue to use if condition is true
elseValuenumbervalue to use if condition is false

Returns

either thenValue or elseValue

number


interval

Get the symbol interval. For example: if the symbol has a resolution of 1D then this function would return 1.

Signature

interval(ctx: IContext) => number

Parameters

NameTypeDescription
ctxIContextPineJS execution context.

Returns

Symbol interval.

number


isdaily

Determines whether the current resolution is a daily resolution.

Signature

isdaily(context: IContext) => boolean

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

true if current resolution is a daily resolution

boolean


isdwm

Determines whether the current resolution is a daily, weekly, or monthly resolution.

Signature

isdwm(context: IContext) => boolean

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

true if current resolution is a daily or weekly or monthly resolution

boolean


isintraday

Determines whether the current resolution is an intraday (minutes or seconds) resolution.

Signature

isintraday(context: IContext) => boolean

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

true if current resolution is an intraday (minutes or seconds) resolution

boolean


ismonthly

Determines whether the current resolution is a monthly resolution.

Signature

ismonthly(context: IContext) => boolean

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

true if current resolution is a monthly resolution

boolean


isweekly

Determines whether the current resolution is a weekly resolution.

Signature

isweekly(context: IContext) => boolean

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

true if current resolution is a weekly resolution

boolean


le

Checks if n1 is less than or equal to n2

Signature

le(n1: number, n2: number) => number

Parameters

NameType
n1number
n2number

Returns

1 if n1 is greater than or equal to n2 , 0 otherwise.

number


less

Checks if n1 is less than n2

Signature

less(n1: number, n2: number, eps?: number) => boolean

Parameters

NameTypeDescription
n1number
n2number
eps?numberEpsilon (Optional).

Returns

True if n1 is less than n2 .

boolean


lessOrEqual

Checks if n1 is less than or equal to n2

Signature

lessOrEqual(n1: number, n2: number, eps?: number) => boolean

Parameters

NameTypeDescription
n1number
n2number
eps?numberEpsilon (Optional).

Returns

True if n1 is less than or equal to n2 .

boolean


linreg

Linear regression curve. A line that best fits the prices specified over a user-defined time period. It is calculated using the least squares method. The result of this function is calculated using the formula: linreg = intercept + slope * (length - 1 - offset), where intercept and slope are the values calculated with the least squares method on source series (x argument).

Signature

linreg(source: IPineSeries, length: number, offset: number) => number

Parameters

NameTypeDescription
sourceIPineSeriesSource series.
lengthnumberLength (number of bars back).
offsetnumberOffset (number of bars)

Returns

Linear regression curve point.

number


log

Natural logarithm of any x > 0 is the unique y such that e^y = x

Signature

log(x: number) => number

Parameters

NameType
xnumber

Returns

The natural logarithm of x .

number


log10

Base 10 logarithm of any x > 0 is the unique y such that 10^y = x

Signature

log10(x: number) => number

Parameters

NameType
xnumber

Returns

The base 10 logarithm of x .

number


low

Low Price

Signature

low(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Current low price.

number


lowest

Lowest value for a given number of bars back.

Signature

lowest(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Lowest value.

number


lowestbars

Lowest value offset for a given number of bars back.

Signature

lowestbars(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Offset to the lowest bar.

number


lt

Checks if n1 is less than n2

Signature

lt(n1: number, n2: number) => number

Parameters

NameType
n1number
n2number

Returns

1 if n1 is less than n2 , 0 otherwise.

number


max

Maximum number in the array

Signature

max(...values: number[]) => number

Parameters

NameType
...valuesnumber[]

Returns

The greatest of multiple given values

number


min

Minimum number in the array

Signature

min(...values: number[]) => number

Parameters

NameType
...valuesnumber[]

Returns

The smallest of multiple given values

number


minute

Minute of current bar time in exchange timezone.

Signature

minute(context: IContext, time?: number) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.
time?numberoptional time. Current bar time will be used by default.

Returns

Current bar minute in exchange timezone.

number


month

Month of current bar time in exchange timezone.

Signature

month(context: IContext, time?: number) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.
time?numberoptional time. Current bar time will be used by default.

Returns

Current bar month in exchange timezone.

number


n

Current bar index

Signature

n(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Current bar index. Numbering is zero-based, index of the first historical bar is 0.

number


na

Test value if it's a NaN.

Signature

na(n?: number) => number

Parameters

NameTypeDescription
n?numbervalue to test

Returns

1 if n is not a valid number ( n is NaN ), otherwise 0 . Returns NaN if n is undefined.

number


neq

Checks if n1 is not equal to n2.

Signature

neq(n1: number, n2: number) => number

Parameters

NameType
n1number
n2number

Returns

1 if n1 is not equal to n2 , 0 otherwise.

number


not

Logical negation (NOT).

Signature

not(n_0: number) => number

Parameters

NameType
n_0number

Returns

1 if value is falsy, 0 if value is truthy.

number


nz

Replaces NaN values with zeros (or given value) in a series.

Signature

nz(x: number, y?: number) => number

Parameters

NameTypeDescription
xnumbervalue to test (and potentially replace)
y?numberfallback value. 0 by default.

Returns

x if it's a valid (not NaN) number, otherwise y

number


ohlc4

Is a shortcut for (open + high + low + close)/4

Signature

ohlc4(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Calculated average of the current OHLC values

number


open

Open Price

Signature

open(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Current open price.

number


or

Logical OR.

Signature

or(n_0: number, n_1: number) => number

Parameters

NameType
n_0number
n_1number

Returns

1 if either value is truthy, 0 otherwise.

number


percentrank

Percent rank is the percentage of how many previous values were less than or equal to the current value of given series.

Signature

percentrank(source: IPineSeries, length: number) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).

Returns

Percent rank of source for length bars back.

number


period

Resolution string, e.g. 60 - 60 minutes, D - daily, W - weekly, M - monthly, 5D - 5 days, 12M - one year, 3M - one quarter

Signature

period(context: IContext) => string

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

The resolution string for the current context

string


pow

Mathematical power function.

Signature

pow(base: number, exponent: number) => number

Parameters

NameTypeDescription
basenumberSpecify the base to use.
exponentnumberSpecifies the exponent.

Returns

x raised to the power of y .

number


rising

Test if the series is now rising for length bars long.

Signature

rising(series: IPineSeries, length: number) => number

Parameters

NameTypeDescription
seriesIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).

Returns

true if current x is greater than any previous x for length bars back, false otherwise.

number


rma

Moving average used in RSI. It is the exponentially weighted moving average with alpha = 1 / length.

Signature

rma(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Exponential moving average of x with alpha = 1 / y .

number


roc

Rate of Change.

Function roc (rate of change) showing the difference between current value of source and the value of source that was length days ago. It is calculated by the formula: 100 * change(src, length) / src[length].

Signature

roc(source: IPineSeries, length: number) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).

Returns

The rate of change of source for length bars back.

number


round

Round the number to the nearest integer

Signature

round(x: number) => number

Parameters

NameType
xnumber

Returns

The value of x rounded to the nearest integer, with ties rounding up. If the precision parameter is used, returns a float value rounded to that number of decimal places.

number


rsi

Relative strength index. It is calculated based on rma's of upward and downward change of x.

Signature

rsi(upper: number, lower: number) => number

Parameters

NameTypeDescription
uppernumberupward change
lowernumberdownward change

Returns

Relative strength index.

number


sar

Parabolic SAR (parabolic stop and reverse) is a method devised by J. Welles Wilder, Jr., to find potential reversals in the market price direction of traded goods.

Signature

sar(start: number, inc: number, max: number, context: IContext) => number

Parameters

NameTypeDescription
startnumberStart.
incnumberIncrement.
maxnumberMaximum.
contextIContextPineJS execution context.

Returns

Parabolic SAR value.

number


second

Second of current bar time in exchange timezone.

Signature

second(context: IContext, time?: number) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.
time?numberoptional time. Current bar time will be used by default.

Returns

Current bar second in exchange timezone.

number


selectSessionBreaks

select session breaks for intraday resolutions only

Signature

selectSessionBreaks(context: IContext, times: number[]) => number[]

Parameters

NameTypeDescription
contextIContextPineJS execution context.
timesnumber[]An array of numbers representing the times to select session breaks from.

Returns

session breaks for intraday resolutions only.

number[]


sign

Sign (signum) of x is 0 if the x is zero, 1.0 if the x is greater than zero, -1.0 if the x is less than zero.

Signature

sign(x: number) => number

Parameters

NameType
xnumber

Returns

The sign of x

number


sin

The sin function returns the trigonometric sine of an angle.

Signature

sin(x: number) => number

Parameters

NameTypeDescription
xnumberAngle, in radians.

Returns

The trigonometric sine of an angle.

number


sma

Simple Moving Average. The sum of last length values of source, divided by length.

Signature

sma(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Simple moving average of x for y bars back.

number


smma

Smoothed Moving Average.

Signature

smma(n_value: number, n_length: number, ctx: IContext) => number

Parameters

NameTypeDescription
n_valuenumberNext value in the series to calculate.
n_lengthnumberSmoothing length.
ctxIContextPineJS execution context.

Returns

The smoothed moving average value.

number


sqrt

Square root of any x >= 0 is the unique y >= 0 such that y^2 = x

Signature

sqrt(x: number) => number

Parameters

NameType
xnumber

Returns

The square root of x

number


stdev

Standard deviation. Note: This is a biased estimation of standard deviation.

Signature

stdev(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Standard deviation.

number


stoch

Stochastic. It is calculated by a formula: 100 * (close - lowest(low, length)) / (highest(high, length) - lowest(low, length))

Signature

stoch(source: IPineSeries, high: IPineSeries, low: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSource series.
highIPineSeriesSeries of high.
lowIPineSeriesSeries of low.
lengthnumberLength (number of bars back).
contextIContextPineJS execution context.

Returns

Stochastic value.

number


sum

The sum function returns the sliding sum of last y values of x.

Signature

sum(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Sum of x for y bars back.

number


swma

Symmetrically weighted moving average with fixed length: 4. Weights: [1/6, 2/6, 2/6, 1/6].

Signature

swma(source: IPineSeries, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
contextIContextPineJS execution context.

Returns

Symmetrically weighted moving average

number


tan

The tan function returns the trigonometric tangent of an angle.

Signature

tan(x: number) => number

Parameters

NameTypeDescription
xnumberAngle, in radians.

Returns

The trigonometric tangent of an angle.

number


ticker

Ticker ID for the current symbol

Signature

ticker(context: IContext) => string

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Ticker ID for the current symbol

string


tickerid

Ticker ID

Signature

tickerid(context: IContext) => string

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Ticker ID for the current symbol

string


time

Current bar time

Signature

time(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

UNIX time of current bar

number


Current bar time

Signature

time(context: IContext, period: string, spec: unknown) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.
periodstringPeriod
specunknown

Returns

UNIX time of current bar

number


toBool

Convert a number to a boolean.

Signature

toBool(v: number) => boolean

Parameters

NameTypeDescription
vnumberthe value to convert.

Returns

true if the number is finite and non-zero, false otherwise.

boolean


tr

True Range

Signature

tr(n_handleNaN: number, ctx: IContext) => number

Parameters

NameTypeDescription
n_handleNaNnumberHow NaN values are handled. If truthy, and previous bar's close is NaN then tr would be calculated as current bar high-low. Otherwise tr would return NaN in such cases. Also note, that atr uses tr(true).
ctxIContextPineJS execution context.

Returns

True range. It is max(high - low, abs(high - close[1]), abs(low - close[1]))

number


tsi

True strength index. It uses moving averages of the underlying momentum of a financial instrument.

Signature

tsi(source: IPineSeries, shortLength: number, longLength: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSource series.
shortLengthnumberLength (number of bars back).
longLengthnumberLength (number of bars back).
contextIContextPineJS execution context.

Returns

True strength index. A value in range [-1, 1]

number


unitId

Get the symbol unit ID.

Signature

unitId(ctx: IContext) => string

Parameters

NameTypeDescription
ctxIContextPineJS execution context.

Returns

Symbol unit ID.

string


updatetime

Time of the current update

Signature

updatetime(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

symbol update time

number


variance

Variance is the expectation of the squared deviation of a series from its mean sma, and it informally measures how far a set of numbers are spread out from their mean. Note: This is a biased estimation of sample variance.

Signature

variance(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Variance of source for length bars back.

number


volume

Current bar volume

Signature

volume(context: IContext) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.

Returns

Current bar volume

number


vwma

The vwma function returns volume-weighted moving average of source for length bars back. It is the same as: sma(x * volume, y) / sma(volume, y)

Signature

vwma(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Volume-weighted moving average of source for length bars back.

number


weekofyear

Week number of current bar time in exchange timezone.

Signature

weekofyear(context: IContext, time?: number) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.
time?numberoptional time. Current bar time will be used by default.

Returns

Week number of current bar in exchange timezone.

number


wma

The wma function returns weighted moving average of source for length bars back. In wma weighting factors decrease in arithmetical progression.

Signature

wma(source: IPineSeries, length: number, context: IContext) => number

Parameters

NameTypeDescription
sourceIPineSeriesSeries of values to process.
lengthnumberNumber of bars (length).
contextIContextPineJS execution context.

Returns

Weighted moving average of series for length bars back.

number


year

Year of current bar time in exchange timezone.

Signature

year(context: IContext, time?: number) => number

Parameters

NameTypeDescription
contextIContextPineJS execution context.
time?numberoptional time. Current bar time will be used by default.

Returns

Current bar year in exchange timezone.

number


zigzag

Zig-zag pivot points

Signature

zigzag(n_deviation: number, n_depth: number, context: IContext) => number

Parameters

NameTypeDescription
n_deviationnumberDeviation
n_depthnumberDepth (integer)
contextIContextPineJS execution context.

Returns

the zig-zag pivot points

number


zigzagbars

Zig-zag pivot points

Signature

zigzagbars(n_deviation: number, n_depth: number, context: IContext) => number

Parameters

NameTypeDescription
n_deviationnumberDeviation
n_depthnumberDepth (integer)
contextIContextPineJS execution context.

Returns

the zig-zag pivot points (for bars)

number