[62量化交易] tushare下载行情所有数据
# 导入tushare
import tushare as ts
import pymongo
import json
import time
import random
import sys
# 初始化数据库
mongo_client = pymongo.MongoClient('mongodb://localhost:27017/')# 初始化pro接口
pro = ts.pro_api('')
# requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))def Download_Tushare_stock(dates):try:for x in dates:time.sleep(random.randint(3, 6))# 拉取数据df = pro.daily(**{"ts_code": "","trade_date": "","start_date": x,"end_date": x,"offset": "","limit": ""}, fields=["ts_code", "trade_date", "open", "high", "low", "close", "pre_close", "change", "pct_chg", "vol","amount"])print(x)print(df)IsOrEmpty = df.emptyif IsOrEmpty:print("无数据.")else:print("写入数据库")DataTranslation = df2bson(df)DataToDB('TushreDB', str(x), DataTranslation) # 将股票列表存入mongodb里面except ValueError as e:print('远程主机强迫关闭了一个现有的连接xxxxxxx')print(x)print(sys.exc_info())def ReadMongoDB(DBname, collectionName):all_dates = []mongo_db = mongo_client[DBname]mongo_collection = mongo_db[collectionName]allDate = mongo_collection.find()for eve in allDate:all_dates.append(eve['cal_date'])return all_datesdef GetTradingTime():# 拉取数据df = pro.trade_cal(**{"exchange": "","cal_date": "","start_date": "","end_date": "","is_open": "","limit": "","offset": ""}, fields=["exchange", "cal_date", "is_open", "pretrade_date"])print(df)return dfdef DataToDB(DBname, collectionName, data):mongo_db = mongo_client[DBname]mongo_collection = mongo_db[collectionName]result = mongo_collection.insert_many(data)def df2bson(df):"""DataFrame类型转化为Bson类型"""data = json.loads(df.T.to_json()).values()return datadef GetStockList():# 拉取数据df = pro.stock_basic(**{"ts_code": "","name": "","exchange": "","market": "","is_hs": "","list_status": "","limit": "","offset": ""}, fields=["ts_code", "symbol", "name", "area", "industry", "market", "list_date"])print(df)print(type(df)) # <class 'pandas.core.frame.DataFrame'>return dfdef main():# 获取股票列表# AllStockList = GetStockList()# 数据进行转换# DataTranslation = df2bson(AllStockList)# DataToDB('TushreDB','StockName',DataTranslation) # 将股票列表存入mongodb里面# 获取股市交易时间# AllTradingDateList = GetTradingTime()# DateTransactionsList = df2bson(AllTradingDateList)# DataToDB('TushreDB', 'StockDate', DateTransactionsList) # 将股票列表存入mongodb里面# 将Tushare数据写入mongodb# 下载数据# 读取MongoDB内容All_A_Stock_Date = ReadMongoDB('TushreDB', 'StockDate')print(All_A_Stock_Date)print(len(All_A_Stock_Date))# 打印列表前十个元素print(All_A_Stock_Date[:10]) # [5:10] [:10]# 下载数据Download_Tushare_stock(All_A_Stock_Date[11290:])# 将数据存入MongoDB数据库# DataToDB(data)if __name__ == '__main__':main()
# 导入tushare
import tushare as ts
import pymongo
import json# 初始化数据库
mongo_client = pymongo.MongoClient('mongodb://localhost:27017/')# 初始化pro接口
pro = ts.pro_api('')def Download_Tushare_stock(dates):for x in dates:# 拉取数据df = pro.daily(**{"ts_code": "","trade_date": "","start_date": x,"end_date": x,"offset": "","limit": ""}, fields=["ts_code", "trade_date", "open", "high", "low", "close", "pre_close", "change", "pct_chg", "vol","amount"])print(x)print(df)IsOrEmpty = df.emptyif IsOrEmpty:print("无数据.")else:print("写入数据库")DataTranslation = df2bson(df)DataToDB('TushreDB', str(x), DataTranslation) # 将股票列表存入mongodb里面def ReadMongoDB(DBname, collectionName):all_dates = []mongo_db = mongo_client[DBname]mongo_collection = mongo_db[collectionName]allDate = mongo_collection.find()for eve in allDate:all_dates.append(eve['cal_date'])return all_datesdef GetTradingTime():# 拉取数据df = pro.trade_cal(**{"exchange": "","cal_date": "","start_date": "","end_date": "","is_open": "","limit": "","offset": ""}, fields=["exchange", "cal_date", "is_open", "pretrade_date"])print(df)return dfdef DataToDB(DBname, collectionName, data):mongo_db = mongo_client[DBname]mongo_collection = mongo_db[collectionName]result = mongo_collection.insert_many(data)def df2bson(df):"""DataFrame类型转化为Bson类型"""data = json.loads(df.T.to_json()).values()return datadef GetStockList():# 拉取数据df = pro.stock_basic(**{"ts_code": "","name": "","exchange": "","market": "","is_hs": "","list_status": "","limit": "","offset": ""}, fields=["ts_code", "symbol", "name", "area", "industry", "market", "list_date"])print(df)print(type(df)) # <class 'pandas.core.frame.DataFrame'>return dfdef main():# 获取股票列表# AllStockList = GetStockList()# 数据进行转换# DataTranslation = df2bson(AllStockList)# DataToDB('TushreDB','StockName',DataTranslation) # 将股票列表存入mongodb里面# 获取股市交易时间# AllTradingDateList = GetTradingTime()# DateTransactionsList = df2bson(AllTradingDateList)# DataToDB('TushreDB', 'StockDate', DateTransactionsList) # 将股票列表存入mongodb里面re = '19911128'# 将Tushare数据写入mongodb# 下载数据# 读取MongoDB内容All_A_Stock_Date = ReadMongoDB('TushreDB', 'StockDate')print(All_A_Stock_Date)print(len(All_A_Stock_Date))Loc = All_A_Stock_Date.index('20211115')print(Loc)print(All_A_Stock_Date[Loc])# print(All_A_Stock_Date[831:])# 打印列表前十个元素# print(All_A_Stock_Date[:10]) # [5:10] [:10]## # 下载数据# Download_Tushare_stock(All_A_Stock_Date)# # 将数据存入MongoDB数据库# # DataToDB(data)if __name__ == '__main__':main()
[62量化交易] tushare下载行情所有数据相关推荐
- Python量化交易实战:获取股票数据并做分析处理
量化交易(也称自动化交易)是一种应用数学模型帮助投资者进行判断,并且根据计算机程序发送的指令进行交易的投资方式,它极大地减少了投资者情绪波动的影响.量化交易的主要优势如下: 快速检测 客观.理性 自动 ...
- A股量化交易和level2行情数据接口有什么特色?
与普通市场相比evel-1)相比,这个市场具有数据更完整.推送速度更及时的优势,帮助投资者及时把握盘中主要资金流,做出更准确的投资决策.简而言之,Level-2最大的作用就是提前看到主力的大单,对于追 ...
- 江某人量化交易——第一章——获取wind数据
初学量化交易,以此博客来记录自己的学历历程. 在数据分析的工作中,最让人头疼的无疑就是数据的获取.清洗等过程,这几乎可以占到工作量的八九成.因此在量化交易的学习中,如果可以很方便的获取到股票数 ...
- python聚宽量化_Python量化交易之四_聚宽数据
介绍 之前测试过一些免费API,比如tushare现在只能下载两年半数据,163有的股票数据无法下载,pandas_reader速度很慢,并且只能下载A股的各股数据,对基金和指数支持不佳.这两天尝试了 ...
- 聚宽 get_price 多个股票数据_Python量化交易之四_聚宽数据
介绍 之前测试过一些免费API,比如tushare现在只能下载两年半数据,163有的股票数据无法下载,pandas_reader速度很慢,并且只能下载A股的各股数据,对基金和指数支持不佳.这两天尝试了 ...
- [量化交易65] 下载美国三大指数道琼斯指数、纳斯达克指数、标普500指数
import tushare as ts import pymongo import json import time import random import sys # 初始化数据库 mongo_ ...
- 通达信行情数据获取--python_股票量化交易-获取数据的两种方法
量化交易第一步就是获取数据,介绍两种免费的方法 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取腾讯财经数据 通过python第三方库pytdx获取 这是个很强大的第三方库,原理 ...
- 大道至简:大数据、小数据、量化交易
大道至简:大数据.小数据.量化交易, 11.23 今天下午在Q群:124134140(zwPython大数据量化交易). 与大家讨论大数据.量化交易, 没想到,晚上就碰到了一只黑天鹅 惯例,QQ讨论直 ...
- 通达信交易接口api_股票量化交易-获取数据的两种方法
量化交易第一步就是获取数据,介绍两种免费的方法 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取腾讯财经数据 通过python第三方库pytdx获取 这是个很强大的第三方库,原理 ...
最新文章
- ICML 2018大奖出炉:伯克利、MIT获最佳论文(附论文、项目链接)
- Java基础学习总结(16)——Java制作证书的工具keytool用法总结
- 一个用户实体应该有它自己的实体验证,即一个实体应该有它的属性,方法,扩展属性及验证机制组成...
- Events are a bad idea?
- Java高阶部分知识点汇总(三)-基本类型的包装类详讲
- ubuntu错误 “cp: omitting directory”解决办法
- guns开源项目数据库切换为oracle
- 设置Eclipse RCP程序的外观和首选项
- Java虚拟机学习 - 体系结构 内存模型(转载)
- [超简单]C++如何使用MySQL数据库
- WinCE5.0下直接写屏操作与函数 CreateDIBSection() 的使用(转)
- bootstrap使用
- shell之任务控制
- java安卓模拟器和电脑通信_Android 模拟器(JAVA)与C++ socket 通讯 分享
- linux系统双显卡切换显卡驱动,自动化系统Linux显卡驱动及BIOS设置笔记(NVIDIA/ATI)...
- 电视hdr测试软件,HDR+4K一个都不能少 本地资源播放测试
- Java程序在结构上的特点_下面关于JavaApplication程序结构特点描述中,错误的是()...
- 《MINECRAFT我的世界 新手完全攻略(第3版)》一1.1 注册与下载
- PDF转Excel(PS:学习使用VBA处理Excel)
- 生物信息学(3)——双序列比对之BLAST算法简介