예제 #1
0
        public void InitChart()
        {
            chart1.Dock = DockStyle.Fill;

            //// fake the DB data with a simple list
            //List<dbdata> k = new List<dbdata> {
            //new dbdata("1/1/2012", 10f, 8f, 9f, 9.5f),
            //new dbdata("2/1/2012", 15F, 10F, 12F, 13F),
            //new dbdata("3/1/2012", 5F, 10F, 8F, 6F),
            //new dbdata("4/1/2012", 25F, 10F, 18F, 16F)
            //};

            Series price = new Series("price"); // <<== make sure to name the series "price"

            chart1.Series.Add(price);

            // Set series chart type
            chart1.Series["price"].ChartType = SeriesChartType.Candlestick;

            // Set the style of the open-close marks
            chart1.Series["price"]["OpenCloseStyle"] = "Triangle";

            // Show both open and close marks
            chart1.Series["price"]["ShowOpenClose"] = "Both";

            // Set point width
            chart1.Series["price"]["PointWidth"] = "2.0";

            // Set colors bars
            chart1.Series["price"]["PriceUpColor"]   = "Green"; // <<== use text indexer for series
            chart1.Series["price"]["PriceDownColor"] = "Red";   // <<== use text indexer for series

            FeedProvider mainProvider = FeedAPIFactory.GetStockFeedFactory(FeedAPIProviders.Google);
            var          GooglePoints = new string[] { QuoteDataPoints.Date, QuoteDataPoints.Open, QuoteDataPoints.High, QuoteDataPoints.Low, QuoteDataPoints.Close, QuoteDataPoints.Volume };
            var          ticks        = mainProvider.GetTicks(new string[] { "TSLA" }, 121, 30, GooglePoints).First();

            int i = 0;

            foreach (var k in ticks.TickGroup.Where(d => d.Date.ToShortDateString().Equals("8/6/2014")))
            {
                // adding date and high
                chart1.Series["price"].Points.AddXY(k.Date, k.High);
                // adding low
                chart1.Series["price"].Points[i].YValues[1] = k.Low;
                //adding open
                chart1.Series["price"].Points[i].YValues[2] = k.Open;
                // adding close
                chart1.Series["price"].Points[i].YValues[3] = k.Close;
                i++;
            }
        }
예제 #2
0
        static void Intraday()
        {
            SubscribeEvents();

            var ticks = mainProvider.GetTicks(symbols, 121, 30, GooglePoints);

            #region Main Symbol Loop
            foreach (var tick in ticks.Where(t => t.TickGroup.Count() > 0))
            {
                notificationsList.Add(tick.Symbol, mainProvider.GenerateTickReportData(tick));

                #region Intraday Ticks Indicators Events
                var twoMinutesFiveDaysClosePrices = tick.TickGroup2Minutes5Days.Select(x => x.Close).ToList();
                if (twoMinutesFiveDaysClosePrices.Count() > 0)
                {
                    RelativeStrengthIndex.GetRSI(10, twoMinutesFiveDaysClosePrices, tick.Symbol, Periods.TwoMinutesFiveDays);
                    MACD.GetMACDInfo(12, 26, 9, twoMinutesFiveDaysClosePrices, 5, tick.Symbol, Periods.TwoMinutesFiveDays);
                }
                #endregion
            }
            #endregion

            NotifSender.SendTickReportData(notificationsList, Delivery.FTP);
        }