# 导入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下载行情所有数据相关推荐

  1. Python量化交易实战:获取股票数据并做分析处理

    量化交易(也称自动化交易)是一种应用数学模型帮助投资者进行判断,并且根据计算机程序发送的指令进行交易的投资方式,它极大地减少了投资者情绪波动的影响.量化交易的主要优势如下: 快速检测 客观.理性 自动 ...

  2. A股量化交易和level2行情数据接口有什么特色?

    与普通市场相比evel-1)相比,这个市场具有数据更完整.推送速度更及时的优势,帮助投资者及时把握盘中主要资金流,做出更准确的投资决策.简而言之,Level-2最大的作用就是提前看到主力的大单,对于追 ...

  3. 江某人量化交易——第一章——获取wind数据

      初学量化交易,以此博客来记录自己的学历历程.   在数据分析的工作中,最让人头疼的无疑就是数据的获取.清洗等过程,这几乎可以占到工作量的八九成.因此在量化交易的学习中,如果可以很方便的获取到股票数 ...

  4. python聚宽量化_Python量化交易之四_聚宽数据

    介绍 之前测试过一些免费API,比如tushare现在只能下载两年半数据,163有的股票数据无法下载,pandas_reader速度很慢,并且只能下载A股的各股数据,对基金和指数支持不佳.这两天尝试了 ...

  5. 聚宽 get_price 多个股票数据_Python量化交易之四_聚宽数据

    介绍 之前测试过一些免费API,比如tushare现在只能下载两年半数据,163有的股票数据无法下载,pandas_reader速度很慢,并且只能下载A股的各股数据,对基金和指数支持不佳.这两天尝试了 ...

  6. [量化交易65] 下载美国三大指数道琼斯指数、纳斯达克指数、标普500指数

    import tushare as ts import pymongo import json import time import random import sys # 初始化数据库 mongo_ ...

  7. 通达信行情数据获取--python_股票量化交易-获取数据的两种方法

    量化交易第一步就是获取数据,介绍两种免费的方法 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取腾讯财经数据 通过python第三方库pytdx获取 这是个很强大的第三方库,原理 ...

  8. 大道至简:大数据、小数据、量化交易

    大道至简:大数据.小数据.量化交易, 11.23 今天下午在Q群:124134140(zwPython大数据量化交易). 与大家讨论大数据.量化交易, 没想到,晚上就碰到了一只黑天鹅 惯例,QQ讨论直 ...

  9. 通达信交易接口api_股票量化交易-获取数据的两种方法

    量化交易第一步就是获取数据,介绍两种免费的方法 1.通过pytdx获取本地通达信数据 2.通过requests爬虫爬取腾讯财经数据 通过python第三方库pytdx获取 这是个很强大的第三方库,原理 ...

最新文章

  1. ICML 2018大奖出炉:伯克利、MIT获最佳论文(附论文、项目链接)
  2. Java基础学习总结(16)——Java制作证书的工具keytool用法总结
  3. 一个用户实体应该有它自己的实体验证,即一个实体应该有它的属性,方法,扩展属性及验证机制组成...
  4. Events are a bad idea?
  5. Java高阶部分知识点汇总(三)-基本类型的包装类详讲
  6. ubuntu错误 “cp: omitting directory”解决办法
  7. guns开源项目数据库切换为oracle
  8. 设置Eclipse RCP程序的外观和首选项
  9. Java虚拟机学习 - 体系结构 内存模型(转载)
  10. [超简单]C++如何使用MySQL数据库
  11. WinCE5.0下直接写屏操作与函数 CreateDIBSection() 的使用(转)
  12. bootstrap使用
  13. shell之任务控制
  14. java安卓模拟器和电脑通信_Android 模拟器(JAVA)与C++ socket 通讯 分享
  15. linux系统双显卡切换显卡驱动,自动化系统Linux显卡驱动及BIOS设置笔记(NVIDIA/ATI)...
  16. 电视hdr测试软件,HDR+4K一个都不能少 本地资源播放测试
  17. Java程序在结构上的特点_下面关于JavaApplication程序结构特点描述中,错误的是()...
  18. 《MINECRAFT我的世界 新手完全攻略(第3版)》一1.1 注册与下载
  19. PDF转Excel(PS:学习使用VBA处理Excel)
  20. 生物信息学(3)——双序列比对之BLAST算法简介

热门文章

  1. 人力资源管理的新形式
  2. Go基础(鸡你太美)2
  3. 常见的几种求模运算(mod)——加减乘、除的小费马定理、指数的欧拉降幂
  4. MetaCRM项目组招聘公告,深圳/西安新成立1500+人研发中心
  5. Java多线程--设计模式(一)
  6. 团队管理经验学习总结
  7. 使用MQ来保证分布式事务的最终一致性
  8. coreldraw x5安装视频教程_Coreldraw提示已安装另一版本导致安装失败的解决办法
  9. QGIS添加在线底图
  10. 交换机无法进入命令控制台问题