1027-股票量化择时代码---股票复权

昨天哭的太厉害,眼睛疼脑瓜仁疼,今天醒了还是晕乎乎的,再也别哭了,太伤害脑子了。
说哭就哭可不是一个交易员该做的事情。你早就不是个孩子了,谁还把你当孩子呢,清醒一点,聪明一点,说好的不悲不喜呢。
别再想你奶,别再回忆,你快一点。再没有任何能伤害到你。眼界大一点,胸怀大一点,别再为难你自己。按你现在这个动不动就哭的活法,不想说了,你记住,你做到,你要不悲不喜。
股票择时

import pandas as  pd
pd.set_option('expand_frame_repr',False)  #当列多时不换行

#=============导入数据
#因为数据是gbk编码,要加encoding='gbk' 参数,不然会乱码
df = pd.read_csv('文件地址+名称',encoding='gbk')

print(df[u'股票代码'])  #没有U就会报错,加U就好了

#将列名转化为string
df.columns = [i.encode('utf-8') for i in df.columns]  #每次打U太麻烦,再把名称转化为string

#取我们想要的列,其他的列不要
df = df[['交易日期','股票代码','开盘价','收盘价','最高价','最低价','涨跌幅']]
#将数据按照交易日期从小到大排序
df.sort_values(by=[' 交易日期'], inplace=True)
print(df)
exit()

#=========计算复权价,最重要的是涨跌幅要复权。很多软件里面的数据都是错的
df['涨跌幅2'] = df['收盘价'].pct_change()
print(df[abs(df['涨跌幅2']-df['涨跌幅']) > 0.00000001])#一般不写大于0,而写一个很小的数字
#有了复权涨跌幅,其他复权价都可以自己算


#=============计算复权后的收盘价
#============计算复权因子
df['复权因子'] = (df['涨跌幅']+1).cumprod()
#复权因子意义是,开始一元,最后收益是多少

#==========后复权收盘价,等于用等于该股票上市价格的钱,买入该股票后的资金曲线
initial_price = df.iloc[0]['收盘价']/(1+df.iloc[0]['涨跌幅'])

df['收盘价-后复权'] = initial_price * df['复权因子']

#=========
df['开盘价—后复权'] = df['开盘价']/df['收盘价'] * df['收盘价-后复权']
df['最高价—后复权'] = df['最高价']/df['收盘价'] * df['收盘价-后复权']
df['最低价—后复权'] = df['最低价']/df['收盘价'] * df['收盘价-后复权']

#=========导出数据
df.to_csv('filename',index=False,
          mode='w' ,     #W是覆盖的意思,A是加上的意思。默认是W
          float_format = '%.15f',   #控制输出浮点数的精度
          header = None,        #不输出表头
          encoding='gbk'  
          )
发布了86 篇原创文章 · 获赞 5 · 访问量 2417

猜你喜欢

转载自blog.csdn.net/yuge1023/article/details/102764111