Пример #1
0
        private void LoadChart()
        {
            using (DBUtils.OpenThreadConnection()) {
                DateTime start = NormalizeDateTime(dateTime.AddDays(-1));

                chart1.Series.Clear();
                chart1.ChartAreas.Clear();
                chart1.Titles.Clear();

                var candles = Candlestick.Aggregate(new CandlesticksGetter()
                {
                    Granularity = "M10",
                    Start       = start,
                    End         = start.AddDays(1)
                }.Execute().ToList(), 2).ToList();

                var positions = new OrderBookPricePointDao(
                    DBUtils.GetConnection()).GetPositionSummaryGroupByOrderBookDateTime(start, dateTime)
                                .Select(p => new Tuple <DateTime, float, float>(NormalizeDateTime(p.Item1), p.Item2, p.Item3)).ToList();

                DateTime startChart = candles[0].DateTime;
                DateTime endChart   = candles[candles.Count() - 1].DateTime.AddMinutes(20);
                if (candles.Where(c => !c.IsNull).Count() >= 1)
                {
                    CreatePositionSmummaryChartArea(positions, startChart, endChart);
                    CreateCandlesticksChartArea(candles, positions, startChart, endChart);
                }



                nextDayButton.Enabled = dateTime.AddDays(1) <= DateTime.Now;
                dateLabel.Text        = dateTime.ToString("M/dd");
            }
        }
Пример #2
0
 private void 近傍ポジション変化_Click(object sender, EventArgs e)
 {
     RunTask(sender, report => {
         report.Version         = 3;
         report.IsForceOverride = true;
         report.Comment         = "";
         report.SetHeader("date_time", "pre_pl", "cur_pl", "pre_ps", "cur_ps", "low", "high", "close");
         using (DBUtils.OpenThreadConnection()) {
             OrderBookDao.Entity preOrderBook = null;
             foreach (var orderBook in GetOrderBooks())
             {
                 if (preOrderBook != null)
                 {
                     var candle = Candlestick.Aggregate(new CandlesticksGetter()
                     {
                         Granularity = "M10",
                         Start       = orderBook.NormalizedDateTime.AddMinutes(-20),
                         Count       = 2
                     }.Execute());
                     if (orderBook.NormalizedDateTime == new DateTime(2016, 2, 22, 10, 40, 0, DateTimeKind.Local))
                     {
                         int a = 1;
                     }
                     float prePl = 0, prePs = 0;
                     float curPl = 0, curPs = 0;
                     foreach (var pp in GetRangePricePoint(orderBook, candle.Low, candle.High))
                     {
                         curPl += pp.Pl;
                         curPs += pp.Ps;
                     }
                     foreach (var pp in GetRangePricePoint(preOrderBook, candle.Low, candle.High))
                     {
                         prePl += pp.Pl;
                         prePs += pp.Ps;
                     }
                     report.WriteLine(orderBook.DateTime, prePl, curPl, prePs, curPs, candle.Low, candle.High, candle.Close);
                 }
                 preOrderBook = orderBook;
             }
         }
     });
 }
Пример #3
0
 public Candlestick Add(Candlestick candle)
 {
     return(Candlestick.Aggregate(new Candlestick[] { this, candle }));
 }
Пример #4
0
 private IEnumerable <Candlestick> GetM30Candles(TimeSpan span)
 {
     return(Candlestick.Aggregate(GetM10Candles(span), 3));
 }