使用tushare pro获取上证仍在交易股票列表,并获取列表中所有股票历时k线数据,一次性保存至另一台电脑(192.168.1.5)mysql中,如果mysql中没有该数据则创建数据库,以后每天下午18点更新当天或缺失的k线数据。

时间: 2024-04-29 17:20:56 浏览: 13
以下是Python代码实现: ```python import tushare as ts import pymysql from datetime import datetime, timedelta # MySQL数据库连接信息 MYSQL_HOST = "192.168.1.5" MYSQL_PORT = 3306 MYSQL_USER = "root" MYSQL_PASSWORD = "password" MYSQL_DATABASE = "stock_data" # 获取交易日历 pro = ts.pro_api() trade_cal = pro.trade_cal(exchange="SSE", start_date="20000101", end_date=datetime.now().strftime("%Y%m%d")) trade_cal = trade_cal[trade_cal["is_open"] == 1]["cal_date"].tolist() # 获取上证仍在交易股票列表 stock_list = pro.stock_basic(exchange="SSE", list_status="L", fields="ts_code")["ts_code"].tolist() # 连接MySQL数据库 conn = pymysql.connect(host=MYSQL_HOST, port=MYSQL_PORT, user=MYSQL_USER, password=MYSQL_PASSWORD) cursor = conn.cursor() # 创建数据库 create_database_sql = f"CREATE DATABASE IF NOT EXISTS {MYSQL_DATABASE} DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;" cursor.execute(create_database_sql) conn.commit() # 切换至指定数据库 use_database_sql = f"USE {MYSQL_DATABASE};" cursor.execute(use_database_sql) # 获取所有股票历时k线数据并保存至MySQL数据库 for ts_code in stock_list: # 查询是否已有该股票数据 query_sql = f"SELECT ts_code FROM daily WHERE ts_code='{ts_code}';" cursor.execute(query_sql) result = cursor.fetchone() # 如果没有该股票数据则新建数据表 if not result: create_table_sql = f"CREATE TABLE IF NOT EXISTS daily (id INT(11) NOT NULL AUTO_INCREMENT, ts_code VARCHAR(10) NOT NULL, trade_date DATE NOT NULL, open FLOAT(10,2) NOT NULL, high FLOAT(10,2) NOT NULL, low FLOAT(10,2) NOT NULL, close FLOAT(10,2) NOT NULL, pre_close FLOAT(10,2) NOT NULL, change FLOAT(10,2) NOT NULL, pct_chg FLOAT(10,2) NOT NULL, vol FLOAT(20,2) NOT NULL, amount FLOAT(20,2) NOT NULL, PRIMARY KEY (id));" cursor.execute(create_table_sql) conn.commit() # 获取该股票历史k线数据 start_date = "20000101" query_sql = f"SELECT MAX(trade_date) FROM daily WHERE ts_code='{ts_code}';" cursor.execute(query_sql) result = cursor.fetchone() if result[0]: start_date = (datetime.strptime(result[0], "%Y-%m-%d") + timedelta(days=1)).strftime("%Y%m%d") daily_data = pro.daily(ts_code=ts_code, start_date=start_date) # 插入数据至MySQL数据库 for index, row in daily_data.iterrows(): trade_date = datetime.strptime(row["trade_date"], "%Y-%m-%d").strftime("%Y-%m-%d") open_price = row["open"] high_price = row["high"] low_price = row["low"] close_price = row["close"] pre_close_price = row["pre_close"] change_price = row["change"] pct_chg = row["pct_chg"] vol = row["vol"] amount = row["amount"] insert_sql = f"INSERT INTO daily (ts_code, trade_date, open, high, low, close, pre_close, change, pct_chg, vol, amount) VALUES ('{ts_code}', '{trade_date}', {open_price}, {high_price}, {low_price}, {close_price}, {pre_close_price}, {change_price}, {pct_chg}, {vol}, {amount});" cursor.execute(insert_sql) conn.commit() # 关闭MySQL连接 cursor.close() conn.close() ``` 以上代码会将股票历史k线数据保存至名为`daily`的数据表中,数据表结构如下: | 列名 | 数据类型 | 描述 | | --- | --- | --- | | id | INT(11) | 自增编号 | | ts_code | VARCHAR(10) | 股票代码 | | trade_date | DATE | 交易日期 | | open | FLOAT(10,2) | 开盘价 | | high | FLOAT(10,2) | 最高价 | | low | FLOAT(10,2) | 最低价 | | close | FLOAT(10,2) | 收盘价 | | pre_close | FLOAT(10,2) | 昨收价 | | change | FLOAT(10,2) | 涨跌额 | | pct_chg | FLOAT(10,2) | 涨跌幅 | | vol | FLOAT(20,2) | 成交量(手) | | amount | FLOAT(20,2) | 成交额(千元) | 每天下午18点更新当天或缺失的k线数据可以通过设置定时任务实现,例如在Linux系统中使用`crontab`命令: ``` 0 18 * * * /usr/bin/python3 /path/to/python/script.py ``` 以上命令会在每天下午18点自动执行Python脚本,更新当天或缺失的k线数据。

相关推荐

最新推荐

recommend-type

奥纬X教科院X好未来-《2020中国K-12教育培训To B市场发展报告》.pdf

本次调研历时三个月, 共采集到有效问卷 365 份。通过对调研数据的综合分析,项目调研 团队系统梳理出当前教育培训行业的发展现状和 需求模型,为本报告中关于政策影响、需求定 位、供给现状、发展趋势、技术应用等的...
recommend-type

波士顿房价数据集Boston House Price

波士顿房价数据集Boston House Price 全网最便宜
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

解答下列问题:S—>S;T|T;T—>a 构造任意项目集规范族,构造LR(0)分析表,并分析a;a

对于这个文法,我们可以构造以下项目集规范族: I0: S -> .S S -> .T T -> .a I1: S -> S. [$ T -> T. [$ I2: S -> T. I3: S -> S.;S S -> S.;T T -> T.;a 其中,点(.)表示已经被扫描过的符号,;$表示输入串的结束符号。 根据项目集规范族,我们可以构造出LR(0)分析表: 状态 | a | $ ---- | - | - I0 | s3| I1 | |acc I2 | | 其中s3表示移进到状态3,acc表示接受。在分析字符串a;a时,我们可以按照以下步骤进行
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

实现实时监控告警系统:Kafka与Grafana整合

![实现实时监控告警系统:Kafka与Grafana整合](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9tbWJpei5xcGljLmNuL21tYml6X2pwZy9BVldpY3ladXVDbEZpY1pLWmw2bUVaWXFUcEdLT1VDdkxRSmQxZXB5R1lxaWNlUjA2c0hFek5Qc3FyRktudFF1VDMxQVl3QTRXV2lhSWFRMEFRc0I1cW1ZOGcvNjQw?x-oss-process=image/format,png) # 1.1 Kafka集群架构 Kafka集群由多个称为代理的服务器组成,这
recommend-type

mac上和window原生一样的历史剪切板工具有什么

好的,我明白了您的要求。关于您的问题,为使Mac与Windows的历史剪切板功能类似,可以使用第三方工具"CopyClip"、"Alfred"、"Clipboard Manager"等。这些工具可以记录您复制到剪切板的所有内容,而不仅仅是最后一次复制。同时,它们还可以进行搜索和过滤,以便您更快地找到需要的内容。希望这能回答您的问题。