写了个盯盘小工具,最近发现一些技术群里面的小伙伴在摸鱼,摸鱼炒股啥的。不过上班期间看手机频繁是不是影响不好?或电脑上打开交易软件,那影响是不是更不好?所以我就写了个小工具,给大家“摸鱼”用。虽然是摸鱼用,但是平常丢一边,或者你自己改造下代码,写个循环在控制台里面刷新等等,或者输出到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");
}
}