File Name: AdjustableLagFltr.efs
Description:
Zero-Lag Data Smoothers, by John Ehlers
Formula Parameters:
Lag Reduction: 1.5
Line Thickness: 2
Line Color: Green
Display Cursor Labels: True
Notes:
The related article is copyrighted material. If you are not
a subscriber of Stocks & Commodities, please visit www.traders.com.
Download File:
AdjustableLagFltr.efs
EFS Code:
Description:
Zero-Lag Data Smoothers, by John Ehlers
Formula Parameters:
Lag Reduction: 1.5
Line Thickness: 2
Line Color: Green
Display Cursor Labels: True
Notes:
The related article is copyrighted material. If you are not
a subscriber of Stocks & Commodities, please visit www.traders.com.
Download File:
AdjustableLagFltr.efs
EFS Code:
PHP Code:
/*********************************
Provided By:
eSignal (Copyright c eSignal), a division of Interactive Data
Corporation. 2008. All rights reserved. This sample eSignal
Formula Script (EFS) is for educational purposes only and may be
modified and saved under a new file name. eSignal is not responsible
for the functionality once modified. eSignal reserves the right
to modify and overwrite this EFS file with each new release.
Description:
Zero-Lag Data Smoothers, by John Ehlers
Version: 1.0 12/05/2008
Formula Parameters: Default:
Lag Reduction 1.5
Line Thickness 2
Line Color Green
Display Cursor Labels True
Notes:
The related article is copyrighted material. If you are not
a subscriber of Stocks & Commodities, please visit [url]www.traders.com.[/url]
**********************************/
var fpArray = new Array();
var bInit = false;
var bVersion = null;
function preMain() {
setPriceStudy(true);
setShowCursorLabel(false);
setShowTitleParameters( false );
setStudyTitle("Adjustable Lag Fltr");
setCursorLabelName("ALF", 0);
setDefaultBarFgColor(Color.red, 0);
setPlotType(PLOTTYPE_LINE, 0);
setDefaultBarThickness(2, 0);
askForInput();
var x=0;
fpArray[x] = new FunctionParameter("LineColor", FunctionParameter.COLOR);
with(fpArray[x++]){
setName("Line Color");
setDefault(Color.green);
}
fpArray[x] = new FunctionParameter("ViewValue", FunctionParameter.BOOLEAN);
with(fpArray[x++]){
setName("Display Cursor Labels");
setDefault(true);
}
fpArray[x] = new FunctionParameter("LagReduction", FunctionParameter.NUMBER);
with(fpArray[x++]){
setName("Lag Reduction");
setLowerLimit(0.01);
setDefault(1.5);
}
fpArray[x] = new FunctionParameter("Thickness", FunctionParameter.NUMBER);
with(fpArray[x++]){
setName("Line Thickness");
setLowerLimit(1);
setDefault(2);
}
}
var nDenominator = 0;
var aCoeff = new Array(7);
function main(LagReduction, Thickness, LineColor, ViewValue) {
var nNumerator = 0;
var nFilter = 0;
if (bVersion == null) bVersion = verify();
if (bVersion == false) return;
if ( bInit == false ) {
setDefaultBarFgColor(LineColor, 0);
setDefaultBarThickness(Thickness, 0);
setShowCursorLabel(ViewValue);
bInit = true;
}
if (getCurrentBarCount() == 1) {
aCoeff[1] = 1;
aCoeff[2] = 2 + LagReduction;
aCoeff[3] = 3 + LagReduction;
aCoeff[4] = 3;
aCoeff[5] = 2 - LagReduction;
aCoeff[6] = 1 - LagReduction;
aCoeff[7] = 0 - LagReduction;
nDenominator = SummationArray(aCoeff, 7);
}
nNumerator = 0 ;
for (var nValue1 = 1; nValue1 <= 7; nValue1++) {
nNumerator += aCoeff[nValue1] * close(-nValue1 + 1);
}
nFilter = nNumerator / nDenominator ;
return nFilter;
}
function SummationArray(aArray, nLength){
var nRes = 0;
for (var i = 1; i <= nLength; i++) {
nRes += aArray[i];
}
if (nRes == null) nRes = 1;
return nRes;
}
function verify() {
var b = false;
if (getBuildNumber() < 779) {
drawTextAbsolute(5, 35, "This study requires version 8.0 or later.",
Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,
null, 13, "error");
drawTextAbsolute(5, 20, "Click HERE to upgrade.@URL=http://www.esignal.com/download/default.asp",
Color.white, Color.blue, Text.RELATIVETOBOTTOM|Text.RELATIVETOLEFT|Text.BOLD|Text.LEFT,
null, 13, "upgrade");
return b;
} else {
b = true;
}
return b;
}