机器学习:我们能用机器学习来建立投资模型吗

机器学习模型能解决什么投资问题?

利用机器学习解决投资问题的思路,其实和在互联网领域解决推荐、广告问题的思路是一样的,只不过利用的特征完全变了。推荐、广告模型利用的是用户的年龄、性别,物品的类别、价格等特征,投资领域的模型利用的是技术面因子、宏观因子、基本面因子等投资领域的特征。

训练样本和特征如何生成?在训练模型之前,我们首先要解决训练样本如何生成,以及训练所需的特征和标签如何处理的问题。那么,对于一个预测股票涨跌的问题,我们一般使用滑动窗口的形式去生成训练样本。如图 2,它是某只股票半年时间内的价格走势图。在生成训练样本时,我们先选取一个滑动窗口长度,比如 10 个数据点。然后,选择一个滑动起点,从这个起点开始,逐个数据点地向右侧滑动,每滑动一次生成一个训练样本。

image.png

在滑动过程中,每个窗口内的行情数据就作为历史数据,我们可以从中提取出行情相关的特征。而窗口外右侧的第一帧数据,就作为样本的标签。如果是涨的话,就标记该样本是正样本,跌的话就是负样本。当然,如果你希望训练的是一个回归模型,也可以把股票的涨跌幅度这个连续值当作样本标签。直到向右滑动结束,处理完全部的行情数据,我们就完成了样本的生成。特征一般分为两大部分,一是场内行情特征,二是场外特征。其中,场内行情特征指的是利用滑动窗口内部的行情数据,比如股票价格、成交量、换手率等信息处理出来的特征。场外特征是当时当刻跟这只股票相关的所有其他数据,比如这家公司基本面的数据,宏观经济数据等等。

但需要注意,不管什么特征都要遵循一个基本原则,就是一定要用滑动窗口那个所在时间段的数据生成当时当刻的特征,而不能引入窗口之后的任何数据。因为这样就相当于引入了未来信息,属于模型训练中的作弊行为。

什么样的模型结构适合股价预测?
现在,我们的样本和特征已经准备好了,下一步就是选择合适的模型结构进行股价预测了。如果你有一些机器学习的背景知识,我想通过观察行情数据的特点,你一定能够猜到到底什么模型适合股票价格的预测。

因为行情数据天然是序列化的,所以序列模型自然就是最适合处理行情数据的模型。事实上,国内的量化投资公司某方,以及国外的量化巨头 two sigma,都披露过序列模型在它们投资场景下的成功应用。序列模型也曾经在 two sigma 举办的股票预测大赛中大放异彩

对于一个序列模型来说,最重要的是要清楚它的基本结构和输入输出。下面的图 4 就是一个经典的序列模型结构示意图。其中 x1 到 xt+1 就是它的输入,y1 到 yt+1 是它的输出,每个蓝色模块间的 at,就是不同状态间传递的权重信息。

image.png

图4 序列模型的结构示意图那序列模型是如何应用在预测股价这个问题上的呢?其实这个过程是很直观的。输入 xt 其实就代表每一时刻股价相关的特征向量,你可以把我们准备好的多因子特征都放到这个向量中去。比如,向量的第一个维度代表成交量,第二个维度代表上一刻的涨跌幅度,第三个维度代表动量因子,等等。输出 yt 代表的就是我们希望利用 xt 预测出的结果,就是 t 时刻下一刻的股票涨跌结果。

现在你清楚这两点就可以,关于序列模型的具体结构先不用多想。因为成熟的机器学习工具,如 TensorFlow、PyTorch 等,都已经为你封装好了模型结构,你直接调用就可以了。

清楚了输入和输出,下一步就是利用上面介绍的滑动窗口的方法,准备好每个时刻的训练样本,然后调用 TensorFlow 等平台的训练接口,训练好一个序列模型。接下来,我们就可以利用训练好的序列模型进行预测了。在实盘预测中,由于序列模型依赖于当前时刻前 t 个时刻的所有输入特征,所以我们也要准备好 x1 到 xt+1 的输入,然后利用这些输入去预测 yt+1 这个输出,也就是下一刻的股票涨跌。

然后,再根据预测结果来决定当前的投资行为,比如买入或卖出。这就是利用序列模型预测股票的全过程。在实际操作中,当然有大量细节工作需要准备,比如特征的选取,样本的处理,预估相关服务的搭建,等等。此外,模型结构的选择也对预测结果有关键性的影响,比如经典的序列模型就包括 RNN、LSTM、GRU 等等。

机器学习模型的局限性
虽然机器学习模型已经在投资领域取得了不小的成功,但我们要清楚的是,机器学习也不是解决投资问题的“银弹”。在实际应用中,机器学习模型,特别是深度学习模型还是存在着一定的局限性。这里,我结合专业团队的一些经验总结,列出了三点主要的局限性,供你参考。

  • 复杂模型容易产生严重的过拟合现象。
  • 由于深度学习的黑盒特征,在模型效果变差时,我们很难给出有效的解释。
  • 和推荐系统数据相比,金融数据里的噪声更大,很多数据点都是杂乱的随机波动。而且,埋藏在杂乱数据下的潜在规律也在随时变化,这让深度学习模型学习到稳定数据模式的难度变大,且模型的有效期更短。这三点局限性,不仅会困扰散户投资者,而且也让一线的量化投资团队相当头疼。

为了尽量规避这三点局限性,专业的量化团队会在模型结构优化、数据清洗、模型实时更新等多个方向上进行改进。我们可以在技术上学习这些做法,但同时也要牢记:作为散户,我们的时间、精力和资源都是有限的,一定要把有限的时间用在解决一个规模较小的问题上,这样才有可能在一个点上击败专业投资者。

此文章为7月Day25学习笔记,内容来源于极客时间《程序员的个人财富课 》,强烈推荐该课程



喜欢的朋友记得点赞、收藏、关注哦!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/908390.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FBX福币交易所国际油价突然大涨!美伊针锋相对

11月4日早上,国际原油大幅高开。WTI原油一度涨超2%。 消息面上,主要产油国宣布延长自愿减产措施至12月底 FBX福币凭借用户友好的界面和对透明度的承诺,迅速在加密货币市场中崭露头角,成为广大用户信赖的平台。 石油输出国组织(欧佩克)发表声明说,8个欧佩克和非欧佩克产油国决…

Flarum:简洁而强大的开源论坛软件

Flarum简介 Flarum是一款开源论坛软件,以其简洁、快速和易用性而闻名。它继承了esoTalk和FluxBB的优良传统,旨在提供一个不复杂、不臃肿的论坛体验。Flarum的核心优势在于: 快速、简单: Flarum使用PHP构建,易于部署&…

独立开发的个人品牌打造:个人IP与独立开发的结合

引言 个人品牌程序员也需要打造。在当今的创意经济中,个人IP与独立开发的结合成为了一种趋势,为个体带来了前所未有的机会和可能性。本文将探讨如何通过打造个人IP来增强独立开发的影响力,并探索这种结合为个人带来的潜在价值。 个人IP的重…

细说STM32单片机USART中断收发RTC实时时间并改善其鲁棒性的方法

目录 一、工程目的 1、 目标 2、通讯协议及应对错误指令的处理目标 二、工程设置 三、程序改进 四、下载与调试 1、合规的指令 2、 proBuffer[0]不是# 3、proBuffer[4]不是; 4、指令长度小于5 5、指令长度大于5 6、proBuffer[2]或proBuffer[3]不是数字 7、;位于p…

AI助力医疗:未来的医生会是机器人吗?

内容概要 在这一场医疗科技的新浪潮中,AI医疗正以前所未有的速度渗透到各个角落。随着技术的飞速进步,人工智能成为了推动医疗领域革新的重要力量。从精准诊断到个性化治疗,AI正在帮助医生们更快速、准确地分析患者的病情,提高了…

数据结构 ——— 向上调整建堆和向下调整建堆的区别

目录 前言 向下调整算法(默认小堆) 利用向下调整算法对数组建堆 向上调整建堆和向下调整建堆的区别​编辑 向下调整建堆的时间复杂度: 向上调整建堆的时间复杂度: 结论 前言 在上一章讲解到了利用向上调整算法对数组进行…

图数据库 2 | 大数据的演进和数据库的进阶——从数据到大数据、快数据,再到深数据

时至今日,大数据已无处不在,所有行业都在经受大数据的洗礼。但同时我们也发现,不同于传统关系型数据库的表模型,现实世界是非常丰富、高维且相互关联的。此外,我们一旦理解了大数据的演进历程以及对数据库进阶的强需求…

java版询价采购系统 招投标询价竞标投标系统 招投标公告系统源码

在数字化时代,企业需要借助先进的数字化技术来提高工程管理效率和质量。招投标管理系统作为企业内部业务项目管理的重要应用平台,涵盖了门户管理、立项管理、采购项目管理、采购公告管理、考核管理、报表管理、评审管理、企业管理、采购管理和系统管理等…

golang通用后台管理系统02(RSA加密解密,登录密码加密解密)

参考:https://blog.csdn.net/lady_killer9/article/details/118026802 1.加密解密工具类PasswordUtil.go package utilimport ("crypto/rand""crypto/rsa""crypto/x509""encoding/pem""fmt""log"&qu…

性能小钢炮,核显玩3A,最值得买的 8745HS 迷你主机『零刻SER8』,2099的价格是真的香

性能小钢炮,核显玩3A,最值得买的 8745HS 迷你主机『零刻SER8』,2099的价格是真的香 哈喽小伙伴们好,我是Stark-C~ 前一个多月的时候我评测了零刻最新最强大的迷你主机『零刻 SER9』的时候,评论区很多小伙伴都说贵。 …

采购退料单集成方案:从旺店通到金蝶云的API实现

14-采购退料单集成方案:旺店通旗舰奇门数据集成到金蝶云星空 在企业的供应链管理中,采购退料单的高效处理至关重要。为了实现这一目标,我们采用了轻易云数据集成平台,将旺店通旗舰奇门的数据无缝对接到金蝶云星空。本次分享的案例…

Java设计模式(代理模式整理中ing)

一、代理模式 1、代理模式定义: 代理模式:由于某些原因要给某对象提供一个代理以控制对该对象的访问,这时访问对象不适合或者不能够直接引用目标对象,代理对象作为访问对象与目标对象之间的中介进行连接调控调用。 2、代理模式的…

大模型的常用指令格式 --> ShareGPT 和 Alpaca (以 llama-factory 里的设置为例)

ShareGPT 格式 提出背景:ShareGPT 格式起初来自于用户在社交平台上分享与聊天模型的对话记录,这些记录涵盖了丰富的多轮对话内容。研究者们意识到,这类真实的对话数据可以帮助模型更好地学习多轮对话的上下文保持、回应生成等能力。因此&…

AI问答:Google Authenticator(谷歌动态口令) / 设置及操作过程记录

Google Authenticator,即谷歌身份验证器,是谷歌推出的一款基于时间的一次性密码(Time-based One-time Password,简称TOTP)验证工具。以下是关于Google Authenticator验证的详细解释。 一、工作原理 Google Authentic…

PD虚拟机问题:“无法连接到 Parallels 服务” 解决方法

在使用Parallels Desktop 虚拟机的时候,启动时出现以下错误消息: a. Parallels Desktop 无法启动 b. 无法连接至 Parallels服务 c. 在该虚拟机中没有安装操作系统 遇到以上3种问题怎么解决呢?可能的原因如下: 过时的 macO…

干掉复杂的工具类,Hutool 工具库确实香!

Hutool 是一个超全的 Java 工具库,深受国内开发者的喜爱。目前确实是成为了国内使用最广的工具库之一了, Gitee 上的 Star 数也到了 23k 。最近新版本有所改动,这里分享一下最新版本的介绍。 一、Hutool简介 Hutool 真心是一个不错的国产 J…

Rust 力扣 - 2461. 长度为 K 子数组中的最大和

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们遍历长度为k的窗口,用一个哈希表记录窗口内的所有元素(用来对窗口内元素去重),我们取哈希表中元素数量等于k的窗口总和的最大值 题解代码 use std::collecti…

LeetCode 684.冗余连接:拓扑排序+哈希表(O(n)) 或 并查集(O(nlog n)-O(nα(n)))

【LetMeFly】684.冗余连接:拓扑排序哈希表(O(n)) 或 并查集(O(nlog n)-O(nα(n))) 力扣题目链接:https://leetcode.cn/problems/redundant-connection/ 树可以看成是一个连通且 无环 的 无向 图。 给定往…

数字IC后端实现之Innovus Place跑完density爆涨案例分析

下图所示为咱们社区a7core后端训练营学员的floorplan。 数字IC后端实现 | Innovus各个阶段常用命令汇总 该学员跑placement前density是59.467%,但跑完place后density飙升到87.68%。 仔细查看place过程中的log就可以发现Density一路飙升! 数字IC后端物…

项目管理软件:5款甘特图工具测评

在项目管理中,甘特图作为一种直观且高效的任务进度展示工具,被广泛应用于各个行业。以下是几款功能强大、易于使用的甘特图工具,它们能够帮助项目经理更好地规划、跟踪和管理项目进度。 1、进度猫 进度猫是国内项目管理新秀,是…