你的位置:首页 > ASP.net教程

[ASP.net教程]股基小助手


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

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

  接下来说说我是怎么做的吧,首先,确定请求的地址是:http://quote.funds.hexun.com/list/out

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

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

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

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