Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
        /*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();
        }