【python量化交易学习】pandas获取tushare股票交易数据,写入mysql数据库 或导出到excel。

panda+tushare实现,从tushare获取交易数据,写入mysql数据库中,或者导出到excel表中。

免费开放股票数据平台tushare注册地址。

代码如下:
**

写入mysql版本

**

import datetime
import pandas as pd
from sqlalchemy import create_engine
import tushare as ts

# 建立mysql数据库的连接
conn = create_engine('mysql+pymysql://root:123456@localhost:3306/qtrade', encoding='utf8')
#注册tushare后,填写自己的接口TOKEN。
pro = ts.pro_api('d4371184a**********d5329892ceb2d280110172')


#获取今天的日期
my_today = datetime.datetime.today()

# 回溯天数。
btw_day = 60

for i in range(0, btw_day):
    
    #将日期转换为20220222格式
    tradedate = (my_today + datetime.timedelta(-i)).strftime("%Y%m%d")
    print(i)
    print(tradedate)
    #获取单独一天,所有股票当天的开盘价,收盘价,交易额等行情数据
    df2 = pro.daily(**{
        "ts_code": "",
        "trade_date": tradedate,
        "start_date": "",
        "end_date": "",
        "offset": "",
        "limit": ""
    }, fields=[
        "ts_code",
        "trade_date",
        "open",
        "high",
        "low",
        "close",
        "pre_close",
        "change",
        "pct_chg",
        "vol",
        "amount"
    ])
    #写入mysql数据库
    df2.to_sql('dailytrade', con=conn, if_exists='append', index=False)

写入结果如下:
在这里插入图片描述

**

写入excel中

**

import datetime
import pandas as pd
import tushare as ts

# 注册tushare后,填写自己的接口TOKEN。
pro = ts.pro_api('d437**********172')

# 获取今天的日期
my_today = datetime.datetime.today()

# 回溯天数。
btw_day = 60

dfs = []

for i in range(0, btw_day):
    # 将日期转换为20220222格式
    tradedate = (my_today + datetime.timedelta(-i)).strftime("%Y%m%d")
    # 获取单独一天,所有股票当天的开盘价,收盘价,交易额等行情数据
    df = pro.daily(**{
        "ts_code": "",
        "trade_date": tradedate,
        "start_date": "",
        "end_date": "",
        "offset": "",
        "limit": ""
    }, fields=[
        "ts_code",
        "trade_date",
        "open",
        "high",
        "low",
        "close",
        "pre_close",
        "change",
        "pct_chg",
        "vol",
        "amount"
    ])
    # 写入mysql数据库
    # df.to_sql('dailytrade', con=conn, if_exists='append', index=False)

    dfs.append(df)

alldata = pd.concat(dfs)
#选择储存的位置
alldata.to_excel('/Users/PycharmProjects/0317xlsx',sheet_name='1',engine='openpyxl')

强烈推荐tushare,一键生成代码,对我等菜鸟非常友好!非常好用!
免费开放股票数据平台tushare注册地址。

在这里插入图片描述

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
第三方库:snownlp、tusharepandas、numpy、matplotlib getData:从东方财富网旗下的股吧论坛爬取数据 SQL:用到的数据库操作函数 quantilizeSentiment:量化情绪指数,生成excel文件便于后面进行情绪指数和股票价格涨幅相关度的量化分析(股票价格历史数据来自tusharepro网站,可以免费获取) result:传入某只股票代码,返回情绪指数结果(主要关注此文件即可,其他爬虫分析之类的我后面放到云上,爬取的数据都放入云数据库中) analyze:进行情绪指数和股票价格涨幅相关度分析、数据可视化 爬取后的数据存储在云端数据库中: db = pymysql.connect(host="116.62.46.214",user="dfcf",password="iJHPFZnRjXacNi6p",db="dfcf",port=3306) 接口说明(重点!!!): 函数: def data(share_code):#计算情绪指数 传参:share_code 股票代码(例如:zssh000001)上证指数 返回参数:result 情绪指数 例如: if __name__ == '__main__': result=data('zssh000001') #传入股票代码参数 print(result) #打印情绪指数结果 实现功能:根据传入的股票代码到东方财富网旗下的股吧对应的某股票分论坛爬取当天的用户评论信息,并将爬取的数据存储到MySQL中,之后再将数据进行统计并计算出该股票当天的市场情感趋势。 执行流程 1、输入股票代码 2、清空数据库上一天的评论信息 3、使用爬虫爬取当天东方财富网股吧论坛中该股票的股民评论信息并进行数据清洗过滤,筛选出有效信息,存入MySQL数据库 4、使用金融情感计算模型进行文本数据分析 5、得出该股票当日的情绪指数 6、返回情绪指数值 计算情绪指数具体算法实现 借助自然语言处理中的情感分类技术。按照正常的处理流程,需要搭建模型、准备语料库、训练模型、测试模型然后得到一个情感分类的模型。但这里,时间有限,所以直接使用现有的模型。snownlp是一个中文的开源的自然语言处理的Python库,可以进行分词、情感分类等。在本项目中可以直接使用它来量化出某一日市场投资者的整体情绪。量化的方法有许多种,可以将某一日所有的评论情绪得分得分相加再求评价,也可以求某一日情绪得分大于0.5的评论所占的比例。 项目所采用的方法: 将情绪得分>0.6的评论当作积极评论,小于0.4的评论当作消极评论。 设置变量neg和pos,存储某一日市场的积极情绪因子和消极情绪因子。关于neg和pos的计算方法,以neg为例: 初始化为0,若某一日的某一评论comment的情绪得分<0.4 neg=neg+1+log(该条评论的点赞数+该条评论作者的粉丝数+1,2),其中log(x,2)表示以2为低的x的对数。考虑该条评论的点赞数和该条评论作者的粉丝数是因为考虑到不同的评论的质量不同。取对数是为了让数据更加平滑,防止极值过大。+1是为了防止该条评论的点赞数和该条评论作者的粉丝数都为0。 计算某一日市场的总体情绪得分score。设计的模型是: score=log((pos/(pos+neg+0.0001)-0.5)*(该日评论总数+1)) (pos/(pos+neg+0.0001)-0.5)的意思是计算市场的情绪倾向,**大于0表明市场积极情绪情绪较强,越接近0.5越强。小于0反之。**后面的(该日评论总数+1),是因为某一日投资者的评论越多,代表市场投资者情绪的波动越大。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陆百亿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值