文章目录
需求:股票分析
- 使用tushare包获取某股票的历史行情数据。
- 输出该股票所有收盘比开盘上涨3%以上的日期。
- 输出该股票所有开盘比前日收盘跌幅超过2%的日期。
- 假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?
import tushare as ts
import pandas as pd
from pandas import DataFrame,Series
import numpy as np
df=ts.get_k_data(code='600519',start='2000-01-01')
# 将DataFrame 存储到csv文件中
df.to_csv('./maotai1.csv')
df
df=pd.read_csv('maotai.csv')
# 删除 无用的列
df.drop(['Unnamed: 0'],axis=1,inplace=True)
# 先转为时间 再设置索引 如果是先设置索引再转时间就报错
df['date'] =pd.to_datetime(df['date'])
df=df.set_index('date')
# 1 输出该股票所有收盘比开盘上涨3%以上的日期。
# 取出所有为Ture的索引
raise_1=df.loc[(df['close']-df['open'])/df['open']>0.03].index
raise_1
# 2.输出该股票所有开盘比前日收盘跌幅超过2%的日期。
data=df
# 取出某一列或者某几列 上下或者左右移动
data['close']=data['close'].shift(periods=1,axis=0)
data.loc[((data['open']-data['close'])/data['close']<-0.02)].index
# 3.假如我从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?
# 收入-支出
df=pd.read_csv('maotai.csv')
# 删除 无用的列
df.drop(['Unnamed: 0'],axis=1,inplace=True)
# 先转为时间 再设置索引 如果是先设置索引再转时间就报错
df['date'] =pd.to_datetime(df['date'])
df=df.set_index('date')
# 筛选出数据
df=df.loc['2010-01':'2021-12']
# 购买的价格
buy_price=df['open'].resample('M').first().sum()*100
# 2010-2020年之间卖的价格
sale_price1=df['open'].resample('Y').last().sum()*100
# 2021到今天(9.21)之间股票价格利润
sale_price2=df['close'].iloc[-1]*900
profite=sale_price1+sale_price2-buy_price
profite