失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 数据分析——DataFrame基础操作巩固—股票分析

数据分析——DataFrame基础操作巩固—股票分析

时间:2020-12-13 17:06:25

相关推荐

数据分析——DataFrame基础操作巩固—股票分析

需求一:

获取某支股票的历史行情时数据

df = ts.get_k_data(code='600519',start='2000-01-01') 获取某只股票数据df . to_csv('./maotai.csv') #将得到的数据存储在当前目录下df = pd.read_csv('./maotai.csv') #将本地存储的文件读入df中
df.drop(lables='unnamed:0', axis=1, inplace=True) # 删除数据中的某一列df('date') = pd.to_datetime(df['date']) # 将time这一列转为时间序列类型

输出该股票所有收盘比开盘上涨3%以上的日期

A = ( df['open']-df['close'] ) / df['open'] > 0.03 # 得到bool值B =df.loc[ ( A] # 得到True所对应的行数据B. index # 这些行数据对应的行索引——date

输出该股票所有开盘比收盘跌幅超过2%的日期

df['close'].shift(1) #将close这一列整体下移一行A = (df['open']-df['close'].shift(1) ) / df['close'] .shift(1) < -0.02 # 返回跌幅是否超过0.02:bool类型B = df.loc[ A ] # 得到True所在的行数据B.index # 得到True的行数据的行索引

假设我从1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益如何?

new_df = df['-01','-02'] # 根据行索引确定数据范围df_monthly = new_df.resample('M').first() #根据月重新取样,得到每个月的第一个数据——记为df_monthlycost = df_monthly['open'].sum() * 100 #用开盘价计算买股票的总花费
new_df.resample('A').last() #根据年重新取样,得到每年最后一行数据——记为df_yearlydf_yearly = new_df.resample('A').last()[:-1] #由于还没有卖出股票,因此切掉最后一年revs = df_yearly['open'].sum() * 1200 #每年的总收入
# 切掉最后一年之后,手里还有两个月的股票没有卖出,估计这些股票的价值,用昨天的收盘价作为卖出这些股票的单价last_money = 200 * new_df['close'][-1] #手中的股票的价值

需求二:双均线策略制定

df = pd.read_csv('./maotai.csv').drop('Unnamed:0',axis=1)df['date'] = pd.to_datetime(df['date'])df.set_index('date',inplace=True)
ma5 = df['close'].rolling(5).mean()ma10 = df['close'].rolling(10).mean()ma30 = df['close'].rolling(30).mean()

画图:5日均线和30日均线

也可以切片其中一段时间的图:

import matplotlib.pyplot as plt%matplotlib inlineplt.plot(ma5[50:180])plt.plot(ma10)

金叉死叉判断方法:

判断死叉:

death_ex = s1 & s2.shift(1) # 判断是否为死叉,返回的是bool值,True对应的是死叉death_date = df.loc[death_ex] . index #死叉对应的行数据的行索引gloden_ex = ~(s1 | s2.shift(1)) #False代表金叉gloden_date = df.loc(gloden_ex).index

判断金叉:

金叉为什么是尽量买入:股票只能一手一手买,因此可能不会正好买100000元的股票。

切对应时间段:

推荐:聚宽

如果觉得《数据分析——DataFrame基础操作巩固—股票分析》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。