python 预测任意天后股票数据_机器学习交易——如何使用回归预测股票价格?【翻译】...

2023-11-01

前几天,我读了一篇关于人工智能到目前为止是如何发展的以及它将走向何方的文章。我被吓了一跳,我也很难理解作者所描绘的未来的可能性。

这是人工智能在医学领域应用的可能性之一:

外科医生可以用她的运动皮层控制一个机器手术刀,而不是用她的手。她可以从手术刀接收到感觉输入,这如同她的第11个手指一般。这就好像她的一个手指是手术刀,她可以不用任何工具就可以做手术,这能让她能够更好的操作。一个没有经验的外科医生在做一个复杂的手术时,可能会让她的几个导师来到现场,给予她指导或建议。如果真的出了什么问题,他们中的一个可以“控制方向盘”,把他们的运动皮层和她的输出连接起来,并且控制她的手来进行接下来的手术。

目前,人工智能和机器学习已经取得了足够的进步,所以我们现在可以将这些机器学习技术应用到交易中,并达到很高的精确程度。

什么是机器学习

机器学习是指计算机算法能自主地从数据和信息中学习并改进现有的算法。

简单地说,机器学习是这样的,以下图这个孩子为例,我们把他当成是一台智能机器。

•给他一个棋盘

•解释游戏的基本规则

•给出100个好的游戏记录

•把孩子锁在房间里(也放些食物和水)

十天后。

在这个象棋学习案例中,小孩就好比机器,过去的游戏记录是数据,象棋基本规则是算法。我们只给机器提供了一个基本的算法和一些数据来学习。机器通过对数据筛选,了解怎样操作能提高赢得游戏的机会,并将这些操作添加到算法中。这就是机器学习的概念。与人类相比,计算机的优势在于,计算机能够快速地完成这一任务,并且是针对更大的数据集和持续的时间段。

然而,这只是一个简单例子,机器学习还有很多其它有趣的应用场景。

此外,人们经常把人工智能、机器学习和深度学习搞混。人工智能是一个包含很多东西的大领域,而机器学习是人工智能的一部分,而深度学习是机器学习的一个子集。下图能够清晰展示三者的关系。

为什么机器学习会如此流行?

如果你深入挖掘,你会发现机器学习已经存在很久了。例如,在1763年,Thomas Bayes发表了一篇文章—— ‘An Essay towards solving a Problem in the Doctrine of Chances’ ,这篇文章试图解决“机会主义”的问题,从此便有了“贝叶斯规则”,这是机器学习中使用的重要算法之一。

但今天,机器学习正以前所未有的速度向前发展。我们可能没有意识到但是机器学习的应用到处都是:

•推荐系统(facebook新闻推送,亚马逊产品推荐)

•自然语言处理(Siri,谷歌语音)

•医学诊断(图像点样)

•目标识别与跟踪(面部识别、车牌读取、跟踪)

•挖掘“大数据”分析(这种模式的股票通常会上涨)

•数据的分类与聚类(欺诈检测、序列挖掘等)

所有这些都是基于从过去的数据中学习并预测未知/新情况的结果的概念,就像人类学习的方式一样。但电脑的优势在于,它们可以处理更大范围的数据,而且复杂得多,这是人类无法做到的。

在当今的环境下,每天都会生成上万亿字节的数据。对于人类来说,要从中进行处理并做出有用的推断是不可能的。当然,聪明的人或许能够做出更好的预测和推断,但机器学习算法在规模和复杂性方面都超过了我们。随着时间的推移,这些计算机的预测将超越人类的水平。

因此,当每个行业都开始以某种形式实践机器学习时,作为一个交易员,为什么不利用这一点来为自己谋利,赚更多的钱呢?你猜怎么着?机器学习和交易是紧密相连的,就像奶酪和葡萄酒一样。一些顶级交易员和对冲基金经理已经使用机器学习算法做出很好的预测,并赚了不少钱!

线性回归是什么?

这里是标准的定义:线性回归是一种建模标量因变量y与一个或多个表示为X的解释变量(或自变量)之间关系的方法。

让我以一种非常基本的方式来解释回归的概念,假设你经营一家生产汽车的公司,你想知道原材料(比如钢铁)的价格变化将如何影响汽车的销售。一般的理解是,钢铁价格的上涨将导致汽车价格的上涨,从而导致需求减少,进而导致销量减少。但是我们如何量化它呢?我们如何根据钢价的变化程度来预测销售量的变化。这时回归就出现了。

让我们看看以下的示例数据:

我们把这个放到图中,这个图叫做散点图

Y轴是汽车的销售量(这是我们的因变量),X轴是钢的价格(自变量)。通过一般的观察,你可以看出,只要钢价下跌,汽车的销量就会提高。

样本数据是回归算法的训练材料。现在,它将帮助我们预测,如果钢铁价格下降到168,我们可能实现什么样的销售。

因此,当您将样本数据放入excel电子表格并执行回归时,您将得到如下所示的回归直线

里面有一些奇怪的数字,为了便于的理解,我只关注其中的一些指标。线性回归函数的目的是找到一条与所有数据点最接近的直线,这样当我们想要计算一个新的因变量的预测时,我们可以选择在X轴上与自变量对应的直线上的后续点。

因此,上述计算是基于下面的方程进行的,也称为回归表达式。

•“Y”——汽车销量或因变量,这就是我们要预测的

•“X”——钢铁价格或自变量,这将被用来预测“Y”

•“b0” -截距是我们的回归直线与“y”轴相交的值

•“b1” -斜率系数,它告诉我们X值增加1个单位将使Y值变化多少个单位

•“ei” -误差项,当我们用这个方程表示的任何变量的关系不完全代表自变量和因变量之间的实际关系时,表示这种差异的变量称为误差项或剩余、扰动或余数项

•R2 - R平方或相关系数,这显示了数据与拟合回归线的距离

如果你看上面的回归图,你会看到一个回归方程,也就是:

y = -4.6129x + 1297.7

在这个方程中,

b1 = -4.6129

b0 + ei = 1297.7

注意,斜率系数或b1是负的,这意味着两个变量(汽车的钢材价格和销售)是负相关的,这意味着当钢材价格上涨时,汽车销量下降。

方程的R2是0.92,说明拟合度很好,这个值越接近1,预测能力越强。

现在说到最精彩的部分,以钢铁价格的任何变化为例,比如价格为168时,我们要计算汽车销售的预期增长。

(汽车销售)= -4.6129 x(168) + 1297.7。

钢价跌至168时,汽车销售量= 522.73辆

即使有多个变量影响了汽车的销售,我们也能计算出一个预测。当回归中有多个自变量时,称为多元回归模型

回归和股票市场

现在,让我向你们展示一个现实生活中的回归在股市中的应用。例如,我们持有Canara银行股票,想看看银行的Nifty(银行指数)价格的变化如何影响到Canara的股价。我们的目标是找到一个函数,它将帮助我们根据指数的给定价格预测Canara银行的价格。

我们将采用Bank Nifty & Canara最近两个月的收盘价,我们将采用调整后的收盘价作为数据一致性。请注意,拥有准确的数据是非常重要的,因为即使是数据中的一个数字也会使回归函数发生显著的变化。

在这些数据中,我们将前40天作为训练数据,后20天作为测试数据,其中我们将检查回归算法的预测与实际数字的接近程度。

使用相同的excel函数,我们根据前40天的训练数据画出了这条回归线它的决定系数(R2)为0.85。这意味着Canara银行和Bank Nifty有着85%的相关性。

这是回归表达式,

让我们看看算法的预测,预测用蓝色标出

看看后20天我们用模型预测的这些数据,我们可以看到预测值与实际值非常接近,预测结果可能是不能用来直接交易的,但这给了我们一个方向。你可以通过添加多个独立变量来进一步改进该方法。这样做将有助于减少剩余或错误,并帮助您更接近实际价格。

我只用了2个月的数据,你可以用几年的数据得到更准确的结果。训练数据越多,结果越好。当你继续向它添加新的市场数据时,你会看到函数会通过重新计算系数和截距值而不断改进。

原文发布时间为:2018-08-23

本文来自云栖社区合作伙伴“BigQuant”,了解相关信息可以关注“BigQuant”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python 预测任意天后股票数据_机器学习交易——如何使用回归预测股票价格?【翻译】... 的相关文章

  • java抽象类应用多态_java_抽象类、接口、多态的使用

    抽象类 抽象类 包含抽象方法的类 抽象方法 没有方法体的方法 使用 abstract关键字修饰方法 该方法就成了抽象方法 抽象方法只包含一个方法名 而没有方法体 格式为 修饰符 abstract 返回值类型 方法名 参数列表 抽象类的使用
  • H5页面跳转到微信公众号首页

    H5页面跳转到微信公众号首页 1 需求背景 微信公众号 客户端 网页需要用户关注才能进行活动 因此需要引流到公众号进行关注操作 在多篇文章无法找到关键的一个解决点 主要是在阐述如何复制公众号首页的链接 2 具体实现 首先 找到公众号的一个首
  • 【点云下采样/抽稀】python-pcl:pcl::VoxelGrid::applyFilter

    这篇博客将介绍如何使用python pcl对点云las laz进行下采样 抽稀 可以根据设置的参数决定下采样到元数据的90 80 60 或者40 不会完整的按这个梯度递减 但参数rate顺序下降 基本能大致达到这个概率 下采样设置的voxe
  • mysql添加表注释、字段注释、查看与修改注释

    mysql 一 基础知识 1 创建表的时候写注释 create table test1 field name int comment 字段的注释 comment 表的注释 2 修改表的注释 alter table test1 comment
  • Ubuntu root用户界面登录设置

    Ubuntu下用户登录界面默认是没有root权限登录的 以下设置可以在用户界面添加root权限登录 sudo vim usr share lightdm lightdm conf d 50 ubuntu conf greeter show
  • 搭建Android开发环境 以及 ionic 编译安卓app步骤

    1 下载安装JDK 下载地址 https www oracle com technetwork java javase downloads jdk8 downloads 2133151 html 安装好后 配置系统环境变量 控制面板 系统和
  • html5文本框设置圆角,css如何设置圆角边框?

    圆角边框是css3新增属性 在圆角边框出现之前 前端开发有的采用整块的圆角图片作为背景 有的采用小的圆角图片分别放在元素的四角 非常麻烦 下面我们来看一下如何使用css设置圆角边框 圆角边框 border radius 的基本用法 圆角边框
  • Java通过网络url直接读取文件内容

    public void readFileFromUrl String filePath throws Exception URL url new URL filePath HttpURLConnection urlConnection Ht
  • HWnd和CWnd的获取函数

    顺便记录一下有关窗口对象指针和窗口句柄相关的函数 Win32 API函数对窗口的操作总是需要一个窗口句柄 hWnd 来指向需要操作的对象 比如 SetWindowPos hWnd 而MFC内 窗口句柄已经包含在对象成员内 需要的是指向窗口对
  • R语言设置当前工作文件夹

    getwd 这个函数用于显示当前工作空间的路径 setwd 用于重新设置当前工作文件夹 list files 列出当前文件夹的子目录 list files path 列出指定路径的子目录 source R 加载R文件 gt getwd 1
  • seam-gen 增加messages_zh_CN.properties

    新建一个Generic Exporter 具体添加的属性如下 File Pattern messages zh CN properties For each entity herbernatetool util toolclass org
  • A simple yet effective baseline for 3d human pose estimation

    A simple yet effective baseline for 3d human pose estimation 主要工作 在以往的人体3D关键点检测的方法中 主要有两种 一种是构造end to end的网络 直接实现输入普通图像
  • 与HTTP(Restful API)对比,gRPC的优势

    gRPC是什么 gRPC是什么可以用官网的一句话来概括 A high performance open source universal RPC framework 所谓RPC remote procedure call 远程过程调用 框架
  • Qt七种信号与槽关联方式小结

    Qt七种信号与槽关联方式 1 F4 F3 ui界面编辑方式 在UI界面按下F4按键 会进入信号与槽的编辑界面 可看到左侧工具栏全部变为灰色 无法进行部件的选择 左键点击界面中已经添加好的部件 然后进行拖拽即可建立信号与槽的关联 按下F3即可
  • Docker安装 Nacos 单机超详细教程(配合宝塔)

    一 事前准备 CentOs系统 安装了宝塔面板 安装了docker 云平台防火墙里开放8848端口 官网地址 宝塔 安全放行8848端口 记得使用firewall cmd list port 查看一下linux有没有开放nacos的8848
  • Electron的安装与使用

    Electron的安装与使用 一 Electron的安装 1 使用脚手架创建 2 electron的使用 3 总结 二 打包并分发应用程序 通过Electron Forge打包 三 如何在VSCode中跑Electron项目 四 使用VSC
  • 【Unity】Post-process后处理之Lens Distortion

    安装组件 Ambient Occlusion 环境光遮蔽 Anti aliasing 抗锯齿 Auto Exposure 自动曝光 Bloom 柔光 Chromatic Aberration 色差 Color Grading 颜色分级 De
  • 用递归法求一个整数数组a中的最大元素C++(超级灵活,且实用)

    前言 最近在学算法 我看书上的代码实现部分太简陋了 不能完全理解 还是自己敲一遍最有效 此代码包含递归算法和调用随机数生成数组方法 我觉得还是蛮简介有效的 把两者结合起来 优化了输入效率 执行效率 完整代码 include
  • 十一、Linux驱动之platform总线设备驱动

    1 基本概念 从Linux2 6开始Linux加入了一套驱动管理和注册机制 platform平台总线驱动模型 platform平台总线是一条虚拟总线 platform device为相应的设备 platform driver为相应的驱动 与

随机推荐

  • JQuery

    JQuery 一 本地存储 特性 1 数据存储在用户浏览器中 2 设置 读取方便 甚至页面刷新不丢失数据 3 容量较大 sessionStorage约5M localStorage约20M 4 只能存储字符串 可将对象JSON string
  • 【STL】SGI空间配置器(一):一级空间配置器

    今天看了STL中的空间配置器 写一篇博客小小的总结一下 STL空间配置器的产生 在实际的软件开发中 当我们使用C 中的malloc new free和delete时 我们不可避免的会因为程序的需求 使用很多的小内存块 这个过程是不一定能够控
  • 网络基础:IP数据包格式

    目录 一 理论 1 IP数据包完整格式 2 IP数据包首部各字段 3 ARP协议 二 实验 1 华为系统中的ARP命令 一 理论 1 IP数据包完整格式 根据TCP IP 协议 使用 IP 协议传输数据的包被称为 IP 数据包 IP Dat
  • Ubuntu安装jenkins

    1 通过命令安装 sudo apt get install jenkins 如果报以下错 E 软件包 jenkins 没有可安装候选 执行以下命令 wget q O https pkg jenkins io debian jenkins i
  • LoadRunner性能测试基本步骤

    前言 本文旨在指导初学者使用LoadRunner进行基础的性能测试 我们在接到一个性能测试任务的时候 需要从以下几点考虑 我们的测试对象是什么 测试要求是什么 测试环境怎么部署的 业务规模如何 哪些业务点是客户最关注的等等 下面将从性能测试
  • Breakpad(跨平台crash工具)

    最近海思平台在项目测试过程中 经常出现coredump的问题 尤其是那些的不经常挂的情况 光看日志定位问题真的很难 同时生成的core文件由于各种动态链接和静态链接 分析起来实在是比较困难 为解决coredump问题 有必要提供一个跨平台的
  • Docker Volume原理及使用

    1 Volume原理 想要了解Docker Volume 首先我们需要知道Docker的文件系统是如何工作的 Docker镜像是由多个文件系统 只读层 叠加而成 当我们启动一个容器的时候 Docker会加载只读镜像层并在其上 译者注 镜像栈
  • U3D 材质转换为URP渲染

    创建URP项目 然后导入已有的package 发现预览图为品红色的 材质显示不正确 如下图所示 在项目的菜单栏选择升级渲染材质为URP渲染即可 最后的效果如下
  • HJ0427分隔输出

    要求 第一个数N为字符串的数量 第二个以后为连续输入的字符串 字符串之间用空格隔开 若字符串长度大于等于8 则每八个为一组 之间用空格隔开 切割后余下部分不满八个则用0补位 字符串长度小于8 则后补零 补满八个为止 升序输出 输入 2 ab
  • NOI20102010年,世博会在中国上海举办,吸引了数以千万计的中外游客前来参观。暑假期间小Z也来到了上海世博园, 她对世博园的拥挤早有所闻,对有的展馆甚至要排上好几个小时的队才能进入也做好了充分

    NOI2010 2010年 世博会在中国上海举办 吸引了数以千万计的中外游客前来参观 暑假期间小Z也来到了上海世博园 她对世博园的拥挤早有所闻 对有的展馆甚至要排上好几个小时的队才能进入也做好了充分准备 但为了使得自己的世博之旅更加顺利舒畅
  • ios混编flutter相机相册不可用

    问题描述 ios项目混编flutter的时候根据官网的方法添加混编代码后 有时候会出现在flutter端使用image picker插件调用相机相册时 相机相册使用不了的现象 MethodChannelFilePicker Platform
  • linux学习笔记(字符串测试 for循环)

    例题 1 传递一用户名参数给脚本 判断此用户的用户名跟其基本组的组名是否一致 并将结果显示出来 bin bash A 1 B id u 1 C id g 1 if B eq C then echo A 用户名和组名一样 else echo
  • 30道MySQL基础面试题

    每天晚上 00 00 执行 mysql 数据备份 请写出 crontab 配置项 答案 0 0 mysqldump uroot p123456 flush logs 数据库名 gt 备份文件名 每天凌晨 1 点在 data 目录新建当天日期
  • Vue3状态管理库Pinia——实现简易版购物车

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 正逐渐往全干发展 个人状态 研发工程师 现效力于中国工业软件事业 人生格言 积跬步至千里 积小流成江海 推荐学习 前端面试宝典 Vue2 Vue3 Vue2 3项目实战 Node js
  • 为什么不能直接通过IP访问网站

    转 http www examw com java jichu 143769 为什么不能直接通过IP访问网站 为什么不能直接通过IP访问网站 从理论上说 在IE 或其他的Web浏览器 如Firefox 的地址栏中输入IP地址 都可能访问ww
  • AD个人常用快捷键记录

    避免以后太长时间没用忘记AD快捷键 快捷键 F2 拉线 F3 过孔 F4 敷铜 F9 矩形排列 7 切割铜皮 2 线选 3 框选 6 坐标移动 N 显示隐藏飞线 A 对齐 丝印位置 R M测量两个点之间的距离 R P测量两个物体边到边的最小
  • java 项目 远程调试_Java项目远程调试

    准备一个项目 比如我有个SpringBoot项目 打包好 上传服务器 服务器 1 开启端口 8080是项目端口 8000是远程调试端口 root localhost app firewall cmd zone public add port
  • gitlab代码上传方式1

    本地代码上传到gitlab上操作流程 自我总结 1 在gitlb上新建项目 点击New project 首次将代码上传到gitlab上时 先配置Settings中的SSH Keys 2 配置SSH Keys 那么SSH Keys是怎么获得的
  • 推荐几款可以直接在手机上编程的app(包含Java、C、Python等)

    这里介绍几款可以在手机上编程的app 分别是 1 java和Android AIDE集成开发环境 2 C语言 c语言编译器 C4droid 3 python QPython3 Termux 4 CSS HTML JavaScript HTM
  • python 预测任意天后股票数据_机器学习交易——如何使用回归预测股票价格?【翻译】...

    前几天 我读了一篇关于人工智能到目前为止是如何发展的以及它将走向何方的文章 我被吓了一跳 我也很难理解作者所描绘的未来的可能性 这是人工智能在医学领域应用的可能性之一 外科医生可以用她的运动皮层控制一个机器手术刀 而不是用她的手 她可以从手