public MultipleChartItemCollection CreateMultipleStatisticCollection() { const int size = 4; CollectionId id = new CollectionId("AveragePE", "SZ"); var mItemList = CreateMultipleChartItemList(size); Brush[] brushes = new Brush[size] { Brushes.Black, Brushes.Red, Brushes.Blue, Brushes.Yellow }; IPen[] pens = new IPen[brushes.Length]; for (int i = 0; i < brushes.Length; i++) { pens[i] = DrawingObjectFactory.CreatePen(brushes[i], 1); } MultipleChartItemCollection coll = new MultipleChartItemCollection(id, mItemList, pens, true); return(coll); }
private void CreateChartViewInMultipleChartItemCollectionPercentage(List <Stock> stocks, string marketId) { if (stocks != null) { var multItemList = CreateFrom(stocks); CollectionId id = new CollectionId(stocks.FirstOrDefault().id, marketId); List <IPen> pens = new List <IPen>(); pens.Add(DrawingObjectFactory.CreatePen(Brushes.Black, 1)); pens.AddRange(mvBrushs.Skip(mvStart).Take(mvCount).Select(mvBrush => DrawingObjectFactory.CreatePen(mvBrush, 1))); MultipleChartItemCollection multipleColl = new MultipleChartItemCollection(id, multItemList, pens.ToArray(), true, false); price.SetMainCollection(multipleColl); } else { price.SetMainCollection(null); volumn.SetMainCollection(null); } price.YScaleDock = YScaleDock.Right; volumn.YScaleDock = YScaleDock.Right; price.AddConnection(volumn); price.ForceDraw(); }
/*private void CreateCandleView() * { * Stock stock = ...; * * var closeList = new List<ChartItem>(); * var volList = new List<ChartItem>(); * CandleData cdPre = stock.Items.First(); * foreach (var cd in stock.Items) * { * closeList.Add(new StockItem() * { * Close = cd.close, * Date = cd.DateTime, * High = cd.high, * Low = cd.low, * Open = cd.open, * CloseChange = (cd.close - cdPre.close) / cdPre.close * }); * * cdPre = cd; * * volList.Add(new VolumnItem() * { * Date = cd.DateTime, * IsRaise = cd.open <= cd.close, * Volumn = cd.amount, * Turnover = cd.money * }); * } * * string stockId = "000001"; * string marketId = "SH"; * * CollectionId id = new CollectionId(stockId, marketId); * StockItemCollection coll = new StockItemCollection(id, closeList, raisePen, fallPen, null, false); * price.SetMainCollection(coll); * * id = new CollectionId(stockId, marketId); * VolumnItemCollection volColl = new VolumnItemCollection(id, volList, raisePen, fallPen, false); * volumn.SetMainCollection(volColl); * price.AddConnection(volumn); * price.ForceDraw(); * }*/ private void CreateCandleViewInMultipleChartItemCollection(Stock stock, string marketId) { if (stock != null) { var multItemList = new List <MultipleChartItem>(); var volList = new List <VolumnItem>(); CandleData cdPre = stock.Items.FirstOrDefault(); foreach (var cd in stock.Items) { multItemList.Add(new MultipleChartItem() { Value = cd.close, Date = cd.DateTime, ValueChange = (cd.close - cdPre.close) / cdPre.close, Values = new List <double>(mvCount) }); cdPre = cd; volList.Add(new VolumnItem() { Date = cd.DateTime, IsRaise = cd.open <= cd.close, Volumn = cd.amount, Turnover = cd.money }); } for (int i = mvStart; i < mvStart + mvCount; i++) { var maPeriod = mvUnits[i]; var maN = stock.MA(maPeriod); 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>(); pens.Add(DrawingObjectFactory.CreatePen(Brushes.Black, 1)); pens.AddRange(mvBrushs.Skip(mvStart).Take(mvCount).Select(mvBrush => DrawingObjectFactory.CreatePen(mvBrush, 1))); MultipleChartItemCollection multipleColl = new MultipleChartItemCollection(id, multItemList, pens.ToArray(), true, 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(); }