文章,程序库评论 - 页 2

新文章 群体优化算法:差分进化(DE) 已发布: 在本文中,我们将讨论在前面讨论过的所有算法中最有争议的算法 - 差分进化算法(Differential Evolution,DE)。 差分进化的理念是简单和高效的结合。差分进化算法使用代表潜在解决方案的向量群,每个矢量由代表优化问题变量值的分量组成。 在 DE 中,向量扮演搜索代理的角色。该算法首先创建一个随机向量群,然后会出现一个迭代过程,在这个过程中,每个向量都会发生变异,并与种群中的其他向量交叉。突变是通过将从群体中随机选择的两个向量的差值加到第三个向量上实现的。这样就创建了一个新的向量,它代表问题的潜在解决方案。
新文章 精通模型解释:从您的机器学习模型中获取深入见解 已发布: 机器学习对于任何经验的人来说都是一个复杂而回报的领域。在本文中,我们将深入探讨为您所构建模型提供动力的内在机制,我们探索的错综复杂的世界,涵盖特征、预测和化解复杂性的有力决策,并牢牢把握模型解释。学习驾驭权衡、强化预测、特征重要性排位的艺术,同时确保做出稳健的决策。这篇基本读物可帮助您从机器学习模型中获得更高的性能,并为运用机器学习方法提取更多价值。 在本文中,我们的意向是采用 CatBoost Python
新文章 MetaTrader 5中的蒙特卡罗置换测试 已发布: 在本文中,我们将了解如何仅使用 Metatrader 5在任何 EA 交易上基于修改的分时数据进行置换测试。 显然,导出文件后,记下文件的保存位置,并使用任何电子表格应用程序打开它。下图显示了免费的OpenOffice Calc的使用情况,其中在表底部添加了一个新行。在继续之前,明智的做法是删除不应包含在计算中的交易品种行。在每个相关的对应列下,使用自定义宏计算p值。宏的公式参考置换交易品种的性能度量(位于所示文档中的行18中)以及每列的置换交易品种的性能度量。宏的完整公式如图所示。
MACD双线指标: MACD称为异同移动平均线,是从双指数移动平均线发展而来的,由快的指数移动平均线(EMA12)减去慢的指数移动平均线(EMA26)得到快线DIF,再用2×(快线DIF-DIF的9日加权移动均线DEA)得到MACD柱。MACD的意义和双移动平均线基本相同,即由快、慢均线的离散、聚合表征当前的多空状态和股价可能的发展变化趋势,但阅读起来更方便。当MACD从负数转向正数,是买的信号。当MACD从正数转向负数,是卖的信号。当MACD以大角度变化,表示快的移动平均线和慢的移动平均线的差距非常迅速的拉开,代表了一个市场大趋势的转变。 作者: supertrouper
新文章 群体优化算法:螺旋动态优化 (SDO) 算法 已发布: 文章介绍了一种基于自然界螺旋轨迹构造模式(如软体动物贝壳)的优化算法 - 螺旋动力学优化算法(Spiral Dynamics Optimization,SDO)。我对作者提出的算法进行了彻底的修改和完善,本文将探讨这些修改的必要性。 螺旋动力学优化(Spiral Dynamics Optimization,SDO)是由 Tamura 和 Yasuda 于 2011 年提出的最简单的物理算法之一,它是利用自然界中的对数螺旋现象而开发的。算法简单,控制参数少。此外,该算法还具有计算速度快、局部搜索能力强、前期多样化和后期强化等特点。
新文章 软件开发和 MQL5 中的设计范式(第一部分):创建范式 已发布: 有一些方法可以用来解决许多重复性的问题。一旦明白如何运用这些方法,就可助您有效地创建软件,并贯彻 DRY(不要重复自己)的概念。在这种境况下,设计范式的主题就非常好用,因为它们为恰当描述过,且重复的问题提供了解决方案。 创建范式的类都采用继承概念,故各种类都可作为一个实例,而创建范式对象实例的任务则交给另一个对象。当软件更多地关注对象组合远超类继承时,就会令创建范式变得更加重要。 我们可以说创建范式有两个反复出现的主题: 它们用到封装的概念来把握系统可以使用的具体类。, 它们把创建类实例的方法组合在一起,并加以隐藏。
新文章 以马丁格尔(翻倍加仓)为基础的长线交易策略已发布: 在本文中,我们将深入研究马丁格尔(翻倍加仓)系统。 我们将评测该系统是否可以用于实盘交易,以及在运用它时如何将风险减至最小。 这一简单系统的主要缺点在于很可能会将全部存款亏损。 如果您决定使用马丁格尔技术进行交易,则必须考虑这一事实。 马丁格尔操作在不同的市场也许有所不同。 因此,如果可能的话,最好选择最适合这种交易策略的市场。 外汇市场被认为是一种范定化。 股票市场被认为是一种趋势化。 由此外汇可能更适合马丁格尔技术。 在股票市场中运用这种策略则存在很多危险。 其中最重要的是股票价格可以等于零。...
新文章 软件开发和 MQL5 中的设计模式(第 2 部分):结构模式 已发布: 在了解了设计模式适用于 MQL5 和其他编程语言,并且对于开发人员开发可扩展、可靠的应用程序有多么重要之后,我们将在本文中继续介绍设计模式。我们将学习另一种类型的设计模式,即结构模式,了解如何利用我们所拥有的类组成更大的结构来设计系统。 当我们有一个抽象概念,而这个抽象概念又有许多可能的实现时,就可以使用桥接模式,而不是使用通常的继承方法将实现与抽象概念联系起来,我们可以使用这种模式将抽象概念与它的实现解耦,以避免在变更或更新时出现任何问题。这对于创建可重用、可扩展、易测试的简洁代码非常有用。
新文章 MQL5 中的组合对称交叉验证 已发布: 在本文中,我们介绍使用纯 MQL5 语言实现组合对称交叉验证的情况,以衡量使用策略测试器的慢速完全算法优化策略后可能出现的过拟合程度。 有时,在创建自动策略时,我们一开始会根据某些指标制定规则大纲,但这些规则需要以某种方式加以完善。这一完善过程包括对所选指标的不同参数值进行多次测试。通过这样的处理,我们就能找到能使利润或我们关心的其他标准最大化的指标值。这种做法的问题在于,由于金融时间序列中普遍存在噪声,我们会引入一定的乐观偏差。这种现象被称为过度拟合。
相对动量指数: 相对动量指数(Relative Momentum Index ,RMI) 是 RSI 指标的一个变体。RMI 对当天和相对当天X天之前的收盘价上涨或者下跌做计数 (对于 RSI 就是 X等于1),RSI计算的是每天之间的收盘价的上涨下跌次数。 作者: Mladen Rakic
新文章 您应当知道的 MQL5 向导技术(第 09 部分):K-Means 聚类与分形波配对 已发布: “K-均值”聚类采用数据点分组的方式,该过程最初侧重于数据集的宏观视图,使用随机生成的聚类质心,然后放大并调整这些质心,从而准确表示数据集。我们将对此进行研究,并开拓一些它的用例。 默认情况下,“k-均值” 实际上非常缓慢且效率低下,这就是为什么它通常被称为朴素 “k-均值”,“朴素”意味着有更快的实现。这种苦差事的一部分源于在优化开始时,数据集是随机分配初始质心。此外,在随机选择质心之后,通常运用 劳埃德(Lloyd)算法
新文章 群体优化算法:智能水滴(IWD)算法 已发布: 文章探讨了一种源自无生命自然的有趣算法 - 模拟河床形成过程的智能水滴(IWD,Intelligent Water Drops)。这种算法的理念大大改进了之前的评级领先者 - SDS。与往常一样,新的领先者(修改后的 SDSm)可在附件中找到。 IWD
新文章 MQL5 — 您也可以成为该语言的大师 已发布: 本文将是一次自我访谈,我将告诉您我是如何迈出 MQL5 语言的第一步的。 我将向您展示如何成为一名出色的 MQL5 程序员。 我将为您解释实现这一壮举的必要基础。 唯一的先决条件是愿意学习。 许多人认为,既然我已经知道如何用 C/C++ 编程,我就应该立即开始用 MQL5 进行复杂而繁琐的项目。 我希望我能说,这只是一切的开始。 然而,现实却大相径庭。 每当我们迈出开发自己的解决方案的第一步时,我们通常会从我们自认为明白的东西开始。 就我而言,当我开始使用 MQL5 时,我手头只有语言文档。
交易者的MQL5编程(MQL5 Programming for Traders) - 源代码第七部分 : 在本书的最后,即第七部分讨论了MQL5 API的高级功能,这在为MetaTrader 5开发程序时发挥重要作用。其中包括自定义交易品种、内置经济日历事件以及网络、数据库和加密等通用技术。 作者: MetaQuotes
新文章 掌握 MQL5:从入门到精通(第一部分):开始编程 已发布: 本文是有关编程的系列文章的概述。这里假设的是读者之前从未接触过编程,因此,本系列从最基础的地方开始。编程知识水平:绝对的新手。 最后,我们要开始实践了!目前,我们将在 MetaEditor 中完成所有工作。它可以使用快捷方式(从桌面或开始菜单)启动,也可以直接从 MetaTrader 终端使用下图所示的方法之一启动( 图 1 )。 。 图1 . 打开 MetaEditor 的三种方法:1 - 工具栏按钮,2 - 菜单,3 - 热键 (F4) 作者: Oleh Fedorov
新文章 如何利用 MQL5 创建简单的多币种智能交易系统(第 5 部分):凯尔特纳(Keltner)通道上的布林带 — 指标信号 已发布: 本文中的多币种 EA 是一款智能交易系统或交易机器人,可以仅从一个品种图表中交易(开单、平单和管理订单,例如:尾随止损和止盈)多个品种(对)。在本文中,我们将用到来自两个指标的信号,在本例中为凯尔特纳(Keltner)通道上的布林带®。 布林带®由约翰·布林格(John Bollinger)在 1980 年代创造,并迅速成为技术分析领域使用最广泛的指标之一。布林带®由三条波带组成 — 上边带、中轨和下边带 —
  指标: 双线MACD  (42   1 2 3 4 5)
双线MACD: 本指标MACD(2lines)是基于国内的股票软件通达信的MCAD改编。 作者: Ziheng Zhuang
新文章 RSI深三步交易技巧 已发布: 在MetaTrader 5中展示RSI深三步交易技术。本文基于一系列新的研究,这些研究展示了一些基于RSI的交易技术,RSI是一种技术分析指标,用于衡量股票、货币或商品等证券的强度和动量。 深三步技术有一个有趣的假设,该假设指出,通常每当RSI进入超卖或超买水平,并形成连续三次更深的移动,而第四次移动是确认(也必须更深),那么就可以给出信号。交易条件如下:
新文章 神经网络变得简单(第 67 部分):按照过去的经验解决新任务 已发布: 在本文中,我们将继续讨论收集数据至训练集之中的方法。显然,学习过程需要与环境不断互动。不过,状况可能会有所不同。 强化学习建立在与环境互动过程时从环境中获得的最大奖励之上。显然,学习过程需要与环境不断互动。不过,状况有所不同。在解决某些任务时,我们与环境交互时可能会遇到各种限制。对于这种状况,一个可能的解决方案是使用离线强化学习算法。它们允许您依据与环境初步交互期间收集的有限轨迹存档(当它可用时)上训练模型。
新文章 您应当知道的 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 键吗?