耗时7天!用python开发出一款可视化下载股票数据的工具,源码文末免费下载!

一、工具介绍

我对股票不感兴趣,我感兴趣的是技术。

页面展示:
在这里插入图片描述

股票数据来源自开源社区tushare,建议自己注册一个token使用,内置的token是我的,超过使用量会被限制,token注册地址:https://tushare.pro/register?reg=591167

使用方法:运行 app.py 文件,在浏览器中访问:http://127.0.0.1:8888/ 即可使用。【文末获取下载地址】

二、主要功能

2.1、交易日期

交易日期分为开始日期和结束日期,传入的日期格式为:%Y%m%d,例如:20230808

开始日期如果选择的有则使用传入数据,否则更改为默认值:365天前的日期,核心代码:

# 判断传入的时间,如果为空替换为默认值
if start_time:
    start_time = start_time.split("T")[0].replace("-", "")
else:
    start_time = datetime.strftime(datetime.now() - timedelta(365), "%Y%m%d")

结束日期如果选择的有则使用传入数据,否则更改为默认值:昨天的日期,核心代码:

if end_time:
    end_time = end_time.split("T")[0].replace("-", "")
else:
    end_time = datetime.strftime(datetime.now() - timedelta(1), "%Y%m%d")

2.2、股票代码

这里有一个问题还未解决,输入股票代码必须加上后缀,比如: 000001.SZ、600000.SH。目前还未想好如何修改。

股票代码为必填值,不填无法绘制k线图和展示、下载数据。

获取股票代码:

import tushare as ts
ts.set_token(ts_token)
pro = ts.pro_api()
df = pro.daily(ts_code=code, start_date=start_date, end_date=end_date).sort_values(by="trade_date")

2.3、保存数据

交易日期和股票代码填写完成后,就可以点击保存数据。数据默认保存在代码【app.exe】同一级下的名为【股票数据】的文件夹里。

保存数据关键代码:

file_name = f"{code}_{start_date}_{end_date}_数据.csv"
file_path = path.join(path.abspath(path.dirname(getcwd())), "股票数据")
if not path.exists(file_path):
  mkdir(file_path)
csv_file_path = path.join(file_path, file_name)
df2.to_csv(csv_file_path, index=False)

2.4、配置

修改TOKEN:使用自己在tushare上注册的TOKEN,注册地址:https://tushare.pro/register?reg=591167 ,将token复制并粘贴进去即可。

重置TOKEN:token填写有误,或者无法查询数据,可以使用重置token,使用工具自带的token查询数据。【建议修改为自己注册的token】

修改TOKEN关键代码:

token_file = path.join(current_dir, "token.txt")
with open(token_file, "r", encoding="utf-8") as f:
    ts_token = f.read()

2.5、可视化

目前只支持查询股票代码的K线图,主要数据有:收盘点位、开盘点位、最高点位、最低点位、MA5、MA10、MA20、MA30。以及在交易时间内的最高收盘点位和最低收盘点位。后续考虑添加其他数据图表。

移动平均值的计算方法:

{
"MA5": df2["收盘价"].rolling(4).mean().map(lambda x: round(x, 3)).fillna("-").tolist(),
"MA10": df2["收盘价"].rolling(9).mean().map(lambda x: round(x, 3)).fillna("-").tolist(),
"MA20": df2["收盘价"].rolling(19).mean().map(lambda x: round(x, 3)).fillna("-").tolist(),
"MA30": df2["收盘价"].rolling(29).mean().map(lambda x: round(x, 3)).fillna("-").tolist(),
}

2.6、数据预览

主要展示数据为:股票代码、交易日期、开盘价、最高价、最低价、收盘价、昨收价(前复权)、涨跌额、涨跌幅、成交量 (手)、成交额 (千元)

三、主要技术

主要使用的技术有:

flask搭建后端接口,主要接口有:

  • stokc:根据提交的股票代码和交易时间获取股票数据
  • news:获取财经信息【该接口暂未提供】
  • download:根据提交的股票代码和交易时间将数据下载到同级目录下的股票数据文件夹下
  • token:负责修改token和重置token

element搭建前端页面,vue用于前后端数据交互。

四、打包方式

使用pyinstaller将代码打包为可执行的软件,打包命令如下:

pyinstaller -F --add-data="static;static" --add-data="templates;templates" --add-data="token.txt;." app.py

五、下载地址

源码地址:https://pan.baidu.com/s/1hMJWW2bwsEDXsYJ4WZadUQ?pwd=ihfa

  • 19
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

帅帅的Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值