/// <summary> /// 导入股票基本信息 /// </summary> /// <param name="csvFilename">从深交所下载的xls文件转为csv</param> /// <returns></returns> public List <SecurityProperties> LoadStockInfo(String csvFilename, String bankuan) { List <SecurityProperties> result = new List <SecurityProperties>(); String[] lines = File.ReadAllLines(csvFilename); String[] propNames = { "地区", "代码", "名称", "上市日期", "总股本", "流通股本", "全称", "市场", "类别", "板块", "交易所" }; for (int i = 1; i < lines.Length; i++) { String[] ss = lines[i].Spilt2(','); if (ss == null || ss.Length < 7) { continue; } StringUtils.Trim(ss); int t = ss[4].IndexOf("省"); if (t < 0) { t = ss[4].IndexOf("市"); } String province = t < 0 ? "" : ss[4].Substring(0, t); String str = province + "," + ss[5] + "," + ss[6] + "," + ss[7] + "," + ss[8] + "," + ss[9] + "," + ss[2] + ",A," + "股票" + "," + bankuan + "," + "SZ"; SecurityProperties sp = SecurityProperties.Parse(str, propNames); if (sp != null) { result.Add(sp); } } return(result); }
protected override void OnNavigatedTo(NavigationEventArgs e) { var np = e.Parameter as Views.Properties.PropertyNavParam; if (np.navParameter is ListedItem listedItem) { SecurityProperties = new SecurityProperties(listedItem); } else if (np.navParameter is DriveItem driveitem) { SecurityProperties = new SecurityProperties(driveitem); } base.OnNavigatedTo(e); }
protected override void OnNavigatedTo(NavigationEventArgs e) { var args = e.Parameter as PropertiesPageNavigationArguments; navParameterItem = args.Item; if (args.Item is ListedItem listedItem) { ViewModel = new SecurityProperties(listedItem); } else if (args.Item is DriveItem driveitem) { ViewModel = new SecurityProperties(driveitem); } base.OnNavigatedTo(e); }
/// <summary> /// 索引时序数据 /// </summary> /// <param name="code"></param> /// <param name="tu"></param> /// <returns></returns> public TimeSerialsDataSet this[String code] { get { if (timeserials.ContainsKey(code)) { return(timeserials[code]); } if (!securities.ContainsKey(code)) { return(null); } SecurityProperties sp = securities[code]; TimeSerialsDataSet ds = TimeSerialsDataSet.Create(sp, dataPath); timeserials[code] = ds; return(ds); } }
/// <summary> /// 读取证劵基本信息文件 /// </summary> public void LoadSecuritiesInfo() { securities.Clear(); String securitiesFileName = dataPath + SecuritiesInfoFileName; if (!File.Exists(securitiesFileName)) { return; } String[] lines = File.ReadAllLines(securitiesFileName); if (lines == null || lines.Length <= 0) { return; } List <SecurityProperties> spList = new List <SecurityProperties>(); String[] propNames = SecurityProperties.PDC.ConvertAll(x => x.Name).ToArray(); lines.ToList().ForEach(x => spList.Add(SecurityProperties.Parse(x, propNames))); securities.Merge(spList); }
/// <summary> /// 初始化,缺省初始读取日线数据 /// </summary> /// <param name="datapath"></param> public static TimeSerialsDataSet Create(SecurityProperties code, String datapath) { TimeSerialsDataSet ds = new TimeSerialsDataSet(); ds.datapath = datapath; ds.code = code.Code; ds.baseName = code.Exchange + ds.code; String dayFilename = ds.baseName + ".csv"; ds.CreateOrLoad <KLine>("kline", TimeUnit.day); /*KLine kline = new KLine(code.Code, TimeUnit.day); * kline.Load(datapath+"kline\\"+dayFilename, false, ","); * //kline.Load(dayFilename, false, ",", new String[] { "时间", "开盘", "最高", "最低", "收盘", "成交量", "成交额" }); * ConcurrentDictionary<String, Object> datas = new ConcurrentDictionary<string, object>(); * datas["kline"] = kline; * ds.timeSerials.Add(TimeUnit.day, datas);*/ return(ds); }
/// <summary> /// 导入A股基本信息 /// </summary> /// <param name="csvFilename">从上交所下载的xls文件转为csv</param> /// <returns></returns> public List <SecurityProperties> LoadStockAInfo(String csvFilename) { List <SecurityProperties> result = new List <SecurityProperties>(); String[] lines = File.ReadAllLines(csvFilename); String[] propNames = { "代码", "名称", "上市日期", "总股本", "流通股本", "全称", "市场", "类别", "板块", "交易所" }; for (int i = 1; i < lines.Length; i++) { String[] ss = lines[i].Split(','); if (ss == null || ss.Length < 7) { continue; } StringUtils.Trim(ss); String str = ss[2] + "," + ss[3] + "," + ss[4] + "," + ss[5] + "," + ss[6] + "," + ss[3] + "," + "A" + "," + "股票" + "," + "主板" + "," + "SH"; SecurityProperties sp = SecurityProperties.Parse(str, propNames); if (sp != null) { result.Add(sp); } } return(result); }