文章,程序库评论 - 页 11

新文章 您应当知道的 MQL5 向导技术(第 08 部分):感知器 已发布: 感知器,单隐藏层网络,对于任何精熟基本自动交易,并希望涉足神经网络的人来说都是一个很好的切入点。我们查看这是如何在一个信号类当中一步一步组装实现的,其是 MQL5 向导类中用于智能交易系统的部分。 MQL5 向导 Expert-Signal 类在 “Include\Expert\Signal”
新文章 CatBoost 模型中的交叉验证和因果推理基础及导出为 ONNX 格式 已发布: 本文提出了使用机器学习创建 EA 交易的方法。 正如我们的结论经常是错误的并且需要验证一样,机器学习模型的预测结果也应该经过仔细检查。如果我们将反复检查的过程转向我们自己,我们就能获得自制力。机器学习模型的自我控制归结为在不同但相似的情况下多次检查其预测的错误。如果模型平均犯的错误很少,则意味着它没有过度训练,但如果它经常犯错误,那么它就有问题了。
新文章 群体优化算法:带电系统搜索(CSS)算法 已发布: 在本文中,我们将探讨另一种受无生命自然启发的优化算法--带电系统搜索(Charged System Search,CSS)算法。本文旨在介绍一种基于物理和力学原理的新的优化算法。 在物理学中,电荷周围的空间具有一种称为电场的特性。这种场对其他带电物体产生一种力。点电荷周围的电场由库仑定律决定。库仑证实,任何两个带电小球之间的电场力与粒子间沿连接线的距离的平方成反比,与两个粒子的电荷乘积成正比。此外,还可以利用高斯定律,即电场大小与粒子间的距离成正比,来求得带电球体内部某个点的电场大小。利用这些原理,CSS
  EA: FullDump  (1)
FullDump: 基于指标 iBands (布林带,BB) 和 iRSI (相对强弱指数,RSI) 的交易策略。 作者: Vladimir Karputov
新文章 交易者容易使用的止损和止盈 已发布: 止损(stop loss)和止盈(take profit)对交易结果有重大影响。本文将介绍几种寻找最佳止损单价格的方法 。 止损和止盈是在价格达到其设定值时平仓的停止单。止损可以让交易者限制损失,而止盈则可以让交易者保住收益。使用止损和止盈的主要好处在于能够控制金融风险和进行资金管理。 但有些交易者倾向于不使用止损单。他们的理由很简单,有些情况下,价格到达止损点后会反转,如果没有止损,头寸可能会以取得利润平仓。同样的道理也适用于止盈。达到其价格水平后,进行平仓。但是,价格仍继续朝同一方向移动,如果没有设置止盈,本可以获得额外利润。
新文章 种群优化算法:Nelder-Mead(NM),或单纯形搜索方法 已发布: 本文表述针对 Nelder-Mead 方法进行的彻底探索,解释了如何在每次迭代中修改和重新排列单纯形(函数参数空间),从而达成最优解,并讲述了如何改进该方法。 Nelder-Mead 方法由 John Nelder 和 Roger Mead 于 1965 年开发。他们那时正在寻找一种优化方法,能配合没有导数、或没有导数解析方程的函数工作。他们还打算开发一种易于实现且高效的方法,从而在当时的计算机上使用。这项研究激发了他们使用单纯形的灵感 — 函数参数空间中的多面体。 该方法的创建历史始于约翰·内尔德(John
新文章 开发回放系统(第 36 部分):进行调整(二) 已发布: 让我们的程序员生活举步维艰的原因之一就是做出假设。在本文中,我将向您展示假设是多么危险:例如在 MQL5 编程中假设类型将具有某个特定值,或是在 MetaTrader 5 中假设不同服务器的工作方式相同。 当 EA 位于图表上时,它会通知它所检测到的账户类型。这对于了解 EA 应如何行动非常重要。不过,尽管这样做效果很好,但当系统在真实账户或模拟账户的图表上运行时,系统不会使用控制重放/模拟系统的控制功能,也不会报告资产所属的账户类型,而是报告平台运行的账户类型。这个问题虽然不大,但确实给我们带来了一些不便。
新文章 神经网络变得简单(第 65 部分):距离加权监督学习(DWSL) 已发布: 在本文中,我们将领略一个有趣的算法,它是在监督和强化学习方法的交叉点上构建的。 行为克隆方法,大部分基于监督学习的原理,展现出相当良好的结果。但它们的主要问题仍然是寻找偶像般的模型,而这些有时很难收集。反之,强化学习方法能够依据非最优原数据工作。同时,它们可以找到次优政策来达成目标。然而,在寻找最优政策时,我们时常会到一个优化问题,其与高维和随机环境更多关联。 为了弥合这两种方式之间的间隙,一群科学家提出了 距离加权监督学习(DWSL) 方法,并在文章 《离线交互数据的距离加权监督学习》
新文章 开发回放系统(第 35 部分):进行调整 (一) 已发布: 在向前迈进之前,我们需要解决几个问题。这些实际上并不是必需的修正,而是对类的管理和使用方式的改进。原因是系统内的某些相互作用导致了故障的发生。尽管我们试图找出这些故障的原因以消除它们,但所有这些尝试都没有成功。其中有些情况完全不合理,例如,当我们在 C/C++ 中使用指针或递归时,程序就会崩溃。 在上一篇文章 《开发回放系统》(第 34 部分)中:订单系统 (三)
新文章 开发具有 RestAPI 集成的 MQL5 强化学习代理(第 1 部分):如何在 MQL5 中使用 RestAPI 已发布: 在本文中,我们将讨论 API(Application Programming Interface,应用程序编程接口)对于不同应用程序和软件系统之间交互的重要性。我们将看到 API 在简化应用程序间交互方面的作用,使它们能够有效地共享数据和功能。 在编程和系统开发中,不同应用程序之间的通信至关重要。API(Application Programming
新文章 开发回放系统(第 34 部分):订单系统 (三) 已发布: 在本文中,我们将完成构建的第一阶段。虽然这部分内容很快就能完成,但我将介绍之前没有讨论过的细节。我将解释一些许多人不理解的问题。你知道为什么要按 Shift 或 Ctrl 键吗?
新文章 如何利用 MQL5 创建简单的多币种智能交易系统(第 4 部分):三角移动平均线 — 指标信号 已发布: 本文中的多币种 EA 是智能交易系统或交易机器人,能从一个品种的图表里交易(开单、平单、及管理订单,例如:尾随止损和止盈)多个品种(货币对)。这次我们只会用到 1 个指标,即多时间帧或单一时间帧中的三角移动平均线。 本文中多币种 EA 的定义是一款智能交易系统或交易机器人,它可以从一个品种的图表里交易(开单、平单、及管理订单,例如:尾随止损和止盈)多个品种(货币对),在本文中,EA 将会交易 30 个对。 这次我们只会用到 1 个指标,即多时间帧或单一时间帧模式下的三角移动平均线。
新文章 机器学习中的量化(第 2 部分):数据预处理、表格选择、训练 CatBoost 模型 已发布: 本文探讨了量化在树模型构建中的实际应用。探讨了选择量化表和数据预处理的方法。没有使用复杂的数学方程。 让我们使用描述 Q_Error_Selection 脚本功能的示例来探讨我已经实现的数据预处理方法。
新文章 神经网络变得简单(第 64 部分):保守加权行为克隆(CWBC)方法 已发布: 据前几篇文章中所执行测试的结果,我们得出的结论是,训练策略的最优性很大程度上取决于所采用的训练集。在本文中,我们将熟悉一种相当简单,但有效的方法来选择轨迹,并据其训练模型。 该方法的作者提出了一种新的保守性正则化器,用于回报条件化的行为克隆方法,显式鼓励政策停留在接近原始数据分布。该思路是当条件化回报位于大量分布之外时,为了停留在接近分布内的动作,而强制执行预测动作。这是通过往拥有高回报轨迹里的 RTG 添加正值噪声,并惩罚预测动作与地面实况之间的 L2
新文章 神经网络变得简单(第 63 部分):决策转换器无监督预训练(PDT) 已发布: 我们将继续讨论决策转换器方法系列。从上一篇文章中,我们已经注意到,训练这些方法架构下的转换器是一项相当复杂的任务,需要一个大型标记数据集进行训练。在本文中,我们将观看到一种使用未标记轨迹进行初步模型训练的算法。 至于优调期间,我需要连续数十次下游训练和测试迭代,这也需要时间和精力。 然而,学习结果并不那么乐观。作为训练的结果,我得到了一个模型,其按最小手数交易,并取得了不同的成功率。在历史的某些部分,余额曲线展示出明显的上升趋势。在另一些部分,则明显下降。泛泛来说,依据训练数据和新集合,模型的结果都接近于
新文章 如何利用 MQL5 创建简单的多币种智能交易系统(第 3 部分):添加交易品种、前缀和/或后缀、以及交易时段 已发布: 若干交易员同事发送电子邮件或评论了如何基于经纪商提供的名称里带有前缀和/或后缀的品种使用此多币种 EA,以及如何在该多币种 EA 上实现交易时区或交易时段。 在 上一篇文章 中,我说过,这个多币种智能交易系统不适用于经纪商提供的含有前缀或后缀的品种或货币对。 在仅适用于单一货币对的 EA 中(一个 EA 只对一个货币对起作用),经纪商的品种名称含有前缀和/或后缀也不会出现任何问题。 但是在我创建的多币种 EA 中,这成了一个问题,因为我们首先注册了 30
Trailing Stop Management Function : Filter orders based on the set magic number, execute the final stop loss management function, adjust the Stoploss and TrailingStop parameters, and place the Management function according to the structure of ea. It is recommended to place it under void OnTick() 作者:
新文章 神经网络变得简单(第 62 部分):在层次化模型中运用决策转换器 已发布: 在最近的文章中,我们已看到了运用决策转换器方法的若干选项。该方法不仅可以分析当前状态,还可以分析先前状态的轨迹,以及在其中执行的动作。在本文中,我们将专注于在层次化模型中运用该方法。 事实证明,收集 2023 年前 7 个月历史区间的训练样本是相当劳累的。我遇到了一个问题,即便智能体动作采样的界限很小,大多数验算也无法满足余额正增长需求。 为了在优化模式下选择最优计划界限,将每次验算的迭代次数调整为优化参数。
根据设置的magic number筛选订单,执行追踪止损管理的函数 : 根据设置的magic number筛选订单,执行最终止损Management()管理的函数,Stoplose和TrailingStop 参数可调整,Management()函数可以根据ea的结构进行放置,建议放置在void OnTick()下 作者: Rahos hoo
根据magic number计算当前账号最后一次成交量 : 这是一个简单的function,根据magic number计算当前账号最后一次成交量,你可以自己设置magic number 作者: Rahos hoo
新文章 Scikit-Learn 库中的分类模型及其导出到 ONNX 已发布: 在本文中,我们将探讨使用 Scikit-Learn 库中所有可用的分类模型来解决 Fisher 鸢尾花数据集的分类任务。我们将尝试把这些模型转换为 ONNX 格式,并在 MQL5 程序中使用生成的模型。此外,我们将在完整的鸢尾花数据集上比较原始模型与其 ONNX 版本的准确性。 在新闻稿 “ONNX Runtime 现已开源” 中,声明了 ONNX Runtime 还支持 ONNX-ML 配置文件: ONNX Runtime是第一个完全支持 ONNX 1.2及更高版本(包括 ONNX-ML
新文章 神经网络变得简单(第 61 部分):离线强化学习中的乐观情绪问题 已发布: 在离线学习期间,我们基于训练样本数据优化了智能体的政策。成品政策令智能体对其动作充满信心。然而,这种乐观情绪并不总是正当的,并且可能会在模型操作期间导致风险增加。今天,我们要寻找降低这些风险的方法之一。
新文章 您应当知道的 MQL5 向导技术(第 07 部分):树状图 已发布: 出于分析和预测目的而把数据分类是机器学习中一个非常多样化的领域,它具有大量的方式和方法。本文着眼于一种这样的方式,即集聚层次化分类。 本文是有关使用 MQL5 向导系列文章的一部分,着眼于 树状图 。我们已经研究了一些对于交易者很实用的使用 MQL5 向导思路,例如: 线性判别分析 、 马尔可夫链 、 傅里叶变换 、和其它一些想法,本文旨在尽力深入探查利用 MetaQuotes 移植的大量 ALGLIB 代码的能力、配合内置的 MQL5 向导、熟练测试和开发新思路的途径。 集聚层次化分类
新文章 开发回放系统(第33部分):订单系统(二) 已发布: 今天,我们将继续开发订单系统。正如您将看到的,我们将大规模重用其他文章中已经展示的内容。尽管如此,你还是会在这篇文章中获得一点奖励。首先,我们将开发一个可以与真实交易服务器一起使用的系统,无论是从模拟账户还是从真实账户。我们将广泛使用MetaTrader 5平台,该平台将从一开始就为我们提供所有必要的支持。
新文章 神经网络实验(第 7 部分):传递指标 已发布: 传递指标至感知器的示例。本文讲述了一般概念,并展示了最简单的现成智能交易系统,后随其优化和前向验算结果。 阅读大量这个主题的文章,我持续观察到一个悲伤的场面,那就是基于神经网络的交易系统的直接结果。许多好的思路和算法却并未带来期待的结果。 在传递输入参数时,始终会观察到相同的画面。例如,振荡器值的直接传递,以我的观点,这与资产价格没有任何共通之处。振荡器有一个众所周知的问题 —
新文章 群体优化算法:随机扩散搜索(SDS) 已发布: 本文讨论了基于随机游走原理的随机扩散搜索(Stochastic Diffusion Search,SDS)算法,它是一种非常强大和高效的优化算法。该算法允许在复杂的多维空间中找到最优解,同时具有高收敛速度和避免局部极值的能力。 有趣的事实: 1. 随机扩散搜索(SDS)是第一个群智能元启发式算法,属于群智能和自然搜索优化算法的家族。这种算法的其他例子是蚁群优化、粒子群优化和遗传算法。 2. 与基于柱头能量通信的蚁群优化不同,SDS使用代理之间的直接通信,类似于细齿蚁使用的串联呼叫机制。
新文章 神经网络变得简单(第 60 部分):在线决策转换器(ODT) 已发布: 最近两篇文章专门介绍了决策转换器方法,其在期望奖励的自回归模型境况下针对动作序列进行建模。在本文中,我们将研究该方法的另一种优化算法。 在线决策转换器算法对决策转换器进行了关键修改,从而确保高效的在线训练。第一步是泛化概率训练目标。在这种境况下,目标是训练一个随机政策,取最大化重复轨迹的概率。 在线 RL 算法的主要属性是它能够平衡探索和开发。即使采用随机政策,传统的 DT 公式也并未考虑探索。为了解决这个问题,ODT
新文章 群体优化算法:思维进化计算(MEC)算法 已发布: 本文探讨了MEC家族的算法,称为简单思维进化计算(Simple Mind Evolutionary Computation, Simple-MEC,SMEC)算法。该算法以其思想之美和易于实现而著称。 在解决复杂的高维问题时,进化计算中使用的群体算法比经典算法具有许多优势。它们可以更有效地找到与最优解足够接近的次优解,这在实际优化问题中通常是可以接受的。 进化计算中一种有趣的方法是Chengai和他的合著者于1998年提出的思维进化计算(Mind Evolutionary
新文章 神经网络变得简单(第 59 部分):控制二分法(DoC) 已发布: 在上一篇文章中,我们领略了决策变换器。但是,外汇市场复杂的随机环境不允许我们充分发挥所提议方法的潜能。在本文中,我将讲述一种算法,旨在提高在随机环境中的性能。 控制二分法是斯多葛学派(Stoicism)的逻辑基础。它意味着一种思辨,即我们周围的一切存在都可以分为两部分。第一个受制于我们,完全在我们的控制之下。我们无法全面控制第二个,无论我们采取什么动作,事件都会发生。 我们正在操控第一个领域,同时认为第二个是理所当然的。 “控制二分法”方法的作者在他们的算法中实现了类似的假设。DoC
新文章 群体优化算法:混合蛙跳算法(SFL) 已发布: 本文详细描述了混合蛙跳(Shuffled Frog-Leaping,SFL)算法及其在求解优化问题中的能力。SFL算法的灵感来源于青蛙在自然环境中的行为,为函数优化提供了一种新的方法。SFL算法是一种高效灵活的工具,能够处理各种数据类型并实现最佳解决方案。 混合蛙跳(SFL)算法是由M.Eusuff 和其他一些作者在2003年提出的。该算法结合了模因算法和粒子群算法的原理,其设计灵感来自一群青蛙在觅食过程中的行为。 SFL算法最初是作为一种求解组合优化问题的元启发式方法而开发的。它是基于数学函数和启发式搜索的使用。