Exemplo n.º 1
0
        public override void Calculate(int index)
        {
            _symboltime = MarketSeries.OpenTime[index];
            _xbrindex   = _xbrseries.GetIndexByDate(_symboltime);
            _xtiindex   = _xtiseries.GetIndexByDate(_symboltime);
            var             xbrtime  = _xbrseries.OpenTime[_xbrindex];
            var             xtitime  = _xtiseries.OpenTime[_xtiindex];
            List <DateTime> timelist = new List <DateTime>();

            timelist.Add(_symboltime);
            timelist.Add(xbrtime);
            timelist.Add(xtitime);
            _xbrindex = _xbrseries.GetIndexByDate(timelist.Min());
            _xtiindex = _xtiseries.GetIndexByDate(timelist.Min());
            double xbrclose = _xbrseries.Close[_xbrindex] / _xbrsymbol.PipSize;
            double xticlose = _xtiseries.Close[_xtiindex] / _xtisymbol.PipSize;
            double newclose = (xbrclose / xticlose) / (_xbrsymbol.PipSize * _xtisymbol.PipSize);

            Result[index] = newclose;
            double sum = 0.0;

            for (int i = index - AveragePeriods + 1; i <= index; i++)
            {
                sum += Result[i];
            }
            Average[index] = sum / AveragePeriods;

            #region Chart
            BarsAgo = GetBarsAgo(index);
            ChartObjects.DrawText("barsago", "Cross_(" + BarsAgo.ToString() + ")", StaticPosition.TopLeft, _nocorel);
            #endregion
        }