捕获股市上涨日期
需求:使用tushare包获取某股票的历史行情数据
PyDev console: starting.
date open close high low volume code
0 2001-08-27 -113.034 -112.849 -112.453 -113.329 406318.00 600519
1 2001-08-28 -112.949 -112.616 -112.591 -113.016 129647.79 600519
2 2001-08-29 -112.595 -112.702 -112.591 -112.751 53252.75 600519
3 2001-08-30 -112.719 -112.574 -112.501 -112.769 48013.06 600519
4 2001-08-31 -112.565 -112.590 -112.481 -112.627 23231.48 600519
... ... ... ... ... ... ... ...
5039 2022-09-21 1876.670 1848.000 1883.000 1848.000 20995.00 600519
5040 2022-09-22 1840.000 1820.810 1841.020 1816.850 22704.00 600519
5041 2022-09-23 1820.810 1834.430 1855.000 1820.810 28288.00 600519
5042 2022-09-26 1820.000 1863.000 1888.000 1819.980 35135.00 600519
5043 2022-09-27 1868.860 1888.000 1897.000 1851.110 28820.00 600519
[5044 rows x 7 columns]
需求:指定一直股票,假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?
需求:输出该股票所有收盘比开盘上涨3%以上的日期
# 伪代码:(收盘-开票)/开盘>0.03
# 广播形式:(df["close"] - df["open"]) / df["open"] > 0.03
# 看涨对应的布尔坐标
rise_df_index_series = (df["close"] - df["open"]) / df["open"] > 0.03
# 日期正好是 index 直接返回即可
rise_date_time_index = df.loc[rise_df_index].index
股票买卖收益分析
需求:输出该股票所有开盘比前日收盘跌超过2%的日期
时间节点:2010-2021买:一个完整的年需要买入1200股股票卖:一个完整的年需要卖出1200股股票买卖股票的单价:使用开盘价
# 买股票:找到每个月的第一个交易日对应的行数据(捕获到开盘价)==每月的第一行数据
# 根据月份从原始数据中提取指定的数据
# 数据的重新取样"M"是月(数据没有问题,索引有问题)
target_df = df["2010-01":"2021-02"]
df_monthly = target_df.resample("M").first()
# 买入股票花费的总金额
cost = df_monthly["open"].sum() * 100
# 取年底 "A" 是年
# 将2021年就是最后一行去掉,不考虑来年
# 提示:-1 坐标代表最后序列最后一个, [:-1] 则相当于去掉最后一个元素
yearly_df = target_df.resample("A").last()[:-1]
# 卖出股票到手的钱
resv = yearly_df["open"].sum() * 1200
# 最后手中剩余的股票需要估值其价值计算到总收益中
# 使用昨天的收盘价作为剩余股票的单价
last_money = 200 * target_df["close"][-1]
# 计算总收益
profit = resv + last_money - cost
捕获股票看空的日期
文章为作者独立观点,不代表股票交易接口观点