public void updatePreMergeRTBarSeries(RTDataBar bar) { if (isDataMerged) { return; } DateTime time = bar.time; MarketDataElement currentRTBData = MarketDataUtil.convertBarToMarketDataElement(bar); if (preMergeRTBarSeries == null) { preMergeRTBarSeries = new SeriesBuilder <DateTime, MarketDataElement>() { { time, currentRTBData } }.Series; } else { if (!preMergeRTBarSeries.ContainsKey(time)) { preMergeRTBarSeries = preMergeRTBarSeries.Merge(new SeriesBuilder <DateTime, MarketDataElement>() { { time, currentRTBData } }.Series); } } return; }
private static Series <DateTime, MarketDataElement> addMarketDataElementWithTimeOnlyToSeries(DateTime dateTime, Series <DateTime, MarketDataElement> series) { MarketDataElement currentElement = MarketDataUtil.createHLOC(dateTime, "HLOC", "HSI", "FUT"); currentElement.volume = 900; MarketDataUtil.setHLOC(currentElement, 20200, 20000, 20050, 20150); if (series == null) { series = new SeriesBuilder <DateTime, MarketDataElement>() { { dateTime, currentElement } }.Series; } else { if (!series.ContainsKey(dateTime)) { series = series.Merge(new SeriesBuilder <DateTime, MarketDataElement>() { { dateTime, currentElement } }.Series); } } return(series); }
public void updateRTBarSeriesActions() { if (currentCompleteRTBar == null) { return; } MarketDataElement data = MarketDataUtil.convertBarToMarketDataElement(currentCompleteRTBar); if (!isRTBarMergeNeed || TimeBarSeries != null) { if (TimeBarSeries != null) { if (TimeBarSeries.ContainsKey(data.time)) { return; } TimeBarSeries = TimeBarSeries.Merge(new SeriesBuilder <DateTime, MarketDataElement>() { { data.time, data } }.Series); } else { TimeBarSeries = new SeriesBuilder <DateTime, MarketDataElement>() { { data.time, data } } }.Series;
public Boolean updateTimeBarSeries(IBMessage message) { Boolean isAdded = false; if ((!isDataMerged && getNeedMergeFlag()) || !getNeedMergeFlag()) { return(isAdded); } Series <DateTime, MarketDataElement> TimeBarSeries = appMDManager.getTimeBarSeries(); if (TimeBarSeries == null) { return(isAdded); } HistoricalDataMessage histMessage = (HistoricalDataMessage)message; double h = Convert.ToDouble(histMessage.High); double l = Convert.ToDouble(histMessage.Low); double o = Convert.ToDouble(histMessage.Open); double c = Convert.ToDouble(histMessage.Close); double vol = Convert.ToDouble(histMessage.Volume); DateTime time = DateTime.ParseExact(histMessage.Date.Trim(), "yyyyMMdd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); MarketDataElement currentHsiData = MarketDataUtil.createHLOC(time, "HLOC", "HSI", "FUT"); currentHsiData.volume = vol; currentHsiData.time = time; if (TimeBarSeries == null) { TimeBarSeries = new SeriesBuilder <DateTime, MarketDataElement>() { { time, currentHsiData } }.Series; isAdded = true; } else { MarketDataElement element = TimeBarSeries.GetAt(TimeBarSeries.KeyCount - 1); if (!TimeBarSeries.ContainsKey(time)) { TimeBarSeries = TimeBarSeries.Merge(new SeriesBuilder <DateTime, MarketDataElement>() { { time, currentHsiData } }.Series); isAdded = true; } } return(isAdded); }
public Boolean updatePreMergeHistBarSeries(IBMessage message) { Boolean isAdded = false; if (isDataMerged) { return(isAdded); } HistoricalDataMessage histMessage = (HistoricalDataMessage)message; double h = Convert.ToDouble(histMessage.High); double l = Convert.ToDouble(histMessage.Low); double o = Convert.ToDouble(histMessage.Open); double c = Convert.ToDouble(histMessage.Close); double vol = Convert.ToDouble(histMessage.Volume); DateTime time = DateTime.ParseExact(histMessage.Date.Trim(), "yyyyMMdd HH:mm:ss", CultureInfo.InvariantCulture, DateTimeStyles.AssumeLocal); MarketDataElement currentHistData = MarketDataUtil.createHLOC(time, "HLOC", "HSI", "FUT"); MarketDataUtil.setHLOC(currentHistData, h, l, o, c); currentHistData.volume = vol; currentHistData.time = time; if (preMergeHistBarSeries == null) { preMergeHistBarSeries = new SeriesBuilder <DateTime, MarketDataElement>() { { time, currentHistData } }.Series; isAdded = true; } else { if (!preMergeHistBarSeries.ContainsKey(time)) { preMergeHistBarSeries = preMergeHistBarSeries.Merge(new SeriesBuilder <DateTime, MarketDataElement>() { { time, currentHistData } }.Series); isAdded = true; } } return(isAdded); }
protected void calculateCurrentOpen(Series <DateTime, MarketDataElement> series) { if (currentOpenPrice != 0) { return; } MarketDataElement lastItem = (MarketDataElement)series.GetAt(series.KeyCount - 1); MarketDataElement openItem = MarketDateElementHelper.getFirstAvaMarketData(series, MarketDataUtil.getStartTime(lastItem.time)); currentOpenPrice = openItem.open; log.Info("[calculateCurrentOpen] : currentOpen = " + currentOpenPrice); }