reference <StudyName>(parameter1=value1,.., parameterN=valueN ).<PlotName>


References a plot from another script. Note that the reference reserved word can be dropped but in this case parenthesis are necessary.

Full form:

plot MyMACD = reference MACDHistogram;

Compressed form:

plot MyMACD = MACDHistogram();

The reference reserved word is required to distinguish the VWAP study from the vwap function, MoneyFlow study from the MoneyFlow function.

Calling the vwap function:

plot MyVWAP1 = vwap;

Referenicing the VWAP study:

plot MyVWAP1 = reference VWAP;

If the plot name is not defined, study's main plot should be referenced (main is the first declared in the source code). If parameters values are not defined, default values should be used. Inputs' names can be dropped only for thinkScript® studies, because they have fixed order of inputs in the code:

Full form:

plot MyBB2 = BollingerBandsSMA(price = open, displace = 0, length = 30);

Compact form:

plot MyBB =  BollingerBandsSMA(open, 0, 30);


The following example references def variable instead of plot:

def st = ATRTrailingStop().state;
AssignPriceColor(if st == 1
then GetColor(1)
else if st == 2
then GetColor(0)
else Color.CURRENT);
def bs = !IsNaN(close) and ATRTrailingStop().BuySignal == yes;
def ss = !IsNaN(close) and ATRTrailingStop().SellSignal == yes;
AddVerticalLine(bs or ss, if bs then "Buy!" else "Sell!", if bs then GetColor(0) else GetColor(1));

First variable, st, is the reference to the state variable from the ATRTrailingStop study script; bs and ss are references to the BuySignal and SellSignal variables from the same study.