File Name: Dynamo.efs
Description:
Dynamo
Formula Parameters:
OscLen : 10
MALen : 20
LowBand : 23
HiBand : 77
Notes:
In July 1996 Futures magazine, E. Marshall Wall introduces the
Dynamic Momentum Oscillator (Dynamo). Please refer to this article
for interpretation.
The Dynamo oscillator is a normalizing function which adjusts the
values of a standard oscillator for trendiness by taking the difference
between the value of the oscillator and a moving average of the oscillator
and then subtracting that value from the oscillator midpoint.
Download File:
Dynamo.efs
EFS Code:
Description:
Dynamo
Formula Parameters:
OscLen : 10
MALen : 20
LowBand : 23
HiBand : 77
Notes:
In July 1996 Futures magazine, E. Marshall Wall introduces the
Dynamic Momentum Oscillator (Dynamo). Please refer to this article
for interpretation.
The Dynamo oscillator is a normalizing function which adjusts the
values of a standard oscillator for trendiness by taking the difference
between the value of the oscillator and a moving average of the oscillator
and then subtracting that value from the oscillator midpoint.
Download File:
Dynamo.efs
EFS Code:
PHP Code:
/*********************************
Provided By:
eSignal (Copyright c eSignal), a division of Interactive Data
Corporation. 2009. 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:
Dynamo
Version: 1.0 04/15/2009
Formula Parameters: Default:
OscLen 10
MALen 20
LowBand 23
HiBand 77
Notes:
In July 1996 Futures magazine, E. Marshall Wall introduces the
Dynamic Momentum Oscillator (Dynamo). Please refer to this article
for interpretation.
The Dynamo oscillator is a normalizing function which adjusts the
values of a standard oscillator for trendiness by taking the difference
between the value of the oscillator and a moving average of the oscillator
and then subtracting that value from the oscillator midpoint.
**********************************/
var fpArray = new Array();
var bInit = false;
function preMain() {
setStudyTitle("Dynamo");
setCursorLabelName("Dynamo", 0);
setDefaultBarFgColor(Color.brown, 0);
setStudyMax(101);
setStudyMin(-1);
var x = 0;
fpArray[x] = new FunctionParameter("OscLen", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setLowerLimit(1);
setDefault(10);
}
fpArray[x] = new FunctionParameter("MALen", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setLowerLimit(1);
setDefault(20);
}
fpArray[x] = new FunctionParameter("LowBand", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setLowerLimit(1);
setDefault(23);
}
fpArray[x] = new FunctionParameter("HiBand", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setLowerLimit(1);
setDefault(77);
}
}
var HighestSoFar = null;
var LowestSoFar = null;
var HighestSoFar_1 = null;
var LowestSoFar_1 = null;
var xOscAvg = null;
var xMAVal = null;
function main(OscLen, MALen, LowBand, HiBand){
var nBarState = getBarState();
var OscAvg = 0;
var MAVal = 0;
if (nBarState == BARSTATE_ALLBARS) {
if (OscLen == null) OscLen = 10;
if (MALen == null) MALen = 20;
if (LowBand == null) LowBand = 23;
if (HiBand == null) HiBand = 77;
}
if (bInit == false) {
addBand(LowBand, PS_SOLID, 1, Color.blue, 1);
addBand(HiBand, PS_SOLID, 1, Color.red, 2);
xOscAvg = stochK(OscLen,OscLen,1);
xMAVal = stochD(OscLen,OscLen,MALen);
bInit = true;
}
OscAvg = xOscAvg.getValue(0);
MAVal = xMAVal.getValue(0);
if (OscAvg == null || MAVal == null) return;
if (LowestSoFar == null || HighestSoFar == null) {
LowestSoFar = OscAvg;
HighestSoFar = OscAvg;
LowestSoFar_1 = OscAvg;
HighestSoFar_1 = OscAvg;
return;
}
if (nBarState == BARSTATE_NEWBAR) {
LowestSoFar_1 = LowestSoFar;
HighestSoFar_1 = HighestSoFar;
}
if (OscAvg < LowestSoFar_1)
LowestSoFar = OscAvg;
else
LowestSoFar = LowestSoFar_1;
if (OscAvg > HighestSoFar_1)
HighestSoFar = OscAvg;
else
HighestSoFar = HighestSoFar_1;
var MidPnt = (LowestSoFar + HighestSoFar) / 2;
var Res = MidPnt - (MAVal - OscAvg);
return Res;
}