ps:小弟只会一些简单的函数操作,不知道从何可以改进,在此先谢过了
附上小弟整理的大宗商品相关性统计及手续费等资料
{:2_27:}{:2_27:}{:2_27:}{:2_27:}
程序思想
组合构造,小编从房地产相关的大宗商品中,选出4种相关性较高的商品,结合4种商品以及股指,算出一个指数,通过比较4种商品与所算出指数差价与前n分钟的差价变化,来选择性的买多2种卖空2种。ps (以绝对价格而不是回报,追求市场上更加明显的逻辑)
第一步 数据采集与处理小编从房地产相关的大宗商品中,选出4种商品(以处选择以经验及参考小编整理的所有商品相关性表),分别为 FG ,I ,J, RB (玻璃 铁矿石 焦煤 螺纹钢)从multicharts 导出其近一个多月的tick数据 ,再加上股指主力一个多月的历史数据,数据算是全有了。
得到5个csv文件。导入到matlab,如下图,均为n*1的向量
由于商品与股指交易时间不同以及很多商品tick数据的缺失,所以要进行数据的初步整理
方法如下,以股指的时间序列为标准,在时间向中把每秒中的第二个数据加上一个半秒的时间(这样区分每秒2个tick数据的差别),再将4种商品的时间序列对齐到股指的时间序列。
代码中timegap为半秒时间
为对齐函数,nFG nI nJ nRB 为各商品序列长度
newdata为最后生成的整理好的矩阵
处理得到如下数据(运算时间会要几分钟)
第二步 指标编制与交易信号
指标index=ratio*(股指/beta股指)+(1-ratio)*(FG/FG的beta+I/I的beta+J/J的beta+RB/RB的beta)
其中beta为由各商品波动率算得。
如下图 ratio为股指与商品之间的比例 gapFG gapI gapJ gapRB为商品与运算出的指数之间差值time1时间内的变动值 share为各商品需进出场手数(由波动率与商品合约价值算出) fee为手续费 。value 为该商品每点所代表价值
编制交易信号signal矩阵
如下图,由于商品数据缺失是由于当时tick没有发生交易所产生,而不是当时没有价格,故可以简单的以之前价格代替当前价格
signal矩阵中 1代表买 -1代表卖
timebegin 和 timeend为控制交易时间的变量
marketpos为中间参数 运算时需要不断判断当前某商品是否已经持仓
signal(i,9)时间控制
判断中的条件分别是 是否已经持有多单 是否满足>gap的条件 是否为同一天
中间挂单成交测算(非必须)
最后计算
本例中还未进行一些参数的优化,因为花费时间会有点长
附件中包含所有数据以及代码
tickdata为原始数据
tickdata2为初步处理后的数据
newest为第一步数据处理
newest2为主函数
test为挂单测算
程序代码.rar
(26 MB)
相关性统计等.rar
(53.95 KB)


雷达卡






京公网安备 11010802022788号







