ChaikinMoneyFlow Summary The Chaikin Money Flow Indicator measures the amount of Money Flow Volume over a specific period. The resulting indicator fluctuates above/below the zero line.
Signature
public abstract interface ChaikinMoneyFlow
Namespace cAlgo.API.Indicators
Examples Example 1 Example 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14 private ChaikinMoneyFlow _chaikinMoneyFlow ;
[Parameter("Period", DefaultValue = 21)]
public int Period { get ; set ; }
[Output("Main")]
public IndicatorDataSeries Result { get ; set ; }
protected override void Initialize ()
{
_chaikinMoneyFlow = Indicators . ChaikinMoneyFlow ( Period );
}
public override void Calculate ( int index )
{
// Display Result of Indicator
Result [ index ] = _chaikinMoneyFlow . Result [ index ];
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53 using cAlgo.API ;
using cAlgo.API.Indicators ;
namespace cAlgo.Robots
{
// This sample cBot shows how to use the Chaikin Money Flow indicator
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class ChaikinMoneyFlowSample : Robot
{
private double _volumeInUnits ;
private ChaikinMoneyFlow _chaikinMoneyFlow ;
[Parameter("Volume (Lots)", DefaultValue = 0.01)]
public double VolumeInLots { get ; set ; }
[Parameter("Stop Loss (Pips)", DefaultValue = 10)]
public double StopLossInPips { get ; set ; }
[Parameter("Take Profit (Pips)", DefaultValue = 10)]
public double TakeProfitInPips { get ; set ; }
[Parameter("Label", DefaultValue = "Sample")]
public string Label { get ; set ; }
public Position [] BotPositions
{
get
{
return Positions . FindAll ( Label );
}
}
protected override void OnStart ()
{
_volumeInUnits = Symbol . QuantityToVolumeInUnits ( VolumeInLots );
_chaikinMoneyFlow = Indicators . ChaikinMoneyFlow ( 14 );
}
protected override void OnBar ()
{
if ( _chaikinMoneyFlow . Result . Last ( 1 ) > 0 && _chaikinMoneyFlow . Result . Last ( 2 ) <= 0 )
{
ClosePositions ( TradeType . Sell );
ExecuteMarketOrder ( TradeType . Buy , SymbolName , _volumeInUnits , Label , StopLossInPips , TakeProfitInPips );
}
else if ( _chaikinMoneyFlow . Result . Last ( 1 ) < 0 && _chaikinMoneyFlow . Result . Last ( 2 ) >= 0 )
{
ClosePositions ( TradeType . Buy );
ExecuteMarketOrder ( TradeType . Sell , SymbolName , _volumeInUnits , Label , StopLossInPips , TakeProfitInPips );
}
}
private void ClosePositions ( TradeType tradeType )
{
foreach ( var position in BotPositions )
{
if ( position . TradeType != tradeType ) continue ;
ClosePosition ( position );
}
}
}
}
Properties Result Summary
The time series of the Chaikin Money Flow Indicator.
Signature
public abstract IndicatorDataSeries Result { get ; set ;}
Return Value
IndicatorDataSeries
Examples
1
2
3
4
5
6
7
8
9
10
11
12 private ChaikinMoneyFlow _chaikinMoneyFlow ;
[Parameter("Period", DefaultValue = 21)]
public int Period { get ; set ; }
protected override void OnStart ()
{
_chaikinMoneyFlow = Indicators . ChaikinMoneyFlow ( Period );
}
protected override void OnBar ()
{
var currentValue = _chaikinMoneyFlow . Result . LastValue ;
//...
}