股票分析
- 使用tushare包获取某股票的历史行情数据
- 输出该股票所有收盘比开盘上涨3%以上的日期
- 输出该股票所有开盘比前日收盘跌幅超过2%的日期
- 假如从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票。到今天为止,收益如何?
库
tushare:财经数据接口包
预处理数据
- 获取某支股票的历史行情数据
df = ta.get_k_data(code='600519', start='2022-01-01')
- 将互联网上获取的股票数据存储到本地
df.to_csv('./maotai.csv')
- 将本地存储数据输入到df1
df1 = pd.read_csv('./maotai.csv')
- 对读取的数据进行相关的处理
df1.drop(labels='Unnamed: 0', axis=1, inplace=True)
df1.info()
df1['date'] = pd.to_datetime(df1['date'])
df1.set_index('date', inplace=True)
捕获股票上涨日期
- 输出该股票所有收盘比开盘上涨3%以上的日期
伪代码:(开盘 – 收盘) / 开盘 > 0.03
df1.loc[(df1['open'] - df1['close']) / df1['open'] > 0.03].index
捕获股票跌幅的日期
- 输出该股票所有开盘比前日收盘跌幅超过2%的日期
伪代码:(开盘 – 前日收盘) / 前日收盘 < -0.02
print(df1.loc[(df1['open'] - df1['close'].shift(1)) / df1['close'].shift(1) < -0.02].index)
股票买卖收益分析
假如从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票。到今天为止,收益如何?
- 时间节点:2010-2022
- 一手股票:100支股票
- 买:
- 一个完整的年需要买入12手股票,即为1200支股票
- 卖:
- 一个完整的年需要卖出12手股票,即为1200支股票
- 买卖股票的单价:
- 开盘价
收益计算
- 根据时间进行切片
new_df = df['2010-01':'2022-07']
- 买股票
df_monthly = new_df.resample('M').first()
- 买入的股票花费的总金额
cost = df_monthly['open'].sum() * 100
- 卖出股票到手的钱
df_yearly = new_df.resample('A').last()[:-1]
resv = df_yearly['open'].sum() * 1200
last_money = 700 * new_df['close'][-1]
- 计算总收益
total = resv + last_money - cost
Original: https://blog.csdn.net/qq_40202164/article/details/125891361
Author: GODamnbit
Title: Python数据分析之股票分析
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/677495/
转载文章受原作者版权保护。转载请注明原作者出处!