# Money Flow Indicator (Chaikin Oscillator)

ICE Data Services -

Chaikin.efs
EFSLibrary - Discussion Board

File Name: Chaikin.efs

Description:
Money Flow Indicator (Chaikin Oscillator)

Formula Parameters:

• Fast : 3
• Slow : 10

Notes:
Indicator plots Money Flow Indicator (Chaikin). This indicator looks to improve on Larry William's Accumulation Distribution formula The indicator subtracts a 10 period exponential moving average of the
AccumDist function from a 3 period exponential moving average of the AccumDist function.

Chaikin.efs

EFS Code:

```/*********************************
Provided By:
eSignal (Copyright c eSignal), a division of Interactive Data
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:
Money Flow Indicator (Chaikin Oscillator)

Version:            1.0  04/20/2009

Formula Parameters:                     Default:
Fast                                3
Slow                                10

Notes:
Indicator plots Money Flow Indicator (Chaikin). This indicator looks
to improve on Larry William's Accumulation Distribution formula
The indicator subtracts a 10 period exponential moving average of the
AccumDist function from a 3 period exponential moving average of the
AccumDist function.
**********************************/
var fpArray = new Array();
var bInit = false;

function preMain() {
setStudyTitle("Money Flow Indicator (Chaikin Oscillator)");
setCursorLabelName("Chaikin Oscillator");
var x = 0;
fpArray[x] = new FunctionParameter("Fast", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setLowerLimit(1);
setDefault(3);
}
fpArray[x] = new FunctionParameter("Slow", FunctionParameter.NUMBER);
with(fpArray[x++]) {
setLowerLimit(1);
setDefault(10);
}
}

var xemaMax = null;
var xemaMin = null;

function main(Fast, Slow) {
var nBarState = getBarState();
var nMFI_Chaikin = 0;
if (nBarState == BARSTATE_ALLBARS) {
if (Fast == null) Fast = 3;
if (Slow == null) Slow = 10;
}
if (bInit == false) {
xemaMax = ema(Fast, accDist());
xemaMin = ema(Slow, accDist());
bInit = true;
}

nMFI_Chaikin = xemaMax.getValue(0) - xemaMin.getValue(0);
if (nMFI_Chaikin == null) return;
return nMFI_Chaikin;
}```