Esempio n. 1
0
        public async Task <OhlcSeries> ReadOhlcSeries(CurrencyPair currencyPair, DateTime startTime, DateTime endTime, int ohlcTimeSpanSeconds)
        {
            // Request chart data
            const string command    = "returnChartData";
            var          parameters = new Dictionary <string, string>
            {
                // TODO: Map global currency pair to poloniex currency pair instead of expecting these to be equal
                { "currencyPair", currencyPair.ToString() },
                { "start", DateTimeHelper.ToUnixTime(startTime).ToString() },
                { "end", DateTimeHelper.ToUnixTime(endTime).ToString() },
                { "period", ohlcTimeSpanSeconds.ToString() }
            };

            var chartData = await _dataRetriever.PerformRequest <IList <MarketChartData> >(ServerUrl, command, parameters);

            // Convert chart data to OhlcSeries
            var ohlcItems = ImmutableList.CreateBuilder <OhlcItem>();

            foreach (var chartItem in chartData.Reverse())
            {
                var startOhlc = DateTimeHelper.ToUnixTime(chartItem.Time);
                var ohlcItem  = new OhlcItem(startOhlc, startOhlc, chartItem.High, chartItem.Low, chartItem.Open, chartItem.Close);

                ohlcItems.Add(ohlcItem);
            }

            return(new OhlcSeries(ohlcTimeSpanSeconds, ohlcItems.ToImmutable()));
        }
Esempio n. 2
0
        private void UpdateLastOhlc(TickData tickData)
        {
            var currentOhlcItem = _ohlcItems[0];

            var open  = currentOhlcItem.Open;
            var close = tickData.Last;
            var high  = currentOhlcItem.High > tickData.Last ? currentOhlcItem.High : tickData.Last;
            var low   = currentOhlcItem.Low < tickData.Last ? currentOhlcItem.Low : tickData.Last;

            _ohlcItems[0] = new OhlcItem(currentOhlcItem.StartTimeEpoch, tickData.TickTimeEpoch, high, low, open, close);
        }
Esempio n. 3
0
        private void AddOhlcItem(long startTimeEpoch, TickData tickData)
        {
            var newOhlcItem = new OhlcItem(startTimeEpoch, tickData.TickTimeEpoch, tickData.Last, tickData.Last, tickData.Last, tickData.Last);

            _ohlcItems.Insert(0, newOhlcItem);
        }