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"); } }
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; } } }); }
public Candlestick Add(Candlestick candle) { return(Candlestick.Aggregate(new Candlestick[] { this, candle })); }
private IEnumerable <Candlestick> GetM30Candles(TimeSpan span) { return(Candlestick.Aggregate(GetM10Candles(span), 3)); }