This may be what you are looking for:

//gives each bar's previous Close
priorClose = Ref(Close, -1);

// Reset 1st value of CLOSE and prior CLOSE
priorClose[0] = 0;
Close[0] = 0;

priceChange = Close  / priorClose;

//gives each bar's price-change logarithm, corrected for NaN and
Infinite
logPC = log(priceChange);
logPC = IIf(IsNull(logPC) OR NOT(IsFinite(logPC)), 0, logPC);

//gives cumulative logarithm for each bar
CumLogs = Cum(logPC);

//gives average cumulative logarithm for each bar
meanLog = CumLogs / BarIndex();

//gives each bar's detrended close
detrendedClose = Close - meanLog;

// plots the close with solid line
Plot(detrendedClose,"Detrended Close",colorBlack,styleLine);
Plot(Close, "Close", colorRed, styleLine);

// debug values
printf("close0=" + WriteVal(Close[0]) + "\n");
printf("priorclose[0]" + WriteVal(priorclose[0]) + "\n");
printf("priorClose=" + WriteVal(priorClose) + "\n");
printf("Barindex=" + WriteVal(BarIndex()) + "\n");
printf("Close=" + WriteVal(Close) + "\n");
printf("pricechange=" + WriteVal(pricechange) + "\n");
printf("logpc=" + WriteVal(logpc) + "\n");
printf("cumlogs=" + WriteVal(Cumlogs, 1.4) + "\n");
printf("meanlog=" + WriteVal(meanlog, 1.4) + "\n");
printf("detrendedclose=" + WriteVal(detrendedclose) + "\n");


Reply via email to