引言
使用tushare包获取某股票的历史行情数据
- pip install tushare
1 | import tushare as ts |
1 | # 茅台的数据 |
1 | maotai.head() |
打印:
date | open | close | high | low | volume | code | |
---|---|---|---|---|---|---|---|
0 | 2001-08-27 | 5.392 | 5.554 | 5.902 | 5.132 | 406318.00 | 600519 |
1 | 2001-08-28 | 5.467 | 5.759 | 5.781 | 5.407 | 129647.79 | 600519 |
2 | 2001-08-29 | 5.777 | 5.684 | 5.781 | 5.640 | 53252.75 | 600519 |
3 | 2001-08-30 | 5.668 | 5.796 | 5.860 | 5.624 | 48013.06 | 600519 |
4 | 2001-08-31 | 5.804 | 5.782 | 5.877 | 5.749 | 23231.48 | 600519 |
1 | # 存储本地 |
1 | # 从本地读取数据 |
1 | df.head() |
打印:
open | close | high | low | volume | code | |
---|---|---|---|---|---|---|
date | ||||||
2001-08-27 | 5.392 | 5.554 | 5.902 | 5.132 | 406318.00 | 600519 |
2001-08-28 | 5.467 | 5.759 | 5.781 | 5.407 | 129647.79 | 600519 |
2001-08-29 | 5.777 | 5.684 | 5.781 | 5.640 | 53252.75 | 600519 |
2001-08-30 | 5.668 | 5.796 | 5.860 | 5.624 | 48013.06 | 600519 |
2001-08-31 | 5.804 | 5.782 | 5.877 | 5.749 | 23231.48 | 600519 |
1 | # 输出该股票所有收盘比开盘上涨3%以上的日期。 |
打印:
1 | DatetimeIndex(['2001-08-27', '2001-08-28', '2001-09-10', '2001-12-21', |
1 | # 输出该股票所有开盘比前日收盘跌幅超过2%的日期。 |
打印:
1 | DatetimeIndex(['2001-09-12', '2002-06-26', '2002-12-13', '2004-07-01', |
1 | #假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何? |
- 基于开盘价进行股票的买卖
- 买股票的时机:
- 每月的第一个交易日买入一手(100股)股票
- 一个完整的年会买入12次股票共计1200股
- 卖股票的时机:
- 每年的最后一个交易日卖出所有(1200股)的股票
- 一共可以卖9次股票
- 注意:19年只可以买入不可以卖出,最后剩余的不能卖出的1000股股票是需要计算到总收益中
- 数据的重新取样resample()
1 | # 买入股票花费的钱数 |
打印:
1 | 3568986.0999999996 |
1 | # 卖出股票收到多少钱 |
打印:
open | close | high | low | volume | code | |
---|---|---|---|---|---|---|
date | ||||||
2010-12-31 | 117.103 | 118.469 | 118.701 | 116.620 | 46084.0 | 600519 |
2011-12-31 | 138.039 | 138.468 | 139.600 | 136.105 | 29460.0 | 600519 |
2012-12-31 | 155.208 | 152.087 | 156.292 | 150.144 | 51914.0 | 600519 |
2013-12-31 | 93.188 | 96.480 | 97.179 | 92.061 | 57546.0 | 600519 |
2014-12-31 | 157.642 | 161.056 | 161.379 | 157.132 | 46269.0 | 600519 |
2015-12-31 | 207.487 | 207.458 | 208.704 | 207.106 | 19673.0 | 600519 |
2016-12-31 | 317.239 | 324.563 | 325.670 | 317.239 | 34687.0 | 600519 |
2017-12-31 | 707.948 | 687.725 | 716.329 | 681.918 | 76038.0 | 600519 |
2018-12-31 | 563.300 | 590.010 | 596.400 | 560.000 | 63678.0 | 600519 |
1 | last_price = df_2010['close'][-1] # 昨天的收盘价 |
1 | recv_monry = df_yearly['open'].sum() * 1200 + last_price * 1000 |
打印:
1 | 590598.6999999997 |