private ChartItemCollection CreateSingleStockCollection(ChartItemType type, IEnumerable <ChartItem> chartItems, IEnumerable <ChartItem> chartItems2, CollectionId id, IPen pen1, IPen pen2, IPen[] otherPens) { List <StockValuesItem> ssItems = new List <StockValuesItem>(chartItems.Count()); var it = chartItems2.GetEnumerator(); foreach (var cItem in chartItems) { it.MoveNext(); var sItem = cItem as StockItem; StockValuesItem ssItem = new StockValuesItem() { Date = sItem.Date, High = sItem.High, Low = sItem.Low, Open = sItem.Open, Close = sItem.Close, CloseChange = sItem.CloseChange, Values = new List <double>(new double[] { it.Current.Value }), ValueChanges = new List <double>(new double[] { it.Current.ValueChange }) }; ssItems.Add(ssItem); } var coll = new StockValuesItemCollection(id, ssItems, pen1, pen2, null, otherPens); return(coll); }
public StockValuesItemCollection CreateSingleStockCollection(IPen pen1, IPen pen2, IPen contrastPen) { var itemList = CreateSingleStockItemList(); if (itemList != null) { CollectionId id = new CollectionId(shareId, GetMarketId()); StockValuesItemCollection collection = new StockValuesItemCollection(id, itemList, pen1, pen2, null, new IPen[] { contrastPen }); return(collection); } return(null); }
private ChartItemCollection CreateSingleStockCollection(ChartItemType type, IEnumerable<ChartItem> chartItems, IEnumerable<ChartItem> chartItems2, CollectionId id, IPen pen1, IPen pen2, IPen[] otherPens) { List<StockValuesItem> ssItems = new List<StockValuesItem>(chartItems.Count()); var it = chartItems2.GetEnumerator(); foreach (var cItem in chartItems) { it.MoveNext(); var sItem = cItem as StockItem; StockValuesItem ssItem = new StockValuesItem() { Date = sItem.Date, High = sItem.High, Low = sItem.Low, Open = sItem.Open, Close = sItem.Close, CloseChange = sItem.CloseChange, Values = new List<double>(new double[] { it.Current.Value }), ValueChanges = new List<double>(new double[] { it.Current.ValueChange }) }; ssItems.Add(ssItem); } var coll = new StockValuesItemCollection(id, ssItems, pen1, pen2, null, otherPens); return coll; }
private void CreateCandleViewInSignleStockItemCollection(Stock stock, string marketId) { if (stock != null) { var multItemList = new List <StockValuesItem>(); var volList = new List <VolumnItem>(); CandleData cdPre = stock.Items.FirstOrDefault(); foreach (var cd in stock.Items) { multItemList.Add(new StockValuesItem() { Value = cd.close, Date = cd.DateTime, High = cd.high, Low = cd.low, Open = cd.open, CloseChange = (cd.close - cdPre.close) / cdPre.close, Values = new List <double>(mvCount) }); volList.Add(new VolumnItem() { Date = cd.DateTime, IsRaise = cd.open <= cd.close, Volumn = cd.amount, Turnover = cd.money }); cdPre = cd; } for (int i = mvStart; i < mvStart + mvCount; i++) { var maPeriod = mvUnits[i]; var maN = stock.MA(maPeriod); if (!maN.Any()) { continue; } int iInvalidCount = maPeriod - 1; for (int j = 0; j < iInvalidCount; j++) { var mItem = multItemList[j]; mItem.Values.Add(ChartItemCollection.valueNA); } List <ChartItem> mv60Items = new List <ChartItem>(maN.Count); for (int j = 0; j < maN.Count; j++) { var mItem = multItemList[j + iInvalidCount]; mItem.Values.Add(maN[j]); } } CollectionId id = new CollectionId(stock.id, marketId); List <IPen> pens = new List <IPen>(mvBrushs.Skip(mvStart).Take(mvCount).Select(mvBrush => DrawingObjectFactory.CreatePen(mvBrush, 1))); StockValuesItemCollection multipleColl = new StockValuesItemCollection(id, multItemList, raisePen, fallPen, null, pens.ToArray(), false); price.SetMainCollection(multipleColl); VolumnItemCollection volColl = new VolumnItemCollection(id, volList, raisePen, fallPen, isDynamic); //volColl.VolumnItemStyle = VolumnItemStyle.Linear; volumn.SetMainCollection(volColl); } else { price.SetMainCollection(null); volumn.SetMainCollection(null); } price.YScaleDock = YScaleDock.Right; volumn.YScaleDock = YScaleDock.Right; price.AddConnection(volumn); price.ForceDraw(); }