private void ReadMin() { string strSrc = ConfigurationManager.AppSettings["futuremin"]; string futureid = TbxInstrumentId.Text; DateTime beginDate = Convert.ToDateTime(DpBeginDate.Text); DateTime endDate = Convert.ToDateTime(DpEndDate.Text); BarSeries barSeries = new BarSeries(); for (DateTime date = beginDate; date < endDate;) { string strFile = System.IO.Path.Combine(strSrc, date.ToString("yyyyMM")); strFile = System.IO.Path.Combine(strFile, futureid + ".min"); MqMinReader mqMinReader = new MqMinReader(strFile); ; mqMinReader.ReadAll(barSeries); date = date.AddMonths(1); } MainListView.Items.Clear(); foreach (Bar bar in barSeries) { ViewMin min = new ViewMin(bar); if (bar.TradingDate >= beginDate && bar.TradingDate <= endDate) { MainListView.Items.Add(min); } } }
private void ExportCsv_Click(object sender, RoutedEventArgs e) { EDataType eDataType = (EDataType)CmbBox.SelectedItem; StringBuilder sb = new StringBuilder(); switch (eDataType) { case EDataType.Tick: sb.AppendLine($@"TradingDay,TickNow,LastPrice,VolumeNow,BidPrice1,AskPrice1,BidVolume1,AskVolume1,HighPrice,OpenPrice,LowPrice,Change,Volume,Turnover"); break; case EDataType.Min: sb.AppendLine($@"TradingDate,BeginTimeStr,EndTimeStr,High,Open,Low,Close,Volume,Turnover"); break; default: break; } foreach (var data in MainListView.SelectedItems) { switch (eDataType) { case EDataType.Tick: ViewTick tick = (ViewTick)data; sb.AppendLine($@"{tick.TradingDay},{tick.TickNow},{tick.LastPrice},{tick.VolumeNow},{tick.BidPrice1},{tick.AskPrice1},{tick.BidVolume1},{tick.AskVolume1},{tick.HighPrice},{tick.OpenPrice},{tick.LowPrice},{tick.Change},{tick.Volume},{tick.Turnover}"); break; case EDataType.Min: ViewMin min = (ViewMin)data; sb.AppendLine($@"{min.TradingDate},{min.BeginTimeStr},{min.EndTimeStr},{min.High},{min.Open},{min.Low},{min.Close},{min.Volume},{min.Turnover}"); break; default: break; } } CsvProxy.AppendToCsv(sb.ToString(), TbxPath.Text, "data.csv"); }