File Name: ImpulseCDC.efs
Description:
Impulse CD Color
Formula Parameters:
Slow MA : 34
Fast MA : 14
Signal MA : 9
Notes:
Download File:
ImpulseCDC.efs
EFS Code:
Description:
Impulse CD Color
Formula Parameters:
Slow MA : 34
Fast MA : 14
Signal MA : 9
Notes:
Download File:
ImpulseCDC.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:
Impulse CD Color
Version: 1.0 08/26/2009
Formula Parameters: Default:
Slow MA 34
Fast MA 14
Signal MA 9
Notes:
**********************************/
var fpArray = new Array();
var bInit = false;
function preMain(){
setPriceStudy(false);
setShowCursorLabel(true);
setShowTitleParameters(false);
setStudyTitle("Impulse CD");
setCursorLabelName("Impulse MACD", 0);
setDefaultBarFgColor(Color.blue, 0);
setPlotType(PLOTTYPE_HISTOGRAM, 0);
setDefaultBarThickness(2,0);
setCursorLabelName("Signal", 1);
setDefaultBarFgColor(Color.red, 1);
setPlotType(PLOTTYPE_LINE, 1);
setDefaultBarThickness(2,1);
setCursorLabelName("Impulse CD", 2);
setDefaultBarFgColor(Color.green, 2);
setPlotType(PLOTTYPE_HISTOGRAM, 2);
setDefaultBarThickness(2,2);
var x = 0;
fpArray[x] = new FunctionParameter("SlowMA", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setName("Slow MA");
setLowerLimit(1);
setDefault(34);
}
fpArray[x] = new FunctionParameter("FastMA", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setName("Fast MA");
setLowerLimit(1);
setDefault(14);
}
fpArray[x] = new FunctionParameter("SignalMA", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setName("Signal MA");
setLowerLimit(1);
setDefault(9);
}
}
var xImpulseCD = null;
var xMACDDivr = null;
var xSignalMACDDivr = null;
var xColor = null;
function main(SlowMA, FastMA, SignalMA) {
var nBarState = getBarState();
var nImpulseCD = 0;
var nMACDDivr = 0;
var nSignalMACDDivr = 0;
if (nBarState == BARSTATE_ALLBARS) {
if(SlowMA == null) SlowMA = 34;
if(FastMA == null) FastMA = 14;
if(SignalMA == null) SignalMA = 9;
}
if (bInit == false) {
addBand(0, PS_SOLID, 1, Color.black, "ZeroLine");
xImpulseCD = efsInternal("Calc_ImpulseCD", SlowMA, FastMA, SignalMA);
xMACDDivr = getSeries(xImpulseCD, 1);
xSignalMACDDivr = getSeries(xImpulseCD, 2);
xColor = getSeries(xImpulseCD, 3);
bInit = true;
}
nImpulseCD = xImpulseCD.getValue(0);
nMACDDivr = xMACDDivr.getValue(0);
nSignalMACDDivr = xSignalMACDDivr.getValue(0);
if (nMACDDivr == null) return;
setBarFgColor(xColor.getValue(0), 2);
return new Array(nMACDDivr, nSignalMACDDivr, nImpulseCD);
}
var bSecondInit = false;
var xMACDDivBuff = null;
var xMA_MACDDivBuff = null;
function Calc_ImpulseCD(SlowMA, FastMA, SignalMA) {
var nRes = 0;
var cColor = Color.green;
var nMACDDivBuff = 0;
var nMA_MACDDivBuff = 0;
var nMACDDivBuff1 = 0;
var nMA_MACDDivBuff1 = 0;
if (!bSecondInit) {
xMACDDivBuff = macd(FastMA, SlowMA, 1);
xMA_MACDDivBuff = sma(SignalMA, xMACDDivBuff);
bSecondINit = true;
}
nMACDDivBuff = xMACDDivBuff.getValue(0);
nMA_MACDDivBuff = xMA_MACDDivBuff.getValue(0);
nMACDDivBuff1 = xMACDDivBuff.getValue(-1);
nMA_MACDDivBuff1 = xMA_MACDDivBuff.getValue(-1);
if (nMA_MACDDivBuff1 == null) return;
nRes = nMACDDivBuff - nMA_MACDDivBuff;
if ((nMACDDivBuff - nMA_MACDDivBuff) > (nMACDDivBuff1 - nMA_MACDDivBuff1)) cColor = Color.green;
if ((nMACDDivBuff - nMA_MACDDivBuff) < (nMACDDivBuff1 - nMA_MACDDivBuff1)) cColor = Color.red;
return new Array(nRes, nMACDDivBuff, nMA_MACDDivBuff, cColor);
}