Java波动型数据预测_干货|时间序列的波动分解与预测

波动

波动(volatility)是自然界和金融市场中最为常见的现象。对于投资者而言,波动是赚取交易利润的重要来源之一。根据有效市场理论,市场价格会及时反映当前最新的相关信息。正因为市场信息源源不绝,因此每一个交易品种的价格都在不断地变化当中。但是对于交易者而言,他们只能看到在不同因素影响下最终的波动表现。为了要更加精准地对价格波动进行分析和预测,交易者需要首先对变化进行解构(decomposition), 分解出不同因子的时间变化序列,然后将不同的波动因子在未来某个时间的预测值再度组合,得出该时间点的整体预测值。

时间序列

时间序列的波动分解过程类似于一个多元回归方程,也就是用多个自变量(因子)来解释一个因变量(波动)。只不过这些变量都涉及到某个或者一系列的具体时间点上的价格波动。

212250667_1_20210107011950319

大体而言,一个价格的时间序列可以分为以下三种因子的组合:一是趋势性因子,这是一种覆盖整个时间序列的影响因素 (有的教材将趋势性因子进一步分解出一个循环因子)。其次是季节性波动因子,这是一种以某个时间间隔为规律反复出现并消失的影响因素。最后是随机性因子,这是一种不与时间相关的影响因素。实际操作中,这三种因子有可能存在一个或者多个,也可能不存在。

举例说明

如果我们要对债券的收益率进行预测,显然市场的无风险利率和债券的收益评级都属于趋势性因子。而季末、年末的资金变动情况则属于季节性因子。最后,我们将市场本身的交易和每日资金供需情况造成的影响归类于随机性因子,因为这些供需基本是由一些偶发的大额资金交易所造成,对于市场而言是无序的。

优势

使用波动分解的最大好处是可以将复杂的时间序列变成一系列简单而有序的波动组合,从而实现可预测性。因为根据傅里叶变换原理,所有的周期信号可以用一系列(有限个或者无穷多了)正弦波的叠加来表示。一个复杂的时间序列是无法简单从t0预测到t1的,但是如果我们将其分解成简单的可预测序列(趋势性因子+波动因子)和随机序列(随机性因子),因为随机性因子的期望值是0,那么我们只需要把可预测序列在t1的结果预测出来,加上一个期望值为0的随机性因子,那么这个结果就成为了这个复杂时间序列的理论上最优的无偏期望值。

劣势

虽然波动分解的理论很完美,但是实际中的应用却非常骨感。在实际的操作中,波动分解往往存在着一些固有的缺陷。首先,季节性因子的识别存在不确定性。要么通过预测者本身的经验来指定预期的季节(例如按季度或者月份进行识别),要么使用软件自动识别。但无论哪种识别方式得出来的季节性因子,要么可能存在逻辑性不合理(过度数据挖掘),要么识别出来的因子影响力很低意义不大。

其次,随机性因子虽然在整体的时间序列上的均值和某个未来时间点的期望值为0,但是具体到某一个具体的时间点,随机事件还是有可能产生较为显著的影响(比如前几年较为著名的光大“乌龙指”事件)。

最后,正如“市场有效假设”和“反身性原理”所隐含的道理:当一个盈利模式为大家所熟知的时候,这个模式的盈利能力将会被太多的使用者稀释乃至消失。

参考文献

张成思. (2012). 金融计量学: 时间序列分析视角 (pp. 24-225). 中国人民大学出版社

来源:量化投资俱乐部

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、下载并安装mysql,将脚本执行至数据库中; 2、配置java环境,使用jdk8,配置环境变量,下载IntelliJ IDEA 2019.2.4,该工具为java代码编译器 3、下载Maven,配置至环境变量(百度搜索很多),将构建器为Maven,类库配置成阿里库(方法:百度搜索很多很多) 4、将工程导入后,在application-local.yml文件中配置数据库 5、在logback-prod.xml文件中配置log日志 6、配置完毕后,即可启动 访问地址:http://localhost:8082/anime/login.html 用户名:admin 密码:admin V:china1866 1、 登录 2、 首页 3、 权限管理-用户管理 4、 权限管理-添加用户数据 5、 交通数据管理-查看交通数据 6、 交通数据管理-添加交通数据 7、 交通预测-交通数据预测 脚本: CREATE TABLE `traffic_data_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '序列', `trafficId` VARCHAR(50) NULL DEFAULT NULL COMMENT '交通数据编号', `trafficContent` VARCHAR(50) NULL DEFAULT NULL COMMENT '交通状况', `trafficSection` VARCHAR(200) NULL DEFAULT NULL COMMENT '交通路段', `trafficMan` VARCHAR(200) NULL DEFAULT NULL COMMENT '上报人', `trafficDate` VARCHAR(200) NULL DEFAULT NULL COMMENT '上报时间', `status` VARCHAR(200) NULL DEFAULT NULL COMMENT '交通状态', PRIMARY KEY (`id`) ) COMMENT='交通数据表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=44 ; CREATE TABLE `sys_user_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `role_id` INT(11) NULL DEFAULT NULL COMMENT '角色ID', `user_id` VARCHAR(50) NOT NULL COMMENT '用户ID', `user_name` VARCHAR(100) NOT NULL COMMENT '用户名', `status` INT(11) NOT NULL COMMENT '是否有效0:false\\\\1:true', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(100) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(100) NULL DEFAULT NULL, `password` VARCHAR(128) NOT NULL, `tenantcode` VARCHAR(50) NOT NULL, `diskId` VARCHAR(500) NULL DEFAULT NULL, `remarks` VARCHAR(500) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COMMENT='系统用户表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=51 ; CREATE TABLE `sys_role_t` ( `role_id` INT(11) NOT NULL COMMENT '角色ID', `role_name` VARCHAR(200) NOT NULL COMMENT '权限名称', `status` INT(11) NOT NULL COMMENT '是否有效0:true\\\\1:false', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(100) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(100) NULL DEFAULT NULL ) COMMENT='系统角色表' COLLATE='utf8_general_ci' ENGINE=InnoDB ; CREATE TABLE `sys_menu_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '序列', `parent_id` VARCHAR(50) NOT NULL COMMENT '父节点ID', `menu_id` VARCHAR(50) NOT NULL COMMENT '菜单ID', `menu_name` VARCHAR(200) NOT NULL COMMENT '菜单名称', `menu_url` VARCHAR(200) NULL DEFAULT NULL COMMENT '菜单URL', `status` INT(11) NOT NULL COMMENT '有效(0有效,1失效)', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(200) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(200) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COMMENT='菜单表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=33 ; CREATE TABLE `sys_menu_role_relation_t` ( `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '序列', `menu_id` VARCHAR(50) NOT NULL COMMENT '菜单ID', `role_id` VARCHAR(50) NOT NULL COMMENT '角色ID', `status` INT(11) NOT NULL COMMENT '有效(0有效,1失效)', `create_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `create_by` VARCHAR(200) NULL DEFAULT NULL, `last_update_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP, `last_update_by` VARCHAR(200) NULL DEFAULT NULL, PRIMARY KEY (`id`) ) COMMENT='角色与菜单关系表' COLLATE='utf8_general_ci' ENGINE=InnoDB AUTO_INCREMENT=51 ;

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值