Overall Statistics
Total Trades
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
0
Tracking Error
0
Treynor Ratio
0
Total Fees
$0.00
namespace QuantConnect
{
    class SimpleExample : QCAlgorithm
    {
        Symbol _symbol;
        AverageDirectionalIndex _adx;
        RollingWindow<IndicatorDataPoint[]> _window;

        public override void Initialize()
        {
            SetStartDate(2015, 11, 01);
            SetEndDate(2015, 11, 2);
            SetCash(10000);

            _symbol = AddForex("EURUSD").Symbol;


            _adx = new AverageDirectionalIndex("ADX_14_5", 14);
            _window = new RollingWindow<IndicatorDataPoint[]>(2);

            // Here is where the RollingWindow is updated with the latest SMA observation.
            _adx.Updated += (object sender, IndicatorDataPoint updated) =>
            {
                _window.Add(new IndicatorDataPoint[]
                {
                    _adx.PositiveDirectionalIndex.Current,
                    _adx.NegativeDirectionalIndex.Current
                });
            };


            var fiveMinuteConsolidator = new QuoteBarConsolidator(TimeSpan.FromMinutes(5));
            SubscriptionManager.AddConsolidator(_symbol, fiveMinuteConsolidator);
            RegisterIndicator(_symbol, _adx, fiveMinuteConsolidator);
        }


        public override void OnData(Slice slice)
        {
            if (!_window.IsReady) return;

            Log("Actual PositiveDirectionalIndex value :" + _adx.PositiveDirectionalIndex);
            Log("Actual NegativeDirectionalIndex value :" + _adx.NegativeDirectionalIndex);

            Log("Previous PositiveDirectionalIndex: " + _window[1][1]);
            Log("Previous NegativeDirectionalIndex: " + _window[1][0]);

            // Here you can implement your logic.
            if (_window[1][0] > _window[0][1])
            {
                //Do stuff
            }

        }

    }
}