001002商品期货跨期套利策略

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

如何运用QIA开发量化投资策略——商品期货跨期套利策略国泰安信息技术有限公司研究与创新中心“宽系列”产品之QIA目录策略背景3绩效分析4策略开发2第1页量化投资策略开发实例历史回验策略背景——市场情况第2页量化投资策略开发实例沪铝1306与沪铝1307的价差保持在极小的范围内。策略背景——策略原理跨期套利是指在同一市场(即同一交易所)买入(或卖出)某一交割月份期货合约的同时,卖出(或买入)另一交割月份的同种商品期货合约,以期在两个不同月份的期货合约价差出现有利变化时对冲平仓获利。本策略实证对象为Al1303和Al1304,以2012年4月17日至2013年3月8日为回验周期,利用过去100分钟内1分钟频率交易标的的收盘价作为决策依据,每分钟交易一次。第3页量化投资策略开发实例策略背景——策略流程第4页量化投资策略开发实例订阅100分钟的Al1303、Al1304的收盘价数据计算价差序列D=al1303-al1304Spreads=D-mean(D)平仓是否开仓是否满足平仓条件是否保持之前仓位是开仓否否是否满足开仓条件是对残差进行排序策略开发对策略函数的名称、参数、时间、交易标的及所需数据的配置策略流程的实现对策略回验参数、交易品种交易费用、绩效指标的数据参数的配置第5页量化投资策略开发实例命令窗口运行界面工具运行Stkcd.xml配置?xmlversion=1.0encoding=utf-8?StrategycodeContractMultiplier=300Currency=CNYMarginLevel=0.12“MaxShare=30exchangeType=ExchangeType.SHFEid=AL1303name=AL1303/codeContractMultiplier=300Currency=CNYMarginLevel=0.12“MaxShare=30exchangeType=ExchangeType.SHFE“id=AL1304name=AL1304//Strategy每个code标签下,ContractMultiplier、Currency、MarginLevel、MaxShare、为实时交易部分配置,历史回验设置无效。ContractMultiplier:合约乘数Currency:货币种类MarginLevel:交易保证金比例MaxShare:当前合约的最大持仓量exchangeType表示市场类型枚举id:交易标的代码第6页市场类型枚举SZSE深圳证券交易所SSE上海证券交易所HKEX香港联合交易所CFFEX中国金融期货交易所ZCE郑州期货交易所DCE大连期货交易所SHFE上海期货交易所策略开发——交易标的配置%Stkcd.xml名字可更换量化投资策略开发实例StrategyCfg.xml配置?xmlversion=1.0encoding=utf-8?StrategystrategyFunctionname=“crossArbitrage/strategyArgumentsrebalanceCycle=1returnCalFrequency=TimeIntervals.MIN01/FactorDataCfgdateListType=DateListType.TradinglocalPath=pwd\cacheData“periodType=PeriodType.IFTradingPeriodtickerList=stkcd.xml/datadecisionDataLength=100fieldname=CPfrequency=TimeIntervals.MIN01//Strategy第7页策略开发——策略运行配置全景展示量化投资策略开发实例策略开发——函数名称及调仓配置StrategyCfg.xml配置?xmlversion=1.0encoding=utf-8?StrategystrategyFunctionname=“crossArbitrage/strategyArgumentsrebalanceCycle=1returnCalFrequency=TimeIntervals.MIN01/标签strategyFunction(用途:用户编写的策略函数名称):name填入策略函数名。标签strategyArguments(用途:策略的参数配置):rebalanceCycle:重平衡周期,策略回验时,每过rebalanceCycle根bar将进行一次投资决策,计算目标持仓。Bar的大小取决于returnCalFrequency;returnCalFrequency:计算收益率的频率第8页量化投资策略开发实例%StrategyCfg.xml名字可更换策略开发——策略数据及缓存配置StrategyCfg.xml配置FactorDataCfgdateListType=DateListType.TradinglocalPath=pwd\cacheData“periodType=PeriodType.IFTradingPeriodtickerList=stkcd.xml/标签FactorDataCfg(用途:策略的时间及标的配置)dateListType:表示日期类型:Trading,交易日;Working,工作日;localPath:本地Mat缓存文件的存储路径(绝对路径),Matlab中,pwd表示当前的工作空间路径;periodType:交易时间配置信息;tickerList:表示读取的证券代码列表,可以是定义交易标的的xml文件路径名称,也可以是板块,支持的板块列表有:(’AllAStock,’SHA’,’SZA’,’AllBStock’,’SHB’,’SZB’,’HS300’)第9页量化投资策略开发实例%StrategyCfg.xml名字可更换datadecisionDataLength=100fieldname=CPfrequency=TimeIntervals.MIN01//Strategy标签data(用途:策略决策所需数据配置)策略决策时每需要一种数据,则需要配置一个data标签decisionDataLength:每次策略函数计算目标持仓权重时所需的改数据长度,必须为大于等于1的整数;fieldname:数据的字段名;frequency:数据的频率,有SEC01(1秒),SEC05(5秒),SEC15(15秒),SEC30(30秒),MIN01(1分),MIN05(5分),MIN15(15分),DAY01(1天);第10页策略开发——策略数据配置量化投资策略开发实例StrategyCfg.xml配置?xmlversion=1.0encoding=utf-8?StrategystrategyFunctionname=“crossArbitrage/strategyArgumentsrebalanceCycle=1returnCalFrequency=TimeIntervals.MIN01/FactorDataCfgdateListType=DateListType.TradinglocalPath=pwd\cacheData“periodType=PeriodType.IFTradingPeriodtickerList=stkcd.xml/datadecisionDataLength=100fieldname=CPfrequency=TimeIntervals.MIN01//Strategy第11页策略开发——策略运行配置全景展示量化投资策略开发实例策略开发——主程序第12页function[portfolio,newStateMatirx]=crossArbitrage(decisionData,stateMatirx)输入:1、decisionData:结构体,存储策略决策所需数据;(1)decisionData.time:策略决策的时间(2)decisionData.varList:策略决策所需数据的名称列表;(3)decisionData.factorN_frequency:策略决策所需数据结构体(4)decisionData.factorN_frequency.data:策略决策所需数据矩阵;(5)decisionData.factorN_frequency.timeList:矩阵的列索引,表示矩阵中每列代表的时间点;(6)decisionData.factorN_frequency.tickerList:矩阵的行索引,表示矩阵中每列代表的交易标的;2、stateMatrix:策略函数上次存储的状态信息;输出:1、portfolio:策略函数经过运算后得到的,目标投资组合资金权重序列,维度必须和订阅的交易标的数目相同;量化投资策略开发实例策略开发——变量赋值及初始化%变量赋值factor=decisionData.CP_MIN01.data;%初始化ifisempty(stateMatrix)portfolio=zeros(size(factor,1),1);index=0;elseportfolio=stateMatrix.portfolio;index=stateMatrix.index;end%交易规则设置准备spreads=factor(1,:)-factor(2,:)-mean(factor(1,:)-factor(2,:));spreads_sort=sort(spreads);第13页量化投资策略开发实例策略开发——开平仓设置%交易规则设置%当价差进入窗口内价差从小到大排序序列的前百分之二十时,对Al1303做多,Al1304做空;if(spreads(end)spreads_sort(20))&&(index==0)portfolio=[5,-5];index=1;elseifspreads(end)spreads_sort(80)&&(index==0)%当价差进入窗口内价差从小到大排序序列的后百分之二十时,对Al1303做空,Al1304做多;portfolio=[-5,5];index=-1;%当价差回归零均值后,平仓。elseif(spreads(end)0)&&(index==1)portfolio=[0;0];index=0;%空仓平仓elseif(spreads(end)0)&&(index==-1)portfolio=[0;0];index=0;end%新状态矩阵赋值newStateMatrix.portfolio=portfolio;newStateMatrix.index=index;end第14页量化投资策略开发实例策略开发——主程序整体展示function[portfolio,newStateMatrix]=crossArbitrage(decisionData,stateMatrix)%%%商品期货跨期套利策略(实例2.2)%变量赋值factor=decisionData.CP_MIN01.data;%初始化ifisempty(stateMatrix)portfolio=zeros(size(factor,1),1);index=0;elseportfolio=stateMatrix.portfolio;index=stateMatrix.index;end%交易规则设置准备spreads=factor(1,:)-factor(2,:)-mean(factor(1,:)-factor(2,:));spreads_sort=sort(spreads);%交易规则设置%当价差进入窗口内价差从小到大排序序列的前百分之二十时,对Al1303做多,Al1304做空;if(spreads(end)spreads_sort(20))&&(index==0)portfolio=[5,-5];index=1;elseifsprea

1 / 30
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功