免费期货量化软件:数据科学与机器学习——线性回归

它是一个跨学科领域,它运用科学方法、流程、算法、系统,从嘈杂、结构化和非结构化数据中提取出知识和见解,并将这些知识和可操作的见解在广泛的应用领域加以运用。

数据科学家则是创建编程代码、并将其与统计学相结合,从中挖掘创意的人。

从这些系列文章中可以期望得到什么?

  • 理论(譬如数学方程式):理论在数据科学中是最重要的。 您需要深入了解算法,了解模型的行为方式,以及它以某种方式行为的原因,理解这一点要比算法编码本身困难得多。

  • 亲手实践 MQL5 和 python 中的示例

 

线性回归

它是一种预测模型,用于发现因变量和一个或多个自变量之间的线性关系。

线性回归是许多算法所采用的核心算法之一,例如:

  • 逻辑回归是一种基于线性回归的模型

  • 支持向量机,这个数据科学中著名的算法就是一个基于线性的模型

什么是模型

模型并无特别之处,它只是一个后缀。

理论

通过图表的每条直线都有一个方程式

Y = M X + C

我们从哪里得到这个方程?

假设,您有两个数值相同的数据集,分别为 x 和 y:

x

y

1

1

2

2

3

3

4

4

5

5

6

6

将数值在图型上绘出则为:

编辑

添加图片注释,不超过 140 字(可选)

由于 y 等于 x,我们的直线方程是 y=x,对吗?错误

虽然,

y = x 在数学上与 y = 1x 相同,但在数据科学中是非常有区别的,直线的公式将是 y=1x,其中 1 是直线与 x 轴之间形成的夹角,也称为直线的斜率

但是,

斜率 = y 值的变化 /x 值的变化 = m (称为 m)

现在我们的公式是 y = mx。

最后,我们需要在方程中添加一个常数,即当 x 为零时,y 的对应值,换句话说,当直线穿过 y 轴时,y 对应的值。

最后,

我们的方程是 y = mx + c(这不代表什么,只是数据科学中的一个模型) 其中 c 是 y 轴上的截距

简单线性回归

简单线性回归有一个因变量和一个自变量。 在此,赫兹期货量化尝试理解两个变量之间的关系,例如,股票价格如何随简单移动平均线的变化而变化。

复杂数据

假设赫兹期货量化根据股票价格(现实生活中发生的事情)得到随机散状指标值

编辑

添加图片注释,不超过 140 字(可选)

在这种情况下,赫兹期货量化的指标/自变量可能无法很好地预测我们的股价/因变量。

您必须在数据集中应用的第一个过滤器是删除与目标关联性不强的所有列,因为您不会依据这些列构建线性模型。

依据非线性相关数据来构建线性模型是一个巨大的根本性错误;一定要小心!

这种关系可以是颠倒的、亦或是逆向的,但它必须是强关联的,因为赫兹期货量化正在寻找线性关系,这就是您要找的。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

那么,我们如何衡量自变量和目标之间的强度呢? 我们所用的度量称为相关系数。

相关系数

赫兹期货量化来编写一个脚本,创建一个数据集,作为本文的主要示例。 我们找出纳斯达克的预测因子。

 
 

input ENUM_TIMEFRAMES timeframe = PERIOD_H1; input int maperiod = 50; input int rsiperiod = 13; int total_data = 744; //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { string file_name = "NASDAQ_DATA.csv"; string nasdaq_symbol = "#NQ100", s_p500_symbol ="#SP500"; //--- int handle = FileOpen(file_name,FILE_CSV|FILE_READ|FILE_WRITE,","); if (handle == INVALID_HANDLE) { Print("data to work with is nowhere to be found Err=",GetLastError()); } //--- MqlRates nasdaq[]; ArraySetAsSeries(nasdaq,true); CopyRates(nasdaq_symbol,timeframe,1,total_data,nasdaq); //--- MqlRates s_p[]; ArraySetAsSeries(s_p,true); CopyRates(s_p500_symbol,timeframe,1,total_data,s_p); //--- Moving Average Data int ma_handle = iMA(nasdaq_symbol,timeframe,maperiod,0,MODE_SMA,PRICE_CLOSE); double ma_values[]; ArraySetAsSeries(ma_values,true); CopyBuffer(ma_handle,0,1,total_data,ma_values); //--- Rsi values data int rsi_handle = iRSI(nasdaq_symbol,timeframe,rsiperiod,PRICE_CLOSE); double rsi_values[]; ArraySetAsSeries(rsi_values,true); CopyBuffer(rsi_handle,0,1,total_data,rsi_values); //--- if (handle>0) { FileWrite(handle,"S&P500","NASDAQ","50SMA","13RSI"); for (int i=0; i<total_data; i++) { string str1 = DoubleToString(s_p[i].close,Digits()); string str2 = DoubleToString(nasdaq[i].close,Digits()); string str3 = DoubleToString(ma_values[i],Digits()); string str4 = DoubleToString(rsi_values[i],Digits()); FileWrite(handle,str1,str2,str3,str4); } } FileClose(handle); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+

在脚本中,赫兹期货量化收集了纳斯达克收盘价、13 周期的 RSI 值、标准普尔 500 指数,及其 50 周期的移动平均值。 数据成功收集到 CSV 文件之后,我们在 anaconda 的 Jupyter 笔记本上用 python 可视化数据,对于那些机器上没有安装 anaconda 的用户,可以运行在 google colab 一文中所用的数据科学 python 代码。

在打开由赫兹期货量化的测试脚本创建的 CSV 文件之前,需要将其转换为 UTF-8 编码,以便 python 可以读取它。 用记事本打开 CSV 文件,然后将其编码保存为 UTF-8。 最好将文件复制到外部目录中,这样的话,当您用 pandas 链接到该目录时,python 能单独读取该文件;现在赫兹期货量化读取 CSV 文件,并将其存储到数据变量之中。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

编辑切换为居中

添加图片注释,不超过 140 字(可选)

输出如下:

编辑切换为居中

添加图片注释,不超过 140 字(可选)

从数据的直观表现中,赫兹期货量化已经可以看到,纳斯达克与标准普尔 500 指数之间存在着非常密切的关系,纳斯达克与其 50 周期移动平均线之间也存在着密切的关系。 如早前所述,每当数据分散在整个图形上时,在寻找线性关系时,依据自变量可能不是一个很好的目标预测器;但我们若看数字则能说明了它们的相关性,并依据数字而不是我们的眼睛得出结论,为了找出变量之间的相关性,我们将采用称为相关系数进行度量。

相关系数

它用于测量自变量和目标之间的强度。

有若干种类型的相关系数,但我们只用最常见的线性回归,即皮尔逊(Pearson)相关系数(R),其范围介于 -1 和 +1 之间

相关性的可能极值 -1 和 +1 分别表示 x 和 y 之间存在完全负线性相关,和完全正线性相关,而相关性为 0(零)表示没有线性相关性。

相关系数公式/皮尔逊系数(R)。

编辑

添加图片注释,不超过 140 字(可选)

我已创建了一个 linearRegressionLib.mqh,在赫兹期货量化的主函数库当中,我们来编写函数 corrcoef()。

我们从数值平均函数开始,平均值是所有数据求和,然后除以它们的元素总数。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

免费期货量化软件策略:在一张图表上的多个指标为用户开发

通常&#xff0c;当我们开始实现一个新系统时&#xff0c;我们并不真正知道我们如何对其进行改进&#xff1b;故此&#xff0c;我们应该始终启动一个新项目&#xff0c;并着眼于未来进行改进。 这对那些刚开始的人来说非常重要&#xff1a;持续地规划一些事情&#xff0c;想象未…

免费期货量化软件策略您能用移动平均线做什么呢?

我们将学习布林带&#xff0c;它测量数据在其平均值附近的离散度。该指标由约翰博林格&#xff08;John Bollinger&#xff09;创造。 它由围绕 20 天移动平均线的两条波段构成&#xff0c;以测量数据&#xff08;价格&#xff09;在其均值&#xff08;20 天移动平均线&#xf…

免费期货量化软件策略:从头开始开发智能交易系统(第 25 部分)

概述 在上一篇文章提供系统健壮性 &#xff08;I&#xff09;中&#xff0c;赫兹期货量化已经看到了如何更改 EA 的某些部分&#xff0c;从而令系统更加可靠和健壮。 这只是针对兹期货量化将要在本文中所做之事的介绍。 请忘记您所知道的、计划的、或希望的一切。 这里最困难…

免费期货量化软件:学习如何设计一款布林带Bollinger Bands交易系统

我们将学习布林带&#xff0c;它测量数据在其平均值附近的离散度。该指标由约翰博林格&#xff08;John Bollinger&#xff09;创造。 它由围绕 20 天移动平均线的两条波段构成&#xff0c;以测量数据&#xff08;价格&#xff09;在其均值&#xff08;20 天移动平均线&#xf…

免费期货量化软件:针对交易的组合数学和概率论曲线分析

赫兹期货量化将继续为构建多重状态、可扩展的交易系统奠定基础。 在本文的框架内&#xff0c;我想为您展示如何利用前几篇文章中的发展成果&#xff0c;来进一步阐述交易过程的广泛可能性。 这有助于从这些层面评估策略&#xff0c;来弥补其它分析方法未能涵盖的地方。 在本文中…

免费期货量化软件:从头开始开发智能交易系统概念上的飞跃

有时&#xff0c;在开发一些项目时&#xff0c;我们也许会发现新的思路和新的可能特性&#xff0c;这些特性能够派上用场&#xff0c;并为我们正在创建的系统提供极大的改进。 但问题出来了&#xff1a;实现新功能的最简单途径是什么&#xff1f; 问题在于&#xff0c;有时我们…

Bugku 密室逃脱 WP

一、打开题目 二、解压文件夹&#xff0c;查看文件和压缩包&#xff0c;发现压缩包进行了加密 三、查看剧本&#xff0c;发现摩斯密码&#xff0c;并解析得到电脑密码&#xff1a;xjpc 四、输入电脑密码得到一张图片和一个压缩包&#xff0c;查看图片发现图片位置发生错误&a…

如何不下载软件来制作自己的网站

注意&#xff1a;本文使用Windows操作系统。如果你计算机的操作系统不是Windows&#xff0c;这篇文章对于你来说没有丝毫意义。 我们前几天介绍了如何建立一个自己的网站&#xff0c;虽然也有用&#xff0c;但是下载了许多软件。Windows系统就自带了一个名为IIS的软件&#xff…

能优化你的网站的网页制作软件

做一个网站也许并不是一件很难的事情&#xff0c;但是想做出漂亮而且极富个性的网站就不那么容易了。这里笔者就给大家介绍几款用于修饰和改造网页的软件&#xff0c;让你的主页效果更炫一些。 有声有色 “有声有色”是给网页添加Java特效的一款软件&#xff0c;它集合了518个十…

搭建个人网站软件安装

搭建个人网站软件安装(均在Root用户下完成) 系统环境为&#xff1a;Centos7.6 参考文献&#xff1a; 在CentOS 7系统上安装PHP 7.4版本的方法 解决CentOS中yum安装程序时出现的"Transaction check error"错误 Centos7下安装MySQL Centos 7下安装配置Nginx Ngi…

个人网站搭建,个人网站需要什么软件

好的网页设计软件通过编码平台或简单的拖放就可以构架一个简单的个人网站。过去的网站建设需要用HTMLCSS和JS来制作。然而随着建站技术越来越成熟&#xff0c;拖放式网页制作工具越来越普遍&#xff0c;任何人都可以轻而易举地搭建自己的个人网站。 在本文中&#xff0c;我们将…

建站软件用什么呢?

建站软件用什么呢&#xff1f;目前网络上有很多建站软件都是可以建网站使用的&#xff0c;企业用户可以根据自己的需求去选。目前网络上建站软件有两种&#xff0c;一种是免费的&#xff0c;另一种是收费的。免费的建设网站软件一般功能是有限制的&#xff0c;只要能够符合用户…

VS警告 C4819 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

1、问题 Microsoft visual studio 2019跑仿真的时候出现该警告&#xff0c;在高级保存选项设置编码为Unicode(UTF-8 无签名)还是会有该警告。 2、解决方法 右键项目&#xff0c;打开属性设置&#xff0c;选中&#xff1a;工程 -> 右键选择"属性" -> C/C ->…

webassembly003 GGML Tensor Library part-1

GGML ggml的函数 可以看到官方示例项目仅依赖于#include "ggml/ggml.h"&#xff0c; #include "common.h"&#xff0c;可以阅读ggml.h获取ggml的使用帮助 函数解释注释ggml_tensor多维张量按行主顺序存储。ggml_tensor结构包含每个维度中元素数&#xf…

Redis数据结构全解析【万字详解】

文章目录 前言一、SDS1、SDS的必要性2、SDS的数据结构3、SDS的优势O&#xff08;1&#xff09;复杂度获取字符串长度二进制安全不会发生缓冲区溢出节省空间 二、链表1、结构设计2、优缺点 三、压缩列表1、结构设计2、连续更新3、压缩列表的缺陷 四、哈希表1、结构设计2、哈希冲…

安装单片机开发工具Keil5和仿真开发板proteus

项目场景&#xff1a; 安装单片机开发工具Keil5和仿真开发板proteus 为啥不买开发板? 这里不使用开发板的原因是单独买个开发板其实还行&#xff0c;但是很多外设&#xff0c;而且加上本来自己是自学的&#xff0c;啥也不懂&#xff0c;坏的几率很大。 网上说买开发板实际开…

Linux下安装qt5步骤

Qt下载 Qt官方下载非常慢。Qt 官网有一个专门的资源下载网站&#xff0c;所有的开发环境和相关工具都可以从这里下载&#xff0c;具体地址是&#xff1a;http://download.qt.io/ 下载方式可以看这个教程Qt教程网站 当然也可以直接去我的百度网盘里下载 链接&#xff1a;https…

yolov5环境配置和训练

慢慢写不着急 yolov5权重文件&#xff08;百度网盘&#xff09; yolov5weight 提取码&#xff1a;g5jh 鉴于官网权重文件4个月没有跟新&#xff0c;放心食用&#xff08;20201030&#xff09; weight V4.0 提取码&#xff1a;aljp 20210123 复制这段内容后打开百度网盘手机App…

夸克网盘提取cookie

打开首页登录&#xff0c;【夸克网盘】夸克网盘PC网页版端入口 chrome按F12打开&#xff0c;开发者工具-网络-找到sort?开头的文件---标头-cookie&#xff1a;后面的值