我是靠谱客的博主 隐形歌曲,最近开发中收集的这篇文章主要介绍[044]量化交易]python tushare行情数据写入MongoDB数据库中,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

#
-*- coding: utf-8 -*-
from pymongo import UpdateOne
# from database import DB_CONN
# 导入tushare
import tushare as ts
from datetime import datetime
from pymongo import MongoClient
# 初始化pro接口
pro = ts.pro_api('')
# 指定抓取的指数列表,可以增加和改变列表里的值
index_codes = ['000001.SZ', '000300.SZ', '399001.SZ', '399005.SZ', '399006.SZ']
# 当前日期
now = datetime.now().strftime('%Y-%m-%d')
print(now)
begin_date = '20210101'
end_date = '20220101'
DB_CONN = MongoClient('mongodb://127.0.0.1:27017')['quant_01']
# 创建daily数据集
daily = DB_CONN['daily']
# 创建daily_hfq数据集
daily_hfq = DB_CONN['daily_hfq']
def save_data(code, df_daily, collection, extra_fields=None):
update_requests = []
# 数据更新的请求列表
# 将DataFrame中的行情数据,生成更新数据的请求
print('+++++++++df_daily.index+++++++++++')
print(df_daily.index)
for df_index in df_daily.index:
# 将DataFrame中的一行数据转dict
doc = dict(df_daily.loc[df_index])
print('-------doc---------')
print(doc)
# 设置股票代码
doc['code'] = code
# 如果指定了其他字段,则更新dict
if extra_fields is not None:
doc.update(extra_fields)
#
$set操作符替换掉指定字段的值 首先找到文档
集合
数据库
update_requests.append(
UpdateOne(
{'code': doc['ts_code'], 'date': doc['trade_date'], 'index': doc['index']},
{'$set': doc},
upsert=True)
)
print('update_requests :')
print(len(update_requests))
# 如果写入的请求列表不为空,则保存都数据库中
if len(update_requests) > 0:
# 批量写入到数据库中,批量写入可以降低网络IO,提高速度
update_result = collection.bulk_write(update_requests, ordered=False)
print('保存日线数据,代码: %s, 插入:%4d条, 更新:%4d条' %
(code, update_result.upserted_count, update_result.modified_count),
flush=True)
for code in index_codes:
# 抓取一个指数的在时间区间的数据
df_daily = pro.daily(**{
"ts_code": code,
"trade_date": "",
"start_date": begin_date,
"end_date": end_date,
"offset": "",
"limit": ""
}, fields=[
"ts_code",
"trade_date",
"open",
"high",
"low",
"close",
"pre_close",
"change",
"pct_chg",
"vol",
"amount"
])
print('**************************'+code)
print(df_daily)
save_data(code, df_daily, daily, {'index': True})

最后

以上就是隐形歌曲为你收集整理的[044]量化交易]python tushare行情数据写入MongoDB数据库中的全部内容,希望文章能够帮你解决[044]量化交易]python tushare行情数据写入MongoDB数据库中所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部