private void MenuItem_LoadDB_Click(object sender, RoutedEventArgs e) { DataTable table = SQLiteHelper.GetDataTable(@"SELECT name FROM sqlite_master", new SQLiteParameter[0]); for (int i = 0; i < table.Rows.Count; i++) { string TableName = table.Rows[i][0].ToString(); if (TableName.StartsWith("ix")) { continue; } TableNameList.Add(new TableNameItem(TableName)); } DataTable tables_info = SQLiteHelper.GetDataTable(@"SELECT * FROM tables_info", new SQLiteParameter[0]); for (int i = 0; i < tables_info.Columns.Count; i++) { string cName = tables_info.Columns[i].ToString(); string dateStr = tables_info.Rows[0][i].ToString(); if (cName == "index") { continue; } DateTime d = DateTime.ParseExact(dateStr, "yyyyMMdd", System.Globalization.CultureInfo.CurrentCulture); TableNameItem item = new TableNameItem(cName); item.date = d; TableInfoList.Add(item); } foreach (TableNameItem info in TableInfoList) { string key = info.name.Substring(0, info.name.Length - 5); TableNameItem NameItem = TableNameList.Find(it => it.name == key || it.name == info.name); if (NameItem != null) { NameItem.date = info.date; } } ListView_TableTree.ItemsSource = TableNameList; GVL.Init(); List <ShowStockItem> showList = new List <ShowStockItem>(); foreach (StockBasicMgr.StockBasicItem item in GVL.StockBasicMgr.GetStockBasic()) { showList.Add(new ShowStockItem(item.ts_code, item.name)); } ListView_StockList.ItemsSource = showList; }
public double amount; // 成交额 (千元) public DailyItem(string ts_code, string trade_date, string open, string high, string low, string close, string pre_close, string change, string pct_change, string vol, string amount) { this.ts_code = ts_code; this.trade_date = GVL.StrToDt(trade_date); this.open = Convert.ToDouble(open); this.high = Convert.ToDouble(high); this.low = Convert.ToDouble(low); this.close = Convert.ToDouble(close); this.pre_close = Convert.ToDouble(pre_close); this.change = Convert.ToDouble(change); this.pct_change = Convert.ToDouble(pct_change); this.vol = Convert.ToDouble(vol); this.amount = Convert.ToDouble(amount); }
private void Button_Do_DrawLine_Click(object sender, RoutedEventArgs e) { if (m_CurrentSelectItem == null) { return; } DateTime sTime = Convert.ToDateTime(DatePicker_Select_SDate.Text); DateTime eTime = Convert.ToDateTime(DatePicker_Select_EDate.Text); List <double> l1_values = new List <double>(); List <double> l2_values = new List <double>(); SeriesCollection.Clear(); if (ComBox_Line1.Text == Line_Names_1[0]) { List <DailyMgr.DailyItem> daily_list = GVL.DailyMgr.GetDaily(m_CurrentSelectItem.ts_code, sTime, eTime); if (daily_list != null) { foreach (DailyMgr.DailyItem item in daily_list) { l1_values.Add(item.close); } } } if (ComBox_Line2.Text == Line_Names_2[0]) { List <DailyMgr.DailyItem> daily_list = GVL.DailyMgr.GetDaily(m_CurrentSelectItem.ts_code, sTime, eTime); if (daily_list != null) { foreach (DailyMgr.DailyItem item in daily_list) { l2_values.Add(item.vol); } } } else if (ComBox_Line2.Text == Line_Names_2[1]) { List <DailyBasicMgr.DailyBasicItem> dailybasic_list = GVL.DailyBasicMgr.GetDailyBasic(m_CurrentSelectItem.ts_code, sTime, eTime); if (dailybasic_list != null) { foreach (DailyBasicMgr.DailyBasicItem item in dailybasic_list) { l2_values.Add(item.turnover_rate_f); } } } else if (ComBox_Line2.Text == Line_Names_2[2]) { List <DailyBasicMgr.DailyBasicItem> dailybasic_list = GVL.DailyBasicMgr.GetDailyBasic(m_CurrentSelectItem.ts_code, sTime, eTime); if (dailybasic_list != null) { DailyBasicMgr.DailyBasicItem last_item = null; if (dailybasic_list.Count < 2) { return; } for (int i = 0; i < dailybasic_list.Count; i++) { DailyBasicMgr.DailyBasicItem item = dailybasic_list[i]; if (i == 0) { last_item = item; l2_values.Add(0); } else { l2_values.Add((item.turnover_rate_f - last_item.turnover_rate_f) / last_item.turnover_rate_f); last_item = item; } } } } else if (ComBox_Line2.Text == Line_Names_2[3]) { List <MoneyFlowMgr.MoneyFlowItem> MoneyFlowList = GVL.MoneyFlowMgr.GetMoneyFlow(m_CurrentSelectItem.ts_code, sTime, eTime); if (MoneyFlowList != null) { foreach (MoneyFlowMgr.MoneyFlowItem item in MoneyFlowList) { l2_values.Add(item.buy_elg_vol + item.buy_lg_vol); } } } else if (ComBox_Line2.Text == Line_Names_2[4]) { List <MoneyFlowMgr.MoneyFlowItem> MoneyFlowList = GVL.MoneyFlowMgr.GetMoneyFlow(m_CurrentSelectItem.ts_code, sTime, eTime); if (MoneyFlowList != null) { foreach (MoneyFlowMgr.MoneyFlowItem item in MoneyFlowList) { l2_values.Add(item.buy_elg_vol + item.buy_lg_vol - item.sell_elg_vol - item.sell_lg_vol); } } } { //l1_values.Clear(); //l2_values.Clear(); //for(int i = 1; i < 13; i++) //{ // l1_values.Add(i); // l2_values.Add(i); //} LineSeries l1 = new LineSeries(); l1.Values = new ChartValues <double> (l1_values); LineSeries l2 = new LineSeries(); l2.Values = new ChartValues <double> (l2_values); l2.ScalesYAt = 1; SeriesCollection.Add(l1); SeriesCollection.Add(l2); MessageBox.Show("相关度:" + GVL.P_relation(l1_values, l2_values)); } }
private void Button_Do_Click(object sender, RoutedEventArgs e) { List <string> id_list = new List <string>(); DataTable tables_info_concept_info = SQLiteHelper.GetDataTable(@"SELECT code FROM concept_info", new SQLiteParameter[0]); for (int i = 0; i < tables_info_concept_info.Rows.Count; i++) { id_list.Add(tables_info_concept_info.Rows[i][0].ToString()); } DateTime sDate = Convert.ToDateTime(DatePicker_sDate.Text); string sDateStr = sDate.ToString("yyyyMMdd"); List <ConceptFormItem> m_items = new List <ConceptFormItem>(); List <DailyMgr.DailyItem> daily_list = GVL.DailyMgr.GetDaily(sDate, sDate); string base_concept_name = null; if (ComboBox_ConceptList.SelectedIndex > -1) { base_concept_name = ComboBox_ConceptList.SelectedItem as string; } foreach (string id in id_list) { List <ConceptInfoMgr.ConceptInfoItem> subList = GVL.ConceptInfoMgr.GetConceptInfo().FindAll(it => it.code == id); double tNum = subList.Count; double ac_tNum = tNum; string cName = ""; double HpNum = 0; double MeanPNum = 0; List <double> pct_change_list = new List <double>(); for (int i = 0; i < tNum; i++) { cName = subList[i].concept_name; string ts_code = subList[i].ts_code; DailyMgr.DailyItem daily_item = daily_list.Find(it => it.ts_code == ts_code); if (daily_item != null) { double pct_change = daily_item.pct_change; if (pct_change > 9.9) { HpNum += 1; } MeanPNum += pct_change; pct_change_list.Add(pct_change); } else { ac_tNum -= 1; } } MeanPNum = MeanPNum / ac_tNum; double MidPValue = GVL.FindMidValue(pct_change_list); double relationship = 0; if (!string.IsNullOrEmpty(base_concept_name)) { relationship = GVL.ConceptInfoMgr.GetRelationShipEx(id, base_concept_name); } m_items.Add(new ConceptFormItem(cName, tNum, HpNum, MeanPNum, MidPValue, relationship)); } m_items.Sort((a, b) => { if (a.MeanChange > b.MeanChange) { return(-1); } else if (a.MeanChange == b.MeanChange) { return(0); } else { return(1); } }); ListView_Main.ItemsSource = m_items; }
private void Button_Do_Click(object sender, RoutedEventArgs e) { DateTime sDate = Convert.ToDateTime(DatePicker_SDate.Text); DateTime eDate = Convert.ToDateTime(DatePicker_EDate.Text); TimeSpan dTime = eDate - sDate; int DaysNum = dTime.Days + 1; if (DaysNum < 1) { MessageBox.Show("日期设置有问题"); return; } ProgressBar_Progress.Value = 0; if (!String.IsNullOrEmpty(m_CurrentTsCode)) { SeriesCollection.Clear(); List <DailyMgr.DailyItem> dailyList = GVL.DailyMgr.GetDaily(m_CurrentTsCode, sDate, eDate); if (dailyList != null) { List <double> ClosePriceList = new List <double>(); foreach (DailyMgr.DailyItem item in dailyList) { ClosePriceList.Add(item.close); } ChartValues <double> priceValue = new ChartValues <double>(GVL.MakeUniqList(ClosePriceList)); LineSeries closePriceLineSeries = new LineSeries(); closePriceLineSeries.Values = priceValue; SeriesCollection.Add(closePriceLineSeries); ProgressBar_Progress.Value = 50; List <MoneyFlowMgr.MoneyFlowItem> moneyflowList = GVL.MoneyFlowMgr.GetMoneyFlow(m_CurrentTsCode, sDate, eDate); if (moneyflowList != null) { List <double> valueList = new List <double>(); foreach (MoneyFlowMgr.MoneyFlowItem item in moneyflowList) { switch (ComboBox_MoneyType.SelectedIndex) { case 1: { valueList.Add(item.buy_elg_amount + item.buy_lg_amount); break; } case 2: { valueList.Add(item.buy_elg_amount + item.buy_lg_amount - item.sell_elg_amount - item.sell_lg_amount); break; } case 0: default: valueList.Add(item.buy_elg_amount); break; } } ChartValues <double> moneyValue = new ChartValues <double>(GVL.MakeUniqList(valueList)); LineSeries moneyLineSeries = new LineSeries(); moneyLineSeries.Values = moneyValue; SeriesCollection.Add(moneyLineSeries); ProgressBar_Progress.Value = 100; } } else { MessageBox.Show("没有当日股价数据数据"); } } else { MessageBox.Show("未选择个股"); } }