tushare介绍与简单投资模拟

tushare介绍与简单投资模拟,第1张

tushare介绍与简单投资模拟

 本人tushare ID: 471220

tushare介绍

当你想用python进行金融量化的实践时,你首先会面临的一个问题是如何去获取相关的金融数据,常用的数据有股票、基金、指数等。如果是自己去做数据的收集、清洗、整理等工作,那将是比较庞大且麻烦的事。在这里我想介绍一下tushare这个库,它为我们带来了极大的便利,让我们有更多的时间放在数据分析、写量化策略等工作上。

这里是tushare的官方网站Tushare大数据社区,进入首页,你便可以看到如下图所示的介绍。

 

 如何使用tushare 前期工作
  • 首先是安装一下tushare这个库
pip install tushare

 安装好后,可以查看所安装的版本。

import tushare
print(tushare.__version__)

 后期,假如想更新库,也是很简单的,只要

pip install tushare --upgrade
  • 注册tushare用户

在这里,我们使用的其实是tushare pro(旧版tushare的升级),要使用tushare pro,需要注册用户,获取token,来进行后续的使用。注册的步骤是简单的,大家进入tushare pro的官网,完成相应的注册流程便可,这里不再多说。

开始使用

 当我们有了这么一个好用的数据来源时,便可以开始学习它的一些基础用法,以及用获取的数据写一些简单的策略来感受一下量化的魅力。这里,我们以定投策略为例,股票选择中国平安601318.SH。 

  • 获取接口
import tushare as ts
import numpy as np
import pandas as pd
ts.set_token('your token')
pro = ts.pro_api()
  •  获取与保存数据
#获取中国平安近3年的数据
df = pro.daily(ts_code='601318.SH', start_date='20190101', end_date='20211031')
df.head()

#为了方便之后的使用,可以把数据保存为csv文件
df.to_csv('601318SH.csv')
#读取文件,只用到'open','high','low','close'
df=pd.read_csv('601318SH.csv',index_col='trade_date',
               parse_dates=['trade_date'])[['open','high','low','close']]
  •  接下来进行一个非常简单的定投策略:从2019年1月1日起,每个月的第一个交易日购买1000股,观察半年后的收益情况
#取每月第一个交易日的数据
df_Mon=df.resample('MS').first()
#半年
money_input=0    #投入的资金
hold=0           #持有的数量

for i in range(0,6):
    money_input+=df_Mon.iloc[i]['open']*1000
    hold+=1000

#在下一个月的首个交易日以开盘价卖出
money_output=df_Mon.iloc[6]['open']*hold
earning=money_output-money_input
earning_rate=(money_output-money_input)/money_input*100
print('我们投入了%.f元,卖出时为%.f元,收益率为%.2f%%'%(money_input,money_output,earning_rate))

  • 如果把起始日期由2019年1月1日改为2021年1月1日,
#半年
money_input=0    #投入的资金
hold=0           #持有的数量

for i in range(24,30):
    money_input+=df_Mon.iloc[i]['open']*1000
    hold+=1000

#在下一个月的首个交易日以开盘价卖出
money_output=df_Mon.iloc[30]['open']*hold
earning=money_output-money_input
earning_rate=(money_output-money_input)/money_input*100
print('我们投入了%.f元,卖出时为%.f元,收益率为%.2f%%'%(money_input,money_output,earning_rate))

 

 可以看到亏损得非常厉害,定投策略就没那么有效了,需要改进策略或者采用其他的策略,如双均线策略。


我们再补充一下如何简单方便地画k线图,这里还是用之前的程序中的数据。

import mplfinance as fin
fin.plot(df_Mon,type="candle",)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5573528.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存