Пример #1
0
        /// <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);
        }
Пример #2
0
        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);
        }
Пример #4
0
 /// <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);
     }
 }
Пример #5
0
        /// <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);
        }
Пример #6
0
        /// <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);
        }
Пример #7
0
        /// <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);
        }