数据分析——股票为例

编程入门 行业动态 更新时间:2024-10-27 13:28:19

数据分析——股票<a href=https://www.elefans.com/category/jswz/34/1769536.html style=为例"/>

数据分析——股票为例

数据分析——股票为例

import pandas as pd
import numpy as np
import tushare as ts

其中的tushare为第三方库,专门为了处理股票数据而开发的。
首先导入茅台的股票数据,茅台的股票代码为600519

td=ts.get_k_data(code='600519',start='2000-01-01')

将获得的股票代码存入csv文件

td.to_csv('maotai.csv',index=False)

查看数据:td.head()

查看每一列的信息:

td.info()


将date这一列的类型转换为日期格式:

td['date']=pd.to_datetime(td['date'])

将date设为行名:

td.set_index('date',inplace=True)


求解收盘价比开盘价涨幅超过3%的日期:

sz_date=td.loc[(td['close']-td['open'])/td['open']>0.03].index
sz_date


求解开盘价比上一交易日收盘价下跌超过2%的日期:

td.loc[(td['open']-td['close'].shift(1))/td['close'].shift(1)<-0.02]
xd_date=td.loc[(td['open']-td['close'].shift(1))/td['close'].shift(1)<-0.02].index
xd_date

其中的shift(1)相当于将收盘价整体下移一个交易日。

求解:某段时间内每月第一个交易日买入100首股票,每年最后一个交易日卖出。赚多少钱。
首先确定某段时间是多久(2002-01----2021-12)

new_df=td['2002-01':'2021-12']
new_df

mairu=new_df.resample('M').first()
mairu

resample(‘M’)表示重采样,括号中的‘M’表示按月采样,first()表示取每月的第一个日期。

上图显示错误,date那一列应该是每月的第一个交易日。

maichu=new_df.resample("A").last()
maichu

‘A’表示按年采样,取每年的最后一个交易日。

buy_total=mairu['open'].sum()*100
sale_total=maichu['open'].sum()*1200
total=sale_total-buy_total
total

求解:金叉、死叉日期
首先求解5日、30日均线:

MA5=td['close'].rolling(5).mean()[50:]
MA5
MA30=td['close'].rolling(30).mean()[50:]
MA30
import matplotlib.pyplot as plt
%matplotlib inline
plt.plot(MA5[50:180])
plt.plot(MA30[50:180])


先算出如下的公式:

s1=MA5<MA30
s2=MA5>MA30

死叉这样计算:

death_ex=s1 & s2.shift(1)
death_ex_date=td[50:].loc[death_ex].index
death_ex_date

金叉这样计算:

glod_ex=~(s1 | s2.shift(1))
glod_ex_date=td[50:].loc[glod_ex].index
glod_ex_date

更多推荐

数据分析——股票为例

本文发布于:2024-02-06 16:19:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750498.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:为例   股票   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!