pandas案例--股票预测任务

需求:
1.使用tushare白获取某股票的历史行情数据
2.输出该股票所有收盘闭开盘上涨30%以上的日期
3.输出该股票所有开盘闭前日收盘跌幅超过2%的日期
4假如我从2010年1月1日开始,每月第一个交易日买入1收股票,每年最后一个交易日卖出所有股票, 到尽头为止,我的收益如何

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

#获取股票的历史数据

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

#保存到本地

df.to_csv(“./maotai.csv”)

#数据预处理

#删除某一列

df=df.drop(labels=“Unnamed: 0”,axis=1)

也或者可以是

df.drop(labels=“Unnamed: 0”,axis=1,inplace = True)

#查看每一列对应的数据类型

df.info()

#将time这列转为时间类型序列

df["date"]=pd.to_daytime(df["date"])

#将df["date"]这列作为行索引

df.set_index(df['date'],inplace=True)

#第二步:输出该股票所有收盘闭开盘上涨30%以上的日期

df.loc[(df['open'] - df['close'])/df['open']>0.03].index

第三步:输出该股票所有开盘闭前日收盘跌幅超过2%的日期

df.loc[(df["open"]-df['close'].shift(1))/df['close'].shift(1)<-0.02 ].index
#第四步:假如我从2010年1月1日开始,每月第一个交易日买入1收股票,每年最后一个交易日卖出所有股票,到尽头为止,我的收益如何?

#提取数据
new_df=df['2010-01':'2020-02']
#买股票:需要找到某个月的第一个交易日对应的行数据
#找到每个月的第一天
df_monthly=new_df.resample('M').first()#数据的重新取样
#买入股票话费的总金额
cost=df_monthly['open'].sum()*100
#卖出股票的钱:特殊情况,2020年买入的股票卖不出去
#且将2020年最后一行切出去
df_yearly=new_df.resample('A').last()[:-1]
#卖出股票的钱到手的钱
resv=df_yearly['open'].sum()*1200
#最后手中剩余的股票需要菇凉其价值计算到总收益中
last_monry=200*new_df['close'][-1]
#计算总收益
resv + last_monry -cost

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值