# Percent R

ICE Data Services -

percentR() Built-in Study Functions

Williams' %R (Percent R), developed by Larry Williams, is a momentum indicator that measures overbought/oversold levels.

Syntax
percentR( nLength [, Series | sym() | inv() ][, nBarIndex ] )

Parameters
Parameter: Description: Default:
nLength Required. Number of periods to use for calculation.

n/a Series or
sym() or
inv()
[Optional]  Series Object or function of sym() or inv() to determine symbol/interval source for the study.

Chart's sym/inv nBarIndex [Optional]  Bar index of series to retrieve.

n/a

Return Value(s)

Returns a Series Object when nBarIndex is not specified.

Returns a single value when nBarIndex is specified.

Notes
Only available in versions 7.9 or later.

Code Examples
Single Line Indicator:
 `function main() { return percentR(10);}`

Single Line Study-on-Study Indicator:
 `function main() { return percentR(10, hl2() );}`

Retrieve single values:
 ``function main() { var nValue_0 = percentR(10, 0); // Current Bar Index var nValue_1 = percentR(10, -1); // Prior Bar Index return new Array(nValue_0, nValue_1);}``

Initialize a Series Object:
 ``var xStudy = null;function main() { if (xStudy == null) { xStudy = percentR(10); } // retrieve single values for conditional statements var nValue_0 = xStudy.getValue(0); // Current Bar Index value var nValue_1 = xStudy.getValue(-1); // Prior Bar Index value return nValue_0; // Plot Current Bar Index Value}``

Initialize a Series Object based on an external interval:
 ``var xStudy = null;var bInit = false; // Initialization flagfunction main() { if (bInit == false) { xStudy = percentR(10, inv(20)); // 20-min interval bInit = true; } // retrieve single values for conditional statements var nValue_0 = xStudy.getValue(0); // Current Bar Index value var nValue_1 = xStudy.getValue(-1); // Prior Bar Index value return getSeries(xStudy); // Synchronized Series plot}``

Initialize a Series Object based on an external symbol and interval:
 ``var xStudy = null;var bInit = false; // Initialization flagfunction main() { if (bInit == false) { xStudy = percentR(10, sym("IBM,20")); // IBM 20-min interval bInit = true; } // retrieve single values for conditional statements var nValue_0 = xStudy.getValue(0); // Current Bar Index value var nValue_1 = xStudy.getValue(-1); // Prior Bar Index value return getSeries(xStudy); // Synchronized Series plot}``