Polarized Fractal Efficiency

Polarized Fractal Efficiency was authored by Omega Research 1997. The PFE uses price on several past price bars. They are powered, rounded, sqaure rooted, feed their past values and finally formed into an oscillator. The user may change the input (close) and period length. This indicator’s definition is further expressed in the condensed code given in the calculation below.

Polarized Fractal Efficiency

How To Trade Using Polarized Fractal Efficiency

Adjust the top and bottom guides to control the quantity and quality of the trading signals. If the ema peaks above the top guide a sell signal will be generated. Conversely, if the ema troughs below the bottom guide a buy signal will be given.
The zero line divides the bears above from the bulls below.

Polarized Fractal Efficiency2

How To Access in MotiveWave

Go to the top menu, choose Study>Oscillators>Polarized Fractal Efficiency

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
//period = user defined, default is 9;
//pow = power, sqrt = square root
//prev = previous, index = current bar number
//LOE = less or equal, MOE = more or equal

pfe = 0;
c2c = 0;
counter = 0;
fracEff = 0;
ema = 0;
prevEma = 0;
priceCM1 = 0;
priceC = 0;
priorPrice = price[index-period];
pfe = Math.sqrt(Math.pow((price - priorPrice), 2) + 100);
for (counter = 1; counter LOE period; counter++)
    priceCM1 = price[index-counter-1];
    priceC = price[index-counter];
    c2c = c2c + Math.sqrt(Math.pow(priceCM1 - priceC, 2) + 1);
if (price - priorPrice moreThan 0) fracEff = Math.round((pfe / c2c) * 100);
else fracEff = Math.rint(-(pfe / c2c) * 100);
prevEma = ifNull(fracEff, ema[index-1]);   //returns fracEff on first try
Plot: ema = Math.rint((fracEff * 0.333) + prevEma * (1 - 0.333));
prevEma = ema[index-1];
sell = (ema moreThan topGuide) AND (prevEma MOE ema) AND (ema moreThan highSell);
buy = (ema lessThan bottomGuide) AND (prevEma LOE ema) AND (ema lessThan lowBuy);