6

SVR预测股票开盘价

一、PS

  1. 程序为验证算法的有效性,并未加入任何股票筛选机制。回测有些慢,选用上证50作为股票池。
  2. 原本使用前一天数据预测当天的,但在系统中,交易策略被具体化为根据一定的规则,判断每个交易日以开盘价买入多少数量的何种股票。回测不影响,但在使模拟盘时无法获取当天的close等,所以将程序改为用地n-2个交易日的数据作为自变量,第n个交易日的open作为因变量。( 简单的说就是用昨天的数据拟合明天的open。)
  3. 对于股票指数来说,大多数时候都无法对其进行精确的预测,本策略只做参考。
  4. 关于止损,感觉并不起作用,不知是不是代码编写存在错误,还望大牛指正。(查看发现会持有一些停牌的股票导致无法卖出,但是看收益曲线感觉还是怪怪的 – -!)
  5. 程序写的有点乱七八糟的,还望大家见谅,多有不足还望各位指导!

二、策略概述

本策略主旨思想是利用SVR建立的模型对股票每日开盘价进行回归拟合,即把前一日的 (‘open’,’high’,’low’,’close’,’volumn’,’volume_money’) 作为当日 ‘open’ 的自变量,当日 ‘open’ 作为因变量。SVR的实现使用第三方库scikit-learn

三、SVR

SVR详情
SVR参考文献见下方

SVR参考文献

支持向量机回归

支持向量分类的方法可以扩展到解决回归问题。这种方法被称为支持向量回归。支持向量分类(如上所述)所产生的模型仅依赖于数据的一个子集,因为建立模型的成本函数不关心位于保证金以外的数据点。

支持向量回归有三种不同的实现方式:SVR、NuSVR和linearsvr。linearsvr提供了比SVR更快的实现方法但只考虑线性核函数,而NuSVR和SVR和linearsvr相比公式不同。拟合方法将使用参数向量X,y,在这种情况下,y预计将是浮点值,而不是整数值:

SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma=’auto’, kernel=’rbf’, max_iter=-1, shrinking=True, tol=0.001, verbose=False)

array([ 1.5])

下面是支持向量回归(SVR)使用线性和非线性的内核:

SVR