Ergodic TSI2

Ergodic TSI2 (ETSI2) was authored by William Blau. The ETSI2 uses price and previous price, with differences and absolute differences, in a series of exponential moving averages (EMA’s) to arrive at its ergodic oscillator values. A signal line which is an EMA of ESTI is also given. The user may alter the input (close), method (EMA) and period lengths. This indicator’s definition is further expressed in the condensed code given in the calculation below.

See also Ergodic True Strength Index.

Ergodic TSI2

How To Trade Using Ergodic TSI2

Although a signal line is plotted, no trading signals are calculated for this indicator.

How To Access in MotiveWave

Go to the top menu, choose Study>William Blau>Ergodic TSI2

or go to the top menu, choose Add Study, start typing in this study name until you see it appear in the list, click on the study name, click OK.

Important Disclaimer: The information provided on this page is strictly for informational purposes and is not to be construed as advice or solicitation to buy or sell any security. Please see our Risk Disclosure and Performance Disclaimer Statement.


//input = price, user defined, default is close
//period1 = user input, default is 21
//period2 = user input, default is 9
//period3 = user input, default is 9
//period4 = user input, default is 17
//period5 = user input, default is 6
//period6 = user input, default is 2
//sPeriod = user input, default is 2
//method = moving average (ma), user defined, default is EMA
//prev = previous, abs = absolute value
//index = current bar number

etsi = 0;
prevP = price[index-1];
priceD = price - prevP;
absPriceD = Math.abs(price - prevP);
ma1 = ma(method, index,  period1, priceD);
aMa1 = ma(method, index, period1, absPriceD);
ma4 = ma(method, index, period4, priceD);
aMa4 = ma(method, index, period4, abdPriceD);
ma2 = ma(method, index, period2, ma1);
aMa2 = ma(method, index, period2, ama1);
ma5 = ma(method, index, period5, ma4);
aMa5 = ma(method, index, period5, aMa4);
ma3 = ma(method, index, period3, ma2);
aMa3 = ma(method, index, period3, ama2);
ma6 = ma(method, index, period6, ma5);
aMa6 = ma(method, index, period6, aMa5);
Plot1: etsi2 = (100 * ma6) / aMa6;
Plot2: etsi = (100 * ma3) / aMa3;
Plot3: sig = ma(method, index, sPeriod, esti);