pandas_例子1

题目(以600000股票为例,数据在CSDN下载资源中,文末会附上链接):

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

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

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

import pandas as pd
import numpy as np
df = pd.read_csv('./600000.csv',encoding='utf-8')
df.head()

df.drop(labels='Unnamed: 0',axis=1,inplace=True) # 删除 Unnamed: 0 列
df

 

df['tradeDate'] = pd.to_datetime(df['tradeDate'])
df.sort_values(by='tradeDate',ascending=True,inplace=True)
df.set_index('tradeDate',inplace=True)
# 1. 输出该股票所有收盘比开盘上涨3%以上的日期
question_1 = df.loc[(df['closePrice']-df['openPrice'])/df['openPrice']>0.03]
question_1

 

# 2. 输出该股票所有开盘比前日收盘跌幅超过2%的日期
question_2 = df.loc[(df['closePrice']-df['closePrice'].shift(1))/df['closePrice'].shift(1)<-0.02]
question_2

 

# 3. 假如从2010年1月1日开始,每月第一个交易日买入1手股票,每年最后一个交易日卖出所有股票,到今天为止,我的收益率如何?
'''
分析
时间节点: 2010-2022
一手股票:100只股票
买:一个完整的年需要买入1200只股票
卖:一个完整的年需要卖出1200只股票
买卖股票的单价:开盘价
最后未完整的年度要将剩余的股票估量其价值计算到总收益中,剩余股票的价值使用最后一天收盘价作为股票单价进行计算
'''
df00 = df['2010-01':'2022-01']
# 每个月第一个交易日的行数据
df_monthly = df00.resample('M').first()
df_monthly

 

# 买入股票花费的总金额
cost = df_monthly['openPrice'].sum()*100
cost
# out: 111614.39999999998

# 卖出股票到手的钱
# 2022年买入的股票还没到年末,还没有卖
df_yearly = df00.resample('A').last()[:-1]
df_yearly

 

resv = df_yearly['openPrice'].sum()*1200
resv
# out: 115025.99999999999

# 未卖出股票的价值
last_money = 100*df00['closePrice'][-1]
last_money
# out: 857.0

# 总收益
resv + last_money - cost
# out: 4268.600000000006

PS:

数据下载链接:<pandas基础和金融实例专栏>pandas_例子1和pandas_例子2使用的数据-讲义文档类资源-CSDN下载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值