版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第10章
股票价格形态聚类与收益分析函数定义及使用方法训练样本与预测样本的构建量化投资策略设计函数定义及使用方法第10章
将以上介绍的股票价格形态特征提取定义为函数FR1defFR1(DA,t_trd1,t_trd2,num):
#输入:
#DA--2017年股票交易数据
#t_trd1--聚类数据区间开始日期
#t_trd2--聚类数据区间结束日期
#num--基于总体规模与投资效率指标的综合评价方法提取样本个数
#输出:
#Data--形态特征数据
#KeyData--关键价格点数据
#KeyData_index--关键价格点对应序号函数定义及使用方法第10章
将以上介绍的形态特征聚类与收益率计算定义为函数FR2defFR2(DA,Data,KeyData,KeyData_index,s_trd1,s_trd2,class_num):
#输入:
#DA--2017年股票交易数据
#Data--形态特征数据
#KeyData--关键价格点数据
#KeyData_index--关键价格点对应序号
#s_trd1--收益率计算持有期开始日期
#s_trd2--收益率计算持有期结束日期
#class_num--聚类个数
#输出:
#Data_c--形态特征数据+聚类结果列
#KeyData_c--关键价格点数据+聚类结果列
#KeyData_index_c--关键价格点对应序号+聚类结果列
#D--每只股票代码、所属聚类类别、收益率组成的数据框
#list_cr--每类股票的总收益训练样本与预测样本的构建第10章
选用2017年5月1日—2017年7月31日和2017年6月1日—2017年8月31日两个计算周期的交易数据提取股票价格形态特征进行聚类,并分别以2017年8月1日—2017年8月31日和2017年9月1日—2017年9月30日两个持有期计算每个类别的平均收益率,如果类平均收益率排名前5,则该类中所有股票记为+1类,否则记为−1类,并以此构建训练样本。importpandasaspdDA=pd.read_excel('DA.xlsx')R1=FR1(DA,'2017-05-01','2017-07-31',400)R2=FR2(DA,R1[0],R1[1],R1[2],'2017-08-01','2017-08-31',20)dt1=R2[0]
#2017年5月1日至2017年7月31日的股票价格形态特征数据+聚类结果列cr1=pd.Series(R2[4])#对应每类的平均收益率crr=cr1.sort_values(ascending=False)#对类平均收益率序列cr1按降序排序cr=list(crr.index)
#取对应的类编号(排序后的数据)foriinrange(len(crr)):
#类平均收益率排名前5的类中所有股票标记为1
ifi<5:
dt1[dt1[:,len(dt1[0,:])-1]==cr[i],len(dt1[0,:])-1]=1
#(聚类结果列变为因变量+1)dt1[dt1[:,len(dt1[0,:])-1]!=1,len(dt1[0,:])-1]=-1
#(聚类结果列变为因变量-1)训练样本与预测样本的构建第10章
R1=FR1(DA,'2017-06-01','2017-08-31',400)R2=FR2(DA,R1[0],R1[1],R1[2],'2017-09-01','2017-09-30',20)dt2=R2[0]
#2017年6月1日至2017年8月31日的股票价格形态特征数据+聚类结果列cr2=pd.Series(R2[4])crr=cr2.sort_values(ascending=False)cr=list(crr.index)foriinrange(len(crr)):ifi<5:dt2[dt2[:,len(dt2[0,:])-1]==cr[i],len(dt2[0,:])-1]=1
#(聚类结果列变为因变量+1)dt2[dt2[:,len(dt2[0,:])-1]!=1,len(dt2[0,:])-1]=-1
#(聚类结果列变为因变量-1)#构造训练样本importnumpyasnpdt=np.vstack((dt2,dt1))x=dt[:,1:-1]#训练样本的Xy=dt[:,len(dt[0,:])-1]#训练样本的Y训练样本与预测样本的构建第10章
对于预测样本,选用的是2017年7月1日—2017年9月30日的交易数据计算形态特征,这里调用前面定义的FR1函数来实现。#预测样本的构建R1=FR1(DA,'2017-07-01','2017-09-30',400)dt3=R1[0]x1=dt3[:,1:]#交易数据为2017年7月1日~2017年9月30日的股票价格形态特征数据量化投资策略设计第10章
根据前面构建的训练样本和预测样本,利用支持向量机模型进行训练和预测,如果预测结果为+1,表示该只股票在未来一个月内可能获得比较好的收益,对该只股票以持有期为2017年10月1日—2017年10月31日进行计算投资收益率(期初收盘价买入,期末收盘价卖出),最终将所有预测结果为+1的股票收益率求和,即得到投资策略的总收益率,并以同期的沪深300指数收益率作为基准进行比较。fromsklearnimportsvmclf=svm.SVC()clf.fit(x,y)res=clf.predict(x1)#支持向量机预测结果code=dt3[res==1,0]list_r=[]#预定义列表,用于存放预测结果为+1的股票收益率list_code=[]#预定义列表,用于存放预测结果为+1的股票代码foriinrange(len(code)):
I1=DA['Trddt'].values>='2017-10-01'
I2=DA['Trddt'].values<='2017-10-31'
I3=DA['Stkcd'].values==code[i]
I=I1&I2&I3
dta=DA.iloc[I,[2]]['Clsprc'].values
iflen(dta)>1:
r=(dta[len(dta)-1]-dta[0])/dta[0]
list_r.append(r)
list_code.append(code[i])result={'code':list_code,'r':list_r}result=pd.DataFrame(result)#结果整理total_r=sum(list_r)
#总收益率####沪深300指数同期收益率的计算indx300=pd.read_excel('index300.xlsx')I1=indx300['Idxtrd01'].values>='2017-10-01'I2=indx300['Idxtrd01'].values<='2017-10-31'In=I1&I2da=indx300.loc[In,'Idxtrd05'].valuesindex300_r=(da[len(da)-1]-da[0])/da[0]量化投资策略设计第10章
其中dt3为待预测的形态特征数据集,res为支持向量机的预测结果。例如,行序号为10、13的股票代码000333和002517的股票预测结果为+1,表示未来持有期为1个月可能获得较好的收益。事实result已
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生物标志物与药物不良反应预测模型
- 生物墨水的生物安全性评价方法
- 生活质量评估在再程放疗方案选择中的作用
- 电子商务专家认证考试内容解析
- 产品经理面试题及产品思维训练
- 深度解析(2026)《GBT 19496-2004钻芯检测离心高强混凝土抗压强度试验方法》
- 保洁绿化领班工作创新与问题解决方法含答案
- 电子工程师技术支持岗位的常见问题与答案
- 信息录入员岗位面试题及答案
- 环境噪声污染的统计心血管效应与结果防护策略
- 2025年广西继续教育公需科目考试试题和答案
- 俄乌之战课件
- 2026年铁岭卫生职业学院单招职业倾向性考试题库及参考答案详解一套
- 2025年厨房燃气报警器安装合同
- 环孢素的临床应用
- 国开电大《11837行政法与行政诉讼法》期末答题库(机考字纸考)排序版 - 稻壳阅读器2025年12月13日12时58分54秒
- 2025河北廊坊市工会社会工作公开招聘岗位服务人员19名考试笔试备考试题及答案解析
- 2025国家电投集团中国重燃招聘18人笔试历年参考题库附带答案详解
- 框架日常维修协议书
- 智研咨询发布-2025年中国电子变压器件行业市场运行态势及发展趋势预测报告
- 创伤后成长(PTG)视角下叙事护理技术的临床应用
评论
0/150
提交评论