程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 股基小助手,小助手

股基小助手,小助手

編輯:C#入門知識

股基小助手,小助手


  最近股市過山車,我不會股票,也沒那麼多時間玩,於是我玩起了股基。在玩的過程中我發現這玩意挺好玩的呀,只是我在網頁來回切換,不停按F5的過程中煩了,於是就自己寫了一個股基小助手,在這裡拿出來和大家一起分享。

  我發現呢,今日估值,預估升率,最新淨值,最新升率,昨日升率和最新淨賺是我比較想要知道的。看了和訊網和百度理財,看了他們傳的數據,覺得和訊網的比較全面和准確,於是采用抓取和訊網的數據。先來個效果圖:

  接下來說說我是怎麼做的吧,首先,確定請求的地址是:http://quote.funds.hexun.com/list/outxml/quote/IOpenFundData.aspx?fundcode=XXX,查看得到的數據:

  可以看到得到的有四個數據,包括最新淨值,最新升率,昨日淨值,更新時間。但當時間到了股市開市時間時,得到的數據是不一樣的,“最新淨值”變成“今日估值”,“最新升率”變成“預估升率”。於是我把一些信息放到配置文件:

  其中自動刷新時間用於每隔一段時間自動刷新數據,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,最新淨賺是用最新淨值乘以持有份額再減去總額,持有份額就是持有的股基數量,總額就是購買的金錢總額,這樣得到的最新淨賺其實是沒減去手續費,管理費和贖回費的,需要減的大家自己下載一下代碼,自己改去吧。

  需要股基小軟件的,點擊一下右邊文字:股基小軟件

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved