摸鱼助手——用C#开发的股票盯盘小工具

2024-08-13 19:17:27 浏览数 (2)

写了个盯盘小工具,最近发现一些技术群里面的小伙伴在摸鱼,摸鱼炒股啥的。不过上班期间看手机频繁是不是影响不好?或电脑上打开交易软件,那影响是不是更不好?所以我就写了个小工具,给大家“摸鱼”用。虽然是摸鱼用,但是平常丢一边,或者你自己改造下代码,写个循环在控制台里面刷新等等,或者输出到VS的输出栏里面等等,都行,也不会影响你工作,还可能因为你减少打开手机盯盘的操作,反而工作效率更高了,那我就算是做了个好事吧。winform界面如下所示,功能简单,可以添加、删除指定的股票代码。目前我只写了大A沪股和深股,其他没写,感兴趣可以自己拓展。

核心代码,实际上就是一个Get请求,然后解析有关内容。Get请求的是你的股票数据。请求地址是新浪股票数据。目前默认5秒刷新一次。

请求的地址是新浪股票地址:

代码语言:javascript复制
http://hq.sinajs.cn/list=股票代码

核心解析代码,供参考。

代码语言:javascript复制
try
 {
     // 发送 GET 请求
     HttpResponseMessage response = client.GetAsync(url).GetAwaiter().GetResult();
     response.EnsureSuccessStatusCode();

     // 读取响应内容
     byte[] contentBytes = response.Content.ReadAsByteArrayAsync().GetAwaiter().GetResult();
     string data = Encoding.GetEncoding("gb2312").GetString(contentBytes);

     // 将数据分行存入数组
     string[] stockList = data.Split('n');
     if (!stockList.Any())
     {
         return;
     }

     lbResult.Clear();

     // 打印每行数据
     foreach (var stock in stockList)
     {
         var values = stock.Split('=');
         if (values.Length != 2)
         {
             continue;
         }
         var fund = values[1].Trim('"');
         string[] items = fund.Split(',');

         float curr = Convert.ToSingle(items[3]); // 当前价格
         float yend = Convert.ToSingle(items[2]); // 昨日收盘价格
         float percent = (curr / yend - 1) * 100; // 百分比变化
         float diff = curr - yend; // 价格差异

         string disp = $"{items[0]} | {items[3]} | {percent:0.00}%  | {diff:0.000} "; 

         if (percent == 0.0)
         {
             lbResult.SelectionColor = Color.White;
         }
         else if (percent > 0.0)
         {
             lbResult.SelectionColor = Color.Red;
         }
         else
         {
             lbResult.SelectionColor = Color.Green;
         }

         lbResult.AppendText(disp   "rn");
     }
 }

0 人点赞