期货量化交易软件:MQL5 中的范畴论 (第 15 部分)函子与图论

news2024/10/7 10:18:16

概述

在上一篇文章中,我们目睹了前期文章中涵盖的概念(如线性序)如何视作范畴,以及为什么它们的“态射”在与其它范畴相关时即构成函子。在本文中,我们赫兹量化软件将阐述来自前期文章中的概括,即通过查看图论如何具有与上一篇文章中查看的线性序类似的用途。为了使用图论,我们赫兹量化将 MQL5 日历数据重构为图形,由此作为一个范畴。这将是一个关键焦点。本文的目的仍然会像我们之前的一篇,寻求明示在两个范畴之间函子的波动性预测潜力。不过,在这种情况下,我们的域范畴是一个图形,而协域将在预排序时间序列中显示标准普尔 500 指数波动率值(并非 VIX)。

MQL5 日历灌注数据重构为图形

当我们把范畴论与数据库制程联系起来时,MQL5 财经日历已被涵盖,故此在此重新涉及它与交易者的相关性并不适宜。为了将其表示为图形,即一连串的边线和节点,首先需要预先选择我们将包含在范畴中的新闻项目的子集。从财经日历网站上可以明显看出,有很多项目可供选择,不过,如果我们决定基于一个松散的假设只选择四个项目,并将它们连接起来,如下图所示:

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

那么我们的假设会颇具争议,零售销售数字是制造业采购经理人指数(PMI)数据的函数,其派生自 CPI,而 CPI 又是由国债竞售业绩的结果而来,而国债竞售业绩也基于零售销售数字。因此,这是一个简单的循环,其准确性不是本文的主题,而更多意味着从财经日历数据勾勒可能的图形构图。

图论通过创建两个直截了当的表格,一个是顶点的配对表,另一个用作顶点的索引,来简化复杂的互连系统。图形可以被视为一个范畴,因为顶点可以被视为对象(域),这意味着边线当作态射。作为旁注,这与上一篇文章中看到的线性序有何不同,顾名思义,是线性。图论倾向于容纳更复杂的连接,其中对象/域可以连接到多个对象。

故此,我们不会像上一篇文章中关于线性序那样,将该范畴中的单个对象与标普波动率范畴中的对象配对,而是将顶点对的行数与标普范畴配对。这意味着它不能同构,由于鉴于标普是基于时间的,故多行被捆绑,并与标普中的单个对象(数据点)配对。这也意味着我们的域对象将构成四个元素(循环中四个项目的各自最后数值)。

范畴论和函子回顾

正如本文中已经提到的,范畴论已有许多应用,但大多数公开参考文献在代数拓扑方面倾向于零,这可能是因为该主题的原始作者,这就是为什么将 MQL5 应用于交易看似很新颖的原因。事实上,大多数熟悉 MQL5 的交易者倾向于使用神经网络来开发他们的前沿系统,或许是因为与范相比,它们经历的研究更久,这不应该阻止探索范畴,因为底线是大多数交易者都在寻求前沿,如果一个系统或方法太常见,那么能找到一个的几率就会降低。

函子,正如我们在上一篇文章中曾提过的,实际上是范畴之间的态射。这些“态射”不仅将两个范畴中的对象连接起来,而且还将范畴之间的同态连接起来。

在上一篇文章中,我们测试了两个场景,一个是使用两个范畴之间的对象连接,另一个是考虑相同范畴之间的态射连接。函子是两者的对数,出于我们的意图,尽管我们一次取一个来探索两者之间的差异,并为每个提供策略测试报告,这些突显出预测纳斯达克波动率的相对重要性。鉴于 2020年 1 月 1 日至 2020年 3 月 15 日的测试窗口较短,无法得出哪种映射更佳的结论,但结果当中的差异表明具有高度敏感性,因此需要强调一个盖过其它。

创建标准普尔 500 指数波动率范畴

SP500 波动率数据的收集和处理很简单,类似于我们在上一篇文章中衡量纳斯达克波动率的方式。VIX 是我们将在这里研究的单独指标,读者注意这一点很重要。故此,当前的波动率读数将在以下清单之后在每根新柱线上重新计算:

 

double _float_value=0.0; //where R is an instance of MqlRates... _float_value=(R.high-R.low)/Point();

如前所述,标普将形成我们的协域,对象捕获的波动率值作为一个对象的集合,以及它们之间的态射捕获波动率读数之间的相对变化。此范畴的初始化可以按如下方式处理:

正如我们在上一篇文章中所见,如果我们能将一个带有滞后的域映射到这个协域,我们就具备对标普 500 指数的波动性进行一些预测的能力。与上一篇文章一样,我们将在相同的信号和资金管理设置上分别测试对象和态射函子,从而衡量灵敏度。

从财经日历到标普 500 指数的函子

我们将使用以下清单构建财经日历数据的范畴:

该域中的每个对象都有两个顶点,它们是成对的日历值,其中至少有一个顶点位于协域中波动率值的时间范围内。由于这些财经数据大约每隔一个月发布一次,我们将在月度时间帧内进行测试。与上一篇文章一样,我们的函子映射将含有对象中每个数据点的系数。此处的区别在于,我们面临着多个对象映射到协域中同一波动性的可能性。理想情况下,我们需要分别从每个对象获取系数(对于线性映射),并在预测中使用它们。这意味着它们捆绑后必然会在态射映射提供的预测之上造成相互冲突的预测。这就是为什么出于本文目的,我们可以权衡从日历数据到标普范畴的每个函子映射,并将所有值的点积总和映射到波动率值。

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

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

相关文章

DXP学习002-PCB编辑器的环境参数及电路板参数相关设置

目录 一,dxp的pcb编辑器环境 1,创建新的PCB设计文档 2,PCB编辑器界面 1)布线工具栏 2)公用工具栏 3)层标签栏 ​编辑 3,PCB设计面板 1)打开pcb设计面板 4,PCB观…

SSH如何端口映射?

SSH端口映射(SSH Port Forwarding)是一种通过SSH协议进行端口转发的技术,它能够实现在不直接将服务暴露在公网的情况下,通过私有通道传输数据,并保障数据的安全加密。 SSH端口映射的原理 SSH端口映射主要包括本地端口…

二维码门楼牌管理应用平台建设:智慧化管理的新篇章

文章目录 前言一、二维码门楼牌管理应用平台的建设背景二、二维码门楼牌管理应用平台的功能特点三、二维码门楼牌管理应用平台的意义与价值四、结语 前言 随着信息技术的不断发展,二维码门楼牌管理应用平台的建设已成为城市管理的必然趋势。通过这一平台&#xff0…

稀碎从零算法笔记Day42-LeetCode:分发糖果

题型:数组、贪心 链接: 来源:LeetCode 题目描述 n 个孩子站成一排。给你一个整数数组 ratings 表示每个孩子的评分。 你需要按照以下要求,给这些孩子分发糖果: 每个孩子至少分配到 1 个糖果。相邻两个孩子评分更…

绝地求生:齐贺PUBG七周年!分享你的游玩感受及反馈赢惊喜道具

PUBG七周年庆典火热进行中,特殊道具、周年主题艾伦格上线!七周年期间游玩PUBG,在评论区分享你的游玩感受及反馈,即可参与活动赢取夏日浪潮宝箱奖励。 参与方式 齐贺PUBG七周年!在评论区分享分享你的七周年游玩感受及反…

查看MySQL版本的方式

文章目录 一、使用cmd输入命令行查看二、在mysql客户端服务器里查询 一、使用cmd输入命令行查看 1、打开 cmd ,输入命令行: mysql --version 2、还是打开cmd,输入命令行:mysql -V (注意了,此时的V是个大写的V) 二、…

5.网络编程-socker(golang版)

目录 一、什么是socket? 二、Golang中使用TCP TCP服务端 TCP客户端​​​​​​​ 三、TCP黏包,拆包 1.什么是粘包,拆包? 2.为什么UDP没有粘包,拆包? 3.粘包拆包发生场景 4.TCP黏包 黏包服务端 …

RocketMQ 之 IoT 消息解析:物联网需要什么样的消息技术?

作者:林清山(隆基) 前言: 从初代开源消息队列崛起,到 PC 互联网、移动互联网爆发式发展,再到如今 IoT、云计算、云原生引领了新的技术趋势,消息中间件的发展已经走过了 30 多个年头。 目前&a…

整理的微信小程序日历(单选/多选/筛选)

一、日历横向多选&#xff0c;支持单日、双日、三日、工作日等选择 效果图 wxml文件 <view class"calendar"><view class"section"><view class"title flex-box"><button bindtap"past">上一页</button&…

00-JAVA基础-JVM类加载机制及自定义类加载器

JVM 类加载机制 JVM类加载机制是Java运行时环境的核心部分&#xff0c;它负责将类的.class文件加载到JVM中&#xff0c;并将其转换为可以被JVM执行的数据结构。 类加载的整体流程 类加载的整体流程可以分为五个阶段&#xff1a;加载&#xff08;Loading&#xff09;、链接&a…

java数据结构与算法刷题-----LeetCode238. 除自身以外数组的乘积

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 动态规划&#xff1a;左右乘积列表2. 滚动数组对动态规划过程…

flutter组件_AlertDialog

官方说明&#xff1a;A Material Design alert dialog. 翻译&#xff1a;一个材料设计警告对话框。 作者释义&#xff1a;显示弹窗&#xff0c;类似于element ui中的Dialog组件。 AlertDialog的定义 const AlertDialog({super.key,this.icon,this.iconPadding,this.iconColor,t…

Cortex-M4架构

第一章 嵌入式系统概论 1.1 嵌入式系统概念 用于控制、监视或者辅助操作机器和设备的装置&#xff0c;是一种专用计算机系统。 更宽泛的定义&#xff1a;是在产品内部&#xff0c;具有特定功能的计算机系统。 1.2 嵌入式系统组成 硬件 ①处理器&#xff1a;CPU ②存储器…

分布式事务 - 个人笔记 @by_TWJ

目录 1. 传统事务1.1. 事务特征1.2. 事务隔离级别1.2.1. 表格展示1.2.2. oracle和mysql可支持的事务隔离级别 2. 分布式事务2.1. CAP指标2.2. BASE理论2.3. 7种常见的分布式事务方案2.3.1. 2PC2.3.2. 3PC2.3.3. TCC2.3.3.1. TCC的注意事项&#xff1a;2.3.3.2. TCC方案的优缺点…

【Java面试题】JVM(26道)

文章目录 JVM面试题基础1.什么是JVM&#xff1f;2.JVM的组织架构&#xff1f; 内存管理3.JVM的内存区域是什么&#xff1f;3.1堆3.2方法区3.3程序计数器3.4Java虚拟机栈3.5本地方法栈 4.堆和栈的区别是什么&#xff1f;5.JDK1.6、1.7、1.8内存区域的变化&#xff1f;6.内存泄露…

mynet开源库

1.介绍 个人实现的c开源网络库&#xff0e; 2.软件架构 1.结构图 2.基于event的自动分发机制 3.多优先级分发队列&#xff0c;延迟分发队列 内部event服务于通知机制的优先级为0&#xff0c;外部event优先级为1&#xff0e; 当集中处理分发的event_callback时&#xff0c…

鸿蒙ArkUI声明式学习:【UI资源管理】

OpenHarmony 应用的资源分类和资源的访问以及应用开发使用的像素单位以及各单位之间相互转换的方法。 资源分类 移动端应用开发常用到的资源比如图片&#xff0c;音视频&#xff0c;字符串等都有固定的存放目录&#xff0c;OpenHarmony 把这些应用的资源文件统一放在 resourc…

线程的666种状态

文章目录 在Java中&#xff0c;线程有以下六种状态&#xff1a; NEW&#xff1a;新建状态&#xff0c;表示线程对象已经被创建但还未启动。RUNNABLE&#xff1a;可运行状态&#xff0c;表示线程处于就绪状态&#xff0c;等待系统分配CPU资源执行。BLOCKED&#xff1a;阻塞状态…

Centos Docker Oracle11g 密码过期修改

症状&#xff1a; Centos Oracle11g环境变量配置 如果没有配置环境变量&#xff0c;需要先配置Oracle环境变量&#xff0c;否则执行sqlplus时会提示&#xff1a;SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory 配置方法&#xff1a; 第一步&a…

《系统架构设计师教程(第2版)》第8章-系统质量属性与架构评估-03-ATAM方法架构评估实践(下)

文章目录 3. 测试阶段3.1 头脑风暴和优先场景&#xff08;第7步&#xff09;3.1.1 理论部分3.1.2 示例 3.2 分析架构方法&#xff08;第8步&#xff09;3.2.1 调查架构方法1&#xff09;安全性2&#xff09;性能 3.2.2 创建分析问题3.2.3 分析问题的答案胡佛架构银行体系结构 3…