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

文章目录

    • 一、工具介绍
    • 二、主要功能
      • 2.1、交易日期
      • 2.2、股票代码
      • 2.3、保存数据
      • 2.4、配置
      • 2.5、可视化
      • 2.6、数据预览
    • 三、主要技术
    • 四、打包方式
    • 五、下载地址

一、工具介绍

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

页面展示:
耗时7天!用python开发出一款可视化下载股票数据的工具,源码文末免费下载!_第1张图片

股票数据来源自开源社区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

你可能感兴趣的:(数据可视化,数据分析,pyecharts学习,element,vue2,flask,数据可视化,echarts,k线图,python3)