File Name: Uni_channel.efs
Description:
This is the Uni-channel indicator from Ensign. The type designation of 1
means that a constant value is added to the moving average value. Type 2
means that percentage value is added to the moving average.
Formula Parameters:
Moving average source: close
Moving average length: 10
Upper band width: 0.8
Lower band width: 1.2
Mode of indicator: 1
Notes:
Bands define the upper and lower boundaries of a security's normal trading
range. A sell signal is generated when the security reaches the upper band
whereas a buy signal is generated at the lower band. The optimum percentage
shift depends on the volatility of the security--the more volatile, the larger
the percentage.
The logic behind bands is that overzealous buyers and sellers push the price
to the extremes (i.e., the upper and lower bands), at which point the prices
often stabilize by moving to more realistic levels.
There are two kinds of bands: envelopes and Bollinger bands.
The difference between Bollinger bands and envelopes is envelopes are plotted at a
fixed percentage above and below a moving average, whereas Bollinger bands are plotted
at standard deviation levels above and below a moving average. Since standard deviation
is a measure of volatility, the bands are self-adjusting: widening during volatile markets
and contracting during calmer periods. Bollinger Bands were created by John Bollinger.
Download File:
Uni_channel.efs
EFS Code:
Description:
This is the Uni-channel indicator from Ensign. The type designation of 1
means that a constant value is added to the moving average value. Type 2
means that percentage value is added to the moving average.
Formula Parameters:
Moving average source: close
Moving average length: 10
Upper band width: 0.8
Lower band width: 1.2
Mode of indicator: 1
Notes:
Bands define the upper and lower boundaries of a security's normal trading
range. A sell signal is generated when the security reaches the upper band
whereas a buy signal is generated at the lower band. The optimum percentage
shift depends on the volatility of the security--the more volatile, the larger
the percentage.
The logic behind bands is that overzealous buyers and sellers push the price
to the extremes (i.e., the upper and lower bands), at which point the prices
often stabilize by moving to more realistic levels.
There are two kinds of bands: envelopes and Bollinger bands.
The difference between Bollinger bands and envelopes is envelopes are plotted at a
fixed percentage above and below a moving average, whereas Bollinger bands are plotted
at standard deviation levels above and below a moving average. Since standard deviation
is a measure of volatility, the bands are self-adjusting: widening during volatile markets
and contracting during calmer periods. Bollinger Bands were created by John Bollinger.
Download File:
Uni_channel.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:
This is the Uni-channel indicator from Ensign. The type designation of 1
means that a constant value is added to the moving average value. Type 2
means that percentage value is added to the moving average.
Version: 1.0 09/30/2008
Notes:
Bands define the upper and lower boundaries of a security's normal trading
range. A sell signal is generated when the security reaches the upper band
whereas a buy signal is generated at the lower band. The optimum percentage
shift depends on the volatility of the security--the more volatile, the larger
the percentage.
The logic behind bands is that overzealous buyers and sellers push the price
to the extremes (i.e., the upper and lower bands), at which point the prices
often stabilize by moving to more realistic levels.
There are two kinds of bands: envelopes and Bollinger bands.
The difference between Bollinger bands and envelopes is envelopes are plotted at a
fixed percentage above and below a moving average, whereas Bollinger bands are plotted
at standard deviation levels above and below a moving average. Since standard deviation
is a measure of volatility, the bands are self-adjusting: widening during volatile markets
and contracting during calmer periods. Bollinger Bands were created by John Bollinger.
Formula Parameters: Default:
Moving average source close
Moving average length 10
Upper band width 0.8
Lower band width 1.2
Mode of indicator 1
**********************************/
var fpArray = new Array();
var bInit = false;
function preMain() {
setPriceStudy(true);
setStudyTitle("Uni - Channel");
setCursorLabelName("CentLine", 0);
setCursorLabelName("Upper", 1);
setCursorLabelName("Lower", 2);
setDefaultBarFgColor(Color.aqua, 0);
setDefaultBarFgColor(Color.blue, 1);
setDefaultBarFgColor(Color.magenta, 2);
askForInput();
var x=0;
fpArray[x] = new FunctionParameter("Price", FunctionParameter.STRING);
with(fpArray[x++]){
setName("Moving average source");
addOption("open");
addOption("high");
addOption("low");
addOption("close");
addOption("hl2");
addOption("hlc3");
addOption("ohlc4");
setDefault("close");
}
fpArray[x] = new FunctionParameter("MaLen", FunctionParameter.NUMBER);
with(fpArray[x++]){
setName("Average length");
setLowerLimit(1);
setDefault(10);
}
fpArray[x] = new FunctionParameter("Const1", FunctionParameter.NUMBER);
with(fpArray[x++]){
setName("Upper band multiplier");
setLowerLimit(0.01);
setDefault(0.8);
}
fpArray[x] = new FunctionParameter("Const2", FunctionParameter.NUMBER);
with(fpArray[x++]){
setName("Lower band multiplier");
setLowerLimit(0.01);
setDefault(1.2);
}
fpArray[x] = new FunctionParameter("Type", FunctionParameter.NUMBER);
with(fpArray[x++]){
setName("Mode of indicator");
addOption(1);
addOption(2);
setDefault(1);
}
}
var xPrice = null;
var xUpper = null;
var xLower = null;
var xMA = null;
function main(Price, MaLen, Const1, Const2, Type) {
var nBarState = getBarState();
if(nBarState == BARSTATE_ALLBARS) {
if (Price == null) Price = "close";
if (MaLen == null) MaLen = 10;
if (Const1 == null) Const1 = 0.8;
if (Const2 == null) Const2 = 1.2;
if (Type == null) Type = 1;
}
if (bInit == false) {
xPrice = eval(Price)();
xMA = sma(MaLen, xPrice);
if (Type == 2) {
xUpper = upperEnv(MaLen, false, Const1, xPrice);
xLower = lowerEnv(MaLen, false, Const2, xPrice);
}
bInit = true;
}
var nUpper = 0;
var nLower = 0;
var nMA = xMA.getValue(0);
if (Type == 1) {
nUpper = nMA + Const1;
nLower = nMA - Const2;
} else if (Type == 2) {
nUpper = xUpper.getValue(0);
nLower = xLower.getValue(0);
} else return;
if (getCurrentBarCount() < MaLen) return;
return new Array(nMA, nUpper, nLower);
}