股基小助手_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 股基小助手

股基小助手

 2015/5/9 18:34:05  hambert  程序员俱乐部  我要评论(0)
  • 摘要:最近股市过山车,我不会股票,也没那么多时间玩,于是我玩起了股基。在玩的过程中我发现这玩意挺好玩的呀,只是我在网页来回切换,不停按F5的过程中烦了,于是就自己写了一个股基小助手,在这里拿出来和大家一起分享。我发现呢,今日估值,预估升率,最新净值,最新升率,昨日升率和最新净赚是我比较想要知道的。看了和讯网和百度理财,看了他们传的数据,觉得和讯网的比较全面和准确,于是采用抓取和讯网的数据。先来个效果图:接下来说说我是怎么做的吧,首先,确定请求的地址是:http://quote.funds.hexun
  • 标签:

  最近股市过山车,我不会股票,也没那么多时间玩,于是我玩起了股基。在玩的过程中我发现这玩意挺好玩的呀,只是我在网页来回切换,不停按F5的过程中烦了,于是就自己写了一个股基小助手,在这里拿出来和大家一起分享

  我发现呢,今日估值,预估升率,最新净值,最新升率,昨日升率和最新净赚是我比较想要知道的。看了和讯网和百度理财,看了他们传的数据,觉得和讯网的比较全面和准确,于是采用抓取和讯网的数据。先来个效果图:

  接下来说说我是怎么做的吧,首先,确定请求的地址是:http://quote.funds.hexun.com/list/outxml/quote/IOpenFundData.aspx?fundcode=XXX,查看得到的数据:

  可以看到得到的有四个数据,包括最新净值,最新升率,昨日净值,更新时间。但当时间到了股市开市时间时,得到的数据是不一样的,“最新净值”变成“今日估值”,“最新升率”变成“预估升率”。于是我把一些信息放到配置文件:

  其中自动刷新时间用于每隔一段时间自动刷新数据,Funds配置存放想要监控的股基,组成形式是“基金编号,基金名称,购买金额,持有份额,起始日期。没买的赋值前两个字段,有买的赋值所有字段”,没买的赋值前两个字段,有买的赋值所有字段。然后建一个股基类:

class="brush:csharp;gutter:true;">    public class Fund
    {
        public string 基金编号 { get; set; }

        public string 基金名 { get; set; }

        public double 今日估值 { get; set; }

        public double 预估升率 { get; set; }

        public double 最新净值 { get; set; }

        public double 最新升率 { get; set; }

        public double 昨日净值 { get; set; }

        public double 总额 { get; set; }

        public double 最新净赚 { get; set; }

        public DateTime 起始日期 { get; set; }

        public double 持有份额 { get; set; }

        public string 更新时间 { get; set; }
    }

    然后在界面加个DataGridView和一个“刷新”按钮(用于手动刷新),代码的重点是刷新单个基金类的方法:

        private void UpdateFund(Fund fund)
        {
            string data = _client.DownloadString(Resources.UrlHexunFund + fund.基金编号);
            string[] datas = data.Split(',');

            if (datas[0].Contains("最新净值"))
            {
                fund.最新净值 = Convert.ToDouble(datas[1]);
                fund.最新升率 = Convert.ToDouble(datas[2]);
                fund.昨日净值 = Convert.ToDouble(datas[4].Split(']')[0]);
            }
            else
            {
                fund.今日估值 = Convert.ToDouble(datas[1]);
                fund.预估升率 = Convert.ToDouble(datas[2]);
                fund.最新净值 = Convert.ToDouble(datas[4].Split(']')[0]);
            }

            var money = fund.最新净值 * fund.持有份额 - fund.总额;
            fund.最新净赚 = money;
            fund.更新时间 = datas[5].Split('\'')[1];
        }

  需要说明一下的是_client是一个WebClient,最新净赚是用最新净值乘以持有份额再减去总额,持有份额就是持有的股基数量,总额就是购买的金钱总额,这样得到的最新净赚其实是没减去手续费,管理费和赎回费的,需要减的大家自己下载一下代码,自己改去吧。

  需要股基小软件的,点击一下右边文字:股基小软件

 

  • 相关文章
发表评论
用户名: 匿名