全部版块 我的主页
论坛 金融投资论坛 六区 金融学(理论版) 金融工程(数量金融)与金融衍生品
4760 8
2013-05-12
这是一个基于支持向量回归机建立的量化择时工具。为方便作为交易策略中择时工具使用,对1.1版本改善了函数句柄和算法。安装后直接使用SVR00函数即可。
本工具箱使用遗传算法对三参数进行寻优处理,适合用于金融产品等其他数据的预测问题。
发在数据挖掘板块,没人用,挺好的东西怎么就……转到本版来,希望有人关注吧。。。
支持向量机是基于小样本回归的神经网络,关于预测效果,不吹牛,我用沪深300作为训练集进行参数寻优、训练集回归。直接上图:




SVR文件夹包括三个部分:
Charles Li:
         SVR00为主函数;SVR001为归一化函数;SVR002为主成分降维函数;
         SVR03为遗传算法寻优函数;SVR04为SVR模型预测函数
GA: 设菲尔德大学开发的遗传算法工具箱
LibSVM:台湾林智仁先生开发的LivSVM工具箱
HuShen300Test.mat:
                 该文件保存的是沪深300指数从2012年到2013年3月的数据。其中
                 训练集为2012年到2013年2月,预测集为2013年2月到3月。选取
                 开盘价、最高价、最低价、成交金额、成交量为自变量,收盘价
                 为因变量,步长为5。文件用于测试使用。将SVR文件夹添加路径
                 后输入:
                 load 1.mat
                 [ptest,ptrain,model,cmd]=SVR00(Test_y,Test_x,Train_y,Train_x,1)
                 即可
SVRGenerator.m:
              该函数用来将倒入数据生成程序需要的格式。其中num1为训练集
              矩阵,num2为预测集矩阵,第一列保存因变量,其后任意列数保
              存任意数量的自变量;bc为步长。
              调用格式为:
              [Train_x,Train_y,Test_x,Test_y]=SVRGenerator(num1,num2,bc)
每个函数的使用说明详见对应的.m文件。
本工具箱借鉴了 libsvm-[farutoUltimate3.1]的部分内容,根据预测需求删改了部分内容,并对函数句柄加以优化,使之更加简洁易懂,更适合金融预测、数据挖掘使用。
辛辛苦苦开发的工具箱,为了方便大家便宜卖了,简直是贱卖啊。。。使用、引用还麻烦请注明Charles li SVR 1.0。
如有改进建议欢迎发邮件到spacegoing@gmail.com,由于最近较忙,回复若不及时敬请谅解.
Market Timing---Charles Li SVR1.2.zip
大小:(327.6 KB)

只需: 5 个论坛币  马上下载


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2013-5-12 21:21:13
1.png
2.png
Sorry,刚刚图片没黏贴上……
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-13 10:00:02
局部数据变化不大时预测比较准, 大起大落时可以看到有明显的“相位差”,预测比实际值落后一步
用普通时间序列模型做的话, 不知道结果是不是差不多。
希望在画上两条线, 表示90%的置信区间,即理论是90%的可能性盖住实际值,如果你的90%置信区间比时间序列模型要“窄”,说明你的方法比较好, 如果差不多的话,还不如用时间序列模型,我感觉你的计算量比较大
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-13 16:56:52
xuruilong100 发表于 2013-5-13 10:00
局部数据变化不大时预测比较准, 大起大落时可以看到有明显的“相位差”,预测比实际值落后一步
用普通时间 ...
      非常感谢!我要需要向大家交代一下。例子中我使用开盘价、最高价、最低价、成交量对收盘价回归,人为设定滞后期为5、预测步长为5,并没有进行滞后期识别,训练集选择没有任何依据,仅仅是为了展示一下;另外,模型没有采用多步策略,而是通过历史数据直接训练一次得到模型,有大量的信息冗余。
    特别说明一下,我编写的SVMGenerator只能生成符合工具箱需要的数据格式,应付作业题是足够了,不过如果需要实战中应用,必须制定交易策略进行回测,自己另外编写一个能够识别趋势、滞后期、步长程序。因为支持向量机是小样本非线性预测,特别适合运用于多步直接策略,对基于趋势突破的交易策略非常适用。这里仅仅是给大家提供一个思路。
    至于您提到的问题。首先,因为工具箱中的支持向量回归机使用非线性方法,通过RBF核函数进行低维空间到高维的线性映射,也就是说默认沪深300是非线性的,因此没有给出置信区间。如果您需要与时间序列模型进行比较,可以使用均方误差等指标。
    关于计算复杂度的问题,由于我自身需要因此在SVR03.m函数中将最大遗传代数设置成了100,大家可以根据自己需要修改最大遗传代数提高速度。对于一般的股票数据20代是比较合适的。
    感谢您的回复,希望回答对您有所帮助。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-13 22:46:03
如果要比较的话我有一个方案,用一个时间序列模型模拟一组数据,然后用你的方法预测;然后再反过来做,用你的方法模拟一组数据,用时间序列模型预测。
其实我觉得股价也好,指数也好,相邻两点间的相对差别并不大,我可以告诉你两种数据,股票融资买入资金数和融券卖出股数,波动非常剧烈,你可以试一试你的方法预测的准不准
http://data.eastmoney.com/rzrq/sh.html
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2013-5-22 21:54:07
spacegoing 发表于 2013-5-12 21:21
Sorry,刚刚图片没黏贴上……
我下载了你的代码回家去慢慢研究,谢谢!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群