您的位置:首页 > 其它

2009年至2016年全市场的动量以及动量翻转分析

2017-04-12 09:43 204 查看
最近想知道在全市场中跌了1-10天的情况下,未来1-10天涨跌情况,进而分析动量以及动量翻转的效果

以下是分析的代码

import csv
import pandas as pd
import numpy as np
import math

def decrease_day(dayBefore,dayAfter):
df = pd.read_csv('E:/slowsnowball/2015.csv')
df = df.set_index('secID')
stockList = df.index
Yield = []
for stk in stockList:
for d in range(len(df.columns)-dayBefore):
flag = True
for tempD in range(dayBefore):
if(float(df[df.columns[d+tempD+1]][stk])>=float(df[df.columns[d+tempD]][stk])):
flag = False
break
if(flag==True):
try:
temp = 1
for i in range(dayAfter):
beforePrice = float(df[df.columns[d+dayBefore+i]][stk])
afterPrice = float(df[df.columns[d+dayBefore+i+1]][stk])
YieldTemp = 1.0000+(afterPrice-beforePrice)/beforePrice
temp*=YieldTemp
YieldTemp = math.pow(temp,float(1/dayAfter))-1
Yield.append(YieldTemp)
except:
pass
Yield = [x for x in Yield if str(x) != 'nan']
return (np.mean(Yield))
def main():
dayBefore = 10
dayAfter = 10
for db in range(dayBefore):
#for db in range(8, dayBefore):
for da in range(dayAfter):
Yield_mean = decrease_day(db+1,da+1)
print("Before: "+str(db+1)+' '+"After: "+str(da+1)+' '+'Yield_mean: '+str(Yield_mean))
main()


结果表明:

在市场活跃时期,反转现象表现的尤其明显(2014~2016年),而且前期偏离力度越大则反转力度越大。2014~2016三年的样本表明,连续下跌十天以后下一个交易日平均都能取得5%以上的正收益。2009~2013五年,反转的周期较短,力度也较小,说明这些年份交易不够活跃。

但是现在处理的时候是将全市场收益率进行平均了,前两天对这个方法查了相关的论文,每一支股都有自己的周期变化,那么是否全市场取平均是不是欠妥,是否应只取一只股票,或是聚类后同类型的股票取平均,其次不仅是跌了多少天,还有跌幅、下跌速度的变化等一些因素,还值得进一步思考
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: