博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
股票分析
阅读量:4983 次
发布时间:2019-06-12

本文共 1440 字,大约阅读时间需要 4 分钟。

#  tushare 财经数据接口包

使用tushare包获取某股票的历史行情数据。
import pandas as pdfrom pandas import Series,DataFrameimport numpy as npimport tushare as ts df = ts.get_k_data(code='600519',start='2000-01-01') #获取k线数据df.head()  #显示前5行df.to_csv('./maotai.csv') #数据写入 csv#将date列的数据转成时间序列,然后将该列作为整个数据源的行索引   某一列作为行索引data = pd.read_csv('./maotai.csv',index_col='date',parse_dates=['date']) #读数据 出来df data.drop(labels='Unnamed: 0',axis=1,inplace=True)#标签  0行 1列data.head(5) #前5行data.index[0] #Timestamp('2001-08-27 00:00:00')

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

# (收盘-开盘)/开盘 > 0.03
indexs = (data['close']-data['open'])/data['open'] > 0.03
data.loc[indexs].index #拿到具体时间

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

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

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

price_last = data['open'][-1] #最后一个交易日的开盘价

df = data['2010':'2019'] #剔除首尾无用的数据
#Pandas提供了resample函数用便捷的方式对时间序列进行重采样,根据时间粒度的变大或者变小分为降采样和升采样:
df_monthly = df.resample("M").first()
df_yearly = df.resample("A").last()[:-1] #去除最后一年  Y
cost_money = 0 #起始资金
hold = 0 #每年持有的股票
for year in range(2010, 2020):
  cost_money -= df_monthly.loc[str(year)]['open'].sum()*100
  hold += len(df_monthly[str(year)]['open']) * 100
  if year != 2019:
    cost_money += df_yearly.loc[str(year)]['open'][0] * hold
    hold = 0 #每年持有的股票
cost_money += hold * price_last

print(cost_money)

 

转载于:https://www.cnblogs.com/zhangchen-sx/p/11116596.html

你可能感兴趣的文章
知识签名(signature of knowledge)
查看>>
Gedit 解决中文显示乱码问题
查看>>
reset 单个文件 回退
查看>>
数据库系统
查看>>
ASP.NET Core 基础知识(九)Configuration
查看>>
pickle使用
查看>>
将多个网页制作成一个CHM文件
查看>>
txt 文件改名为fasta,并编辑规格格式
查看>>
闭包 装饰器 - 总结
查看>>
中间件
查看>>
jQuery初识之选择器、样式操作和筛选器(模态框和菜单示例)
查看>>
::作用域运算符
查看>>
memcpy memmove区别和实现
查看>>
linux 下创建并动态加载.so 文件
查看>>
python--redis
查看>>
禁用input帐号密码的自动填充
查看>>
python的小技巧
查看>>
json数组转数组对象
查看>>
KMP算法详解 转帖
查看>>
Struts2+Hibernate+Spring+Webservice 项目从Tomcat到WebLogic遇到问题的解决方法
查看>>