安装anaconda
参考网络教程
启动Jupyter notebook
参考网络教程,并且启动HinterLand代码补全功能
安装Tushare包以及其他需要的包
pip3 install Tushare -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
修改pip的国内源
(base) ➜ .pip cat ~/.pip/pip.conf
[global]
index-url = http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
注册Tushare账号
旧的API即将过期,所以需要使用新的pro接口
https://tushare.pro/document/1?doc_id=131
注册以后,从个人信息当中获取token,使用代码注入token
import tushare as ts
import pandas as pd
token='50a123exasassas469b945911d7d8e57e1e098e8e1c6fddb0be722a5ce'
ts.set_token(token)
获取个股数据
pro = ts.pro_api()
stock = pro.daily(ts_code='600019.SH')
stock
例如:
安装数据库
brew install mysql
如果忘记mysql的密码,参考网页重置mysql的密码
http://www.kokojia.com/article/27027.html
将个股信息写入数据库
from sqlalchemy import create_engine
#创建数据库链接
import pymysql
pymysql.install_as_MySQLdb()
mysql_conn = create_engine('mysql://root:111222ooo@127.0.0.1:3306/stock?charset=utf8&use_unicode=1')
stock.to_sql('stock_daily', mysql_conn, if_exists='append')
将个股数据写入到数据库stock中的stock_daily数据表
获取股票列表,并写入数据库
要遍历所有个股,必须现有个股列表
stock_list = pro.query('stock_basic', exchange='', list_status='L', fields='ts_code,symbol,name,area,industry,list_date')
stock_list.to_sql('stock_list', mysql_conn, if_exists='append')
将个股信息插入到stock_list数据表当中
遍历全部个股
# 遍历个股列表
stock_list['ts_code']
for i, v in stock_list['ts_code'].items():
# print("index %s value %s" %(i, v))
# if i == 10 :
# 个股数据
stock = pro.daily(ts_code=v)
stock.to_sql('stock_daily', mysql_conn, if_exists='append')
这一步需要很多时间
基础用户每分钟调用500次,所以几千只个股的话,需要几分钟的时间才能导入到数据库当中
数据库建立以后,后面更新数据的时候,不用每次都全部抓下来,只抓取特定时间的数据即可,只受5000条数据记录的限制
启动定时任务更新数据库
这个部分需要启动一个crontab的任务,和一个可以执行的python程序
- 获取股票列表,append到stock_list
- 查询上次同步股票数据的时间,需要一个单独的数据表
- 抓取从上次同步到最新的股票数据,append到stock_daily