在这里先介绍一个股票获取的接口——tushare,关于该软件的介绍见官网:
http://www.tushare.org
今天我们用这个包下载某一支股票的历史交易数据。
一、导入tushare安装包
导入过程中如果有问题,可以参考:https://bbs.pinggu.org/thread-9484958-1-1.html
二、测试是否能正常使用。调用get_k_data方法可以得到指定股票(代码:688022)在开始时间至现在的行情信息。此处的‘K’表示‘K线图的意思’。我这里希望选择2015年1月1日以后的信息,结果发现第一条数据是2019-07-22,百度了一下该股票从2019年7月22日才上市。看脚本吧:
【脚本】
import tushare as ts
frame = ts.get_k_data('688022',start='2015-01-01')
print(frame)
【结果】
date open close high low volume code
0 2019-07-22 67.60 50.19 68.99 33.53 17681055.0 688022
1 2019-07-23 40.98 44.45 47.55 40.98 6996702.0 688022
2 2019-07-24 45.18 50.72 50.85 45.18 9718576.0 688022
输出结果字段说明:open—开盘价 close—收盘价 high—最高价low—最低价 volume—交易量
三、查询应用
1、查询收盘价大于45元的信息,从查询的索引号可以看出,索引号不连续,说明已经数据是筛选后的结果
【脚本】
print(frame[frame['close']>45])date open close high low volume code
0 2019-07-22 67.60 50.19 68.99 33.53 17681055.0 688022
2 2019-07-24 45.18 50.72 50.85 45.18 9718576.0 688022
3 2019-07-25 52.00 55.17 60.65 52.00 11794163.0 688022
2、查询收盘价大于开盘价的信息,从查询结果131条记录来看,该支股票一半的时间都在盈利
【脚本】
print(frame[frame['close']>frame['open']])
【结果】
date open close high low volume code
……
260 2020-08-14 38.86 39.17 39.39 38.22 617987.0 688022
261 2020-08-17 38.89 39.35 39.55 38.87 761114.0 688022
262 2020-08-18 39.35 39.94 40.30 39.09 905956.0 688022
266 2020-08-24 40.11 42.89 43.80 39.72 3744840.0 688022
[131 rows x 7 columns]
3、假设你每天都坚持买卖这支股票,能赚多少钱呢? 哈哈~~ 13个月下来,每股还赔2.2元。
【脚本】
print( (frame['close'] - frame['open']).sum() )【结果】
-2.2099999999999866
4、假设你知道哪天能涨,且只在涨价的那天买卖,能赚多少呢? 13个月,每股赚210元,按最低交易100股算,在这种假设下,你13个月就会赚2.1万元。
【脚本】
newframe = frame[ frame['close'] > frame['open'] ]print( (newframe['close'] - newframe['open']).sum() )
【结果】
210.11
5、考虑交易的手续费(佣金5元,过户费1元,印花税是交易总额的千分之一),再计算“只在涨价的那天买卖“,能赚多少呢? 1.96万元。看上去不错,只可惜这个假设是不成立的,你不知道哪一天一定会涨。哈哈~~ 还是好好学习做实业吧!
【脚本】
newframe = frame[ frame['close'] > frame['open'] ]ownOneday =newframe['close'] - newframe['open'] #每天每股的赚的钱
print( (ownOneday * 100 - 6 - frame['close']*100 /1000).sum() )
# ownOneday * 100 :100股每天赚的钱
# 6:交易日的佣金和过户费
# frame['close']*100 /1000 :100股交易额的1000分之一
# 说明:本人不玩股票,只是根据老师授课时讲的内容计算以上结果,不代表实际交易算法。
【结果】
19571.671000000002