期货量化交易软件:模式搜索的暴力方法(第六部分)循环优化

news2024/11/27 22:36:48

概述

考虑到我上一篇文章中的材料,我赫兹量化软件可以说这只是我在算法中引入的所有函数的肤浅描述。它们不仅涉及EA创建的完全自动化,还涉及诸如结果优化和选择的完全自动化以及随后用于自动交易,或者我赫兹量化稍后将展示的更先进的EA的创建等重要函数。

由于交易终端、通用EA和算法本身的共生关系,您可以完全摆脱手动开发,或者在最坏的情况下,只要您具备必要的计算能力,就可以将可能改进的劳动强度降低一个数量级。在这篇文章中,我将开始描述这些创新最重要的方面。

常规过程

对我来说,随着时间的推移,创建和随后修改此类解决方案的最重要因素是了解确保常规操作最大限度自动化的可能性。在这种情况下,常规操作包括所有非必要的人工工作:

  • 想法的产生。

  • 创造一个理论。

  • 根据理论编写代码。

  • 代码修改。

  • 持续的EA重新优化。

  • 持续的EA选择。

  • EA维护。

  • 使用终端。

  • 实验和实践。

  • 其它。

正如你所看到的,这个常规过程的范围相当广泛。我把这当成一种常规过程,因为我能够证明所有这些事情都是自动化的。我提供了一份总清单。你是谁并不重要——算法交易者、程序员,或者两者兼而有之。你是否了解如何编程并不重要。即使你不了解,那么在任何情况下,你都会遇到这个列表中的至少一半。我不是说当你在市场上购买EA,在图表上运行它,然后按下一个按钮就万事大吉了。当然,这种情况会发生,尽管极为罕见。

了解了这一切,首先我必须将最明显的事情自动化。我在上一篇文章中从概念上描述了所有这些优化。然而,当你做这样的事情时,你开始了解如何在已经实现的功能的基础上改进整个事情。对我来说,这方面的主要想法如下:

  • 完善优化机制。

  • 创建用于合并 EA(合并机器人)的机制。

  • 所有组件的交互路径的正确体系结构。

当然,这只是一个非常简短的列举,我会更详细地描述每件事。我所说的优化是指同时包含几个因子的集合。所有这些都是在构建整个系统的选定范式中经过深思熟虑的:

  • 通过消除分时加快优化速度。

  • 通过消除交易决策点之间的利润曲线控制来加速优化。

  • 通过引入自定义优化标准来提高优化质量。

  • 最大限度地提高远期效率。

在这个论坛网站上,你仍然可以找到关于是否需要优化以及优化的好处的争论。此前,我对这一行为的态度相当明确,很大程度上是由于个人论坛和网站用户的影响。现在这种观点一点也不困扰我。至于优化,这完全取决于你是否知道如何正确使用它以及你的目标是什么。如果使用正确,此行动将产生所需的结果。总的来说,事实证明,这一行动非常有用。

许多人不喜欢优化,这有两个客观原因:

  • 缺乏对基本知识的理解(为什么、做什么和如何做,如何选择结果以及与此相关的一切,包括缺乏经验)。

  • 优化算法的缺陷。

事实上,这两个因素相辅相成。公平地说,MetaTrader 5优化器在结构上执行得无可挑剔,但在优化标准和可能的过滤器方面仍需要许多改进。到目前为止,所有这些功能都类似于儿童沙箱。很少有人考虑如何实现正向的前瞻时间段,最重要的是,如何控制这一过程。我想了很久了。事实上,当前文章中有相当一部分将专门讨论这个主题。

新的优化算法

除了任何回溯测试的基本已知评估标准外,我们还可以提出一些组合特征,这些特征可以帮助任何算法的值相乘,从而更有效地选择结果并随后应用设置。这些特性的优点是可以加快查找优化设置的过程。为此,我创建了一个类似于MetaTrader的策略测试报告:

图1

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

有了这个工具,我只需点击一下就可以选择我喜欢的选项。通过点击,生成了一个设置,我可以立即将其移到终端中的适当文件夹中,以便通用EA可以读取并开始在其上进行交易。如果我愿意,我也可以点击按钮生成一个EA,在我需要一个单独的EA,里面有固定的设置时,它将被构建。还有一条利润曲线,当您从表中选择下一个选项时会重新绘制。

让我们计算一下表中的数字。计算这些特性的主要元素是以下数据:

  1. Points:对应资产在整个回测中的利润点数(“_Points”)。

  2. Orders:完全打开和关闭的订单的数量(它们按照严格的顺序相互遵循,根据规则“只能有一个打开的订单”)。

  3. Drawdown:余额的回撤。

基于这些值,计算出以下交易特征:

  • Math Waiting: 数学期望点数。

  • P Factor:类似于利润因子,标准化为范围[-1…0…1](我的标准)。

  • Martingale:马丁格尔应用(我的标准)。

  • MPM Complex:上述三项的综合指标(我的标准)。

现在让我们看看这些标准是如何计算的:

等式1

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

正如你所看到的,我创建的所有标准都非常简单,最重要的是易于理解。由于每个标准的增加表明回溯测试结果在概率论方面更好,因此可以将这些标准相乘,就像我在MPM综合标准中所做的那样。通用度量将更有效地根据结果的重要性对结果进行排序。在进行大规模优化的情况下,它将允许您分别保留更多高质量的选项和删除更多低质量的选项。

此外,请注意,在这些计算中都是使用点数。这对优化过程有积极影响。对于计算,使用严格正的主量,这些主量总是在开始时计算。其余的都是根据它们来计算的。我认为,值得列出表中未列出的主量:

  • Points Plus: 每个盈利订单或零盈利订单的利润总和(以点数为单位)

  • Points Minus: 每个不盈利订单的损失模之和(以点为单位)

  • Drawdown: 余额的回撤(我用自己的方式计算)

这里最有趣的是如何计算回撤。在我们的案例中,这是最大的相对余额回撤。考虑到我的测试算法拒绝监控资金曲线,其他类型的回撤无法计算。然而,我认为应该展示一下我是如何计算这一回撤的:

图2

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

它的定义非常简单:

  1. 计算回测的起始点(第一次回撤计数的开始)。

  2. 如果交易以盈利开始,那么我们会随着余额的增长将这一点向上移动,直到出现第一个负值(这标志着回撤计算的开始)。

  3. 等待,直到余额达到参考点的水平。之后,将其设置为新的参考点。

  4. 我们返回到回撤搜索的最后一部分,并在上面寻找最低点(该部分的回撤量是从这一点计算得出的)。

  5. 对整个回溯测试或交易曲线重复整个过程。

最后一个周期将永远是未完成的状态,然而,它的回撤也被考虑在内,尽管如果测试继续下去,它有可能增加。但这在这里并不是一件特别重要的事情。

最重要的优化标准

现在让我们来谈谈最重要的过滤器。事实上,在选择优化结果时,这个标准是最重要的。这个标准没有包含在MetaTrader 5优化器的功能中,这是一个遗憾。所以让我提供一些理论材料,让每个人都能在自己的代码中重现这种算法。事实上,这一标准适用于任何类型的交易,适用于任何利润曲线,包括体育博彩、加密货币和你能想到的任何其他东西。标准如下:

等式2

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

让我们看看这个等式里面有什么:

  • N - 在整个回溯测试或交易部分中完全开放和关闭的交易头寸的数量。

  • B(i) — 对应平仓“i”之后的余额线的值。

  • L(i) — 从零到余额最后一点的直线(最终余额)。

我们需要执行两次回溯测试来计算这个参数。第一次回溯测试将计算最终余额。之后,可以通过保存每个余额点的值来计算相应的指标,从而无需进行不必要的计算。然而,这种计算可以称为重复回溯测试。这个等式可以在自定义测试器中使用,这些测试器可以构建到您的EA中。

重要的是要注意,这一指标作为一个整体可以进行修改,以便更好地理解。例如,如下所示:

等式3

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

这个等式在感知和理解方面更困难。但从实际角度来看,这样的标准很方便,因为它的值越高,我们的余额曲线就越像一条直线。我在以前的文章中谈到了类似的问题,但没有解释它们背后的含义。我们先来看下图:

图3

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

该图显示了一条余额线和两条曲线:其中一条与我们的等式(红色)有关,第二条与以下修改标准有关(方程11)。我将进一步展示,但现在让我们专注于等式。

如果我们把我们的回溯测试想象成一个简单的有平衡的点阵列,那么我们可以把它表示为一个统计样本,并将概率论公式应用于它。我们将把直线视为我们正在努力的模型,而利润曲线本身就是为我们的模型而努力的真实数据流。

重要的是要理解,线性系数表示整个可用交易标准集的可靠性。反过来,更高的数据可靠性可能表明可能有更长更好的远期(未来可以获利的交易)。严格地说,一开始我应该考虑随机变量来考虑这些事情,但在我看来,这样的演示应该更容易理解。

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

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

相关文章

关于Ansible模块 ⑤

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 继《关于Ansible的模块 ①》、《关于Ansible的模块 ②》与《关于Ansible的模块 ③》之后,继续学习ansible常用模块之…

高效测试丨怿星RTP协议测试解决方案

近几年,车内音视频娱乐系统不断发展,功能不断丰富,对于音视频的传输需求也逐渐增多,随着车载以太网的日渐成熟,各主机厂逐步方案落地、成本逐步降低,基于车载以太网的音视频传输也在逐步应用,常…

python代码使用过程中使用快捷键注释时报错

1.代码 2.代码报错 3.代码注释后的结果 4. 原因

【C++进阶】哈希的应用之位图和布隆过滤器

位图和布隆过滤器 一,位图1. 实现2. 位图的应用 二,布隆过滤器1. 使用场景2. 模拟实现 三,海量数据面试题哈希切分 四,总结 这一节我们来看哈希的应用 一,位图 先来看一个面试题 这里如果用unordered_set来解决&…

程序员如何搞副业

目录 1.概述 2.个人项目开发 3.在线教育和培训 4.技术博客和内容创作 1.概述 程序员通过副业实现个人价值最大化和增加收入的途径多种多样,以下是一些方法: 自由职业: 程序员可以在业余时间提供自由职业服务。包括为客户开发软件、网站或应用程序、…

初学python记录:力扣2009. 使数组连续的最少操作数

题目: 给你一个整数数组 nums 。每一次操作中,你可以将 nums 中 任意 一个元素替换成 任意 整数。 如果 nums 满足以下条件,那么它是 连续的 : nums 中所有元素都是 互不相同 的。nums 中 最大 元素与 最小 元素的差等于 nums.…

java 开发环境配置 JAVA_HOME 和 MAVEN_HOME

java 开发环境配置 JAVA_HOME 和 MAVEN_HOME 介绍JAVA_HOMEMAVEN_HOME 配置环境1. 创建Java Home2. 创建Maven Home3. 设置环境变量4. 验证安装 没有 Maven 看这里 介绍 在Java和Maven的开发环境中,JAVA_HOME和MAVEN_HOME是非常重要的环境变量,它们帮助…

iOS 开发中上传 IPA 文件的方法(无需 Mac 电脑

引言 在 iOS 开发中,将 IPA 文件上传到苹果开发者中心是一个重要的步骤。通常情况下,我们需要使用 Mac 电脑上的 Xcode 或 Application Loader 工具来完成这个任务。然而,如果你没有 Mac 电脑,也没有关系,本文将介绍一…

JAVA毕业设计135—基于Java+Springboot+Vue的服装商城(源代码+数据库+万字论文)

毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootVue的服装商城(源代码数据库万字论文)135 一、系统介绍 本项目前后端分离,分为管理员、用户两种角色 1、用户: 注册、登录、服装购买、…

Centos7搭建 SkyWalking 单机版

介绍 Skywalking是应用性能监控平台,可用于分布式系统,支持微服务、云原生、Docker、Kubernetes 等多种架构场景。 整体架构如图 Agent :在应用中,收集 Trace、Log、Metrics 等监控数据,使用 RPC、RESTful API、Kafk…

解决PyCharm更新到2024.1版本后不能运行项目的问题

先来看看这个问题的表现吧。 1、运行和调试按钮是灰色的,并且显示编辑器中的文件不可运行,代码也是灰色的,还有我们的python文件的图标和文本文件的图标一样。 当然右键也是没有运行、调试选项。 2、无法创建新的项目和py文件,能…

Teachable Machine模型之TensorFlow使用篇

前言: 使用在teachable machine训练的h5格式模型 tensorflow使用篇 1. 使用teachable machine训练模型 地址: 传送门, 需要梯子翻一下 训练后, 导出的时候可以选择三种类型 导出模型文件 converted_keras.zip (py版) 解压后得到 2. py项目中使用模型 根据你当时使用tea…

简介:基于Web的产品3D

基于 Web 的产品 3D 通过可视化界面获得各种选项来个性化他们的产品,例如颜色、材料、尺寸、文字、徽标、零件等。 在过去几年中,随着 3D 建模和渲染软件的出现,3D 渲染现在更常用于营销和促销目的。设计师、制造商和营销人员使用 3D 产品渲…

20240408通过win32diskimager给TF卡写入Ubuntu Core 16.04

20240408通过win32diskimager给TF卡写入Ubuntu Core 16.04 2024/4/8 20:48 IMG固件使用:h3-eflasher-friendlycore-xenial-4.14-armhf-20210618.img 固件不能放倒中文目录里/只能放到英文目录内! 【也不能放到网络磁盘里】映射网络驱动器! Wi…

大模型日报|今日必读的7篇大模型论文

大家好,今日必读的大模型论文来啦! 1.CT-LLM:仅 20 亿参数,基于中文的大型语言模型 来自开源研究社区 Multimodal Art Projection、复旦大学和香港科技大学的研究团队及其合作者,推出了一个 20 亿参数的大型语言模型…

c++配置libtorch

这里写目录标题 LibTorch下载Vistual Studio环境配置C部署Libtorch出现问题、错误汇总检测环境是否配置成功 LibTorch下载 安装LibTorch非常简单,只需要从其官网选择相应的版本即可,具体页面如下图所示。 如果需要加载PyTorch训练的模型文件&#xff0…

Centos中一些有趣的命令

目录 1.sl 小火车 2. cowsay 会说话的牛 3.toilet/figlet 图形化输出 4.aafire 小火焰 5.linux_logo 显示系统logo 1.sl 小火车 yum install sl 2. cowsay 会说话的牛 yum install cowsay 3.toilet/figlet 图形化输出 yum install toilet yum install figlet 4.aafire 小火…

电子电路中,MOS管的开启电压取多少最为合适呢?

电路中,MOS管的开启电压取多少最为合适呢? 比如: 某Nmos VGS范围为正负20V 栅极阈值电压(VGSth)最小为0.8V,最大为1.5V 那么此时的Mos管栅极电压取多少最为合适? 在电路中,MOS管的开…

通过Golang获取公网IP地址

在Go语言中,获取当前的外网(公网)IP地址可以通过多种方法实现。其中一种常见的方法是通过访问外部服务来获取。这些服务可以返回访问者的公网IP地址,例如 httpbin.org/ip 或 ipify.org。下面是一个简单的例子,展示了如…

汇编语言程序设计实验五 条件转移指令

实验目的和要求 (1) 编写实验任务要求的两个程序。 (2) 写出调试以上程序,即修改程序参数,检查结果的操作方法。 (3) 熟悉源程序汇编、连接命令的使用方法即要回答的内容。 实验环境 DOSBOX 实验内容与过程 验证以下程序 16进制数…