Aroon Summary An indicator for identifying trends in a currency pair, as well as for gauging the probability of a trend reversal.
The indicator fluctuates between 0 and 100, with values above 80 signalling an upward trend, and values below 20 signalling a downward trend.
Signature
public abstract interface Aroon
Namespace cAlgo.API.Indicators
Examples Example 1 Example 2
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 using cAlgo.API ;
using cAlgo.API.Indicators ;
namespace cAlgo.Indicators
{
[Indicator]
public class AroonReferenceExample : Indicator
{
private Aroon _aroon ;
[Parameter("Periods", DefaultValue = 25)]
public int Periods { get ; set ; }
[Output("Up")]
public IndicatorDataSeries ResultAroonUp { get ; set ; }
[Output("Down")]
public IndicatorDataSeries ResultAroonDown { get ; set ; }
protected override void Initialize ()
{
_aroon = Indicators . Aroon ( Periods );
}
public override void Calculate ( int index )
{
ResultAroonUp [ index ] = _aroon . Up [ index ];
ResultAroonDown [ index ] = _aroon . Down [ 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 an Aroon indicator
[Robot(TimeZone = TimeZones.UTC, AccessRights = AccessRights.None)]
public class AroonSample : Robot
{
private double _volumeInUnits ;
private Aroon _accumulativeSwingIndex ;
[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 );
_accumulativeSwingIndex = Indicators . Aroon ( 25 );
}
protected override void OnBar ()
{
if ( _accumulativeSwingIndex . Up . Last ( 1 ) > _accumulativeSwingIndex . Down . Last ( 1 ) && _accumulativeSwingIndex . Up . Last ( 2 ) < _accumulativeSwingIndex . Down . Last ( 2 ))
{
ClosePositions ( TradeType . Sell );
ExecuteMarketOrder ( TradeType . Buy , SymbolName , _volumeInUnits , Label , StopLossInPips , TakeProfitInPips );
}
else if ( _accumulativeSwingIndex . Up . Last ( 1 ) < _accumulativeSwingIndex . Down . Last ( 1 ) && _accumulativeSwingIndex . Up . Last ( 2 ) > _accumulativeSwingIndex . Down . Last ( 2 ))
{
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 Up Summary
Aroon Up
Signature
public abstract IndicatorDataSeries Up { get ;}
Return Value
IndicatorDataSeries
Examples
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 //...
[Parameter("Periods", DefaultValue = 25)]
public int Periods { get ; set ; }
//...
private Aroon _aroon ;
//...
protected override void OnStart ()
{
_aroon = Indicators . Aroon ( Periods );
}
protected override void OnBar ()
{
Print ( "Current Aroon Up Value is: {0}" , _aroon . Up . LastValue );
}
//...
Down Summary
Aroon Down
Signature
public abstract IndicatorDataSeries Down { get ;}
Return Value
IndicatorDataSeries
Examples
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 //...
[Parameter("Periods", DefaultValue = 25)]
public int Periods { get ; set ; }
//...
private Aroon _aroon ;
//...
protected override void OnStart ()
{
_aroon = Indicators . Aroon ( Periods );
}
protected override void OnBar ()
{
Print ( "Current Aroon Down Value is: {0}" , _aroon . Down . LastValue );
}
//...