文章,程序库评论 - 页 9

新文章 为 MetaTrader 5 开发一款 MQTT 客户端:TDD 方式 已发布: 本文汇报为 MQL5 开发原生 MQTT 客户端的首次尝试。MQTT 是一种客户端-服务器之间发布/订阅消息的传输协议。它轻巧、开放、简单,并且易于实施。这些特性令其非常适合在多种情况下使用。 尽管事实上由于技术堆栈的限制和昂贵的网络成本,它被设计为强大、快速和廉价,但它需要提供具有持续 会话感知 的数据交付 服务品质 ,这令其能够应对不可靠,甚至间断性的互联网连接。 作为一种 二进制协议 ,MQTT 在内存和处理需求方面非常高效。更令人惊奇的是,最小的 MQTT 数据包只有两个字节! 鉴于 MQTT
新文章 用于在EA交易中包含指标的现成模板(第一部分):振荡指标 已发布: 本文从振荡指标类开始研究标准指标,我们将创建现成的模板,用于EA中——声明和设置参数、指标初始化和去初始化,以及从EA中的指标缓冲区接收数据和信号。 将指标包括到EA中并在EA中使用指标缓冲区中的数据是一项相当简单的任务,尽管这需要不断浏览参考资料。我们需要记住传递给指标创建函数的所有参数,将其中一些参数形式化为EA输入,引入有效性检查等。为了获得数据,我们需要编写函数,从所需的柱形中返回必要的数据。所有这些都涉及到花费时间访问帮助、将所需变量输入EA、编写用于接收和监控数据以确定信号的函数等。
新文章 创建综合性猫头鹰交易策略 已发布: 我的交易策略基于经典的基本面,以及在所有类型的市场中广泛采用的指标的改进。 这是一个现成的工具,允许您追随提议的新型盈利交易策略。 最初,只需针对一连串 10 笔亏损交易,和不超过资金 15% 的金额设定最小风险就足够了。 尽管可能性似乎很小,但我们永远不应该忘记可能的市场崩盘、突然的调整、或急剧的跳空式暴涨。 许多交易者没有考虑到长期亏损交易的可能性,而这正是他们最终损失全部资金的主要原因之一。 故此,资金额度应足以克服回撤。 这并不意味着应该准备庞大的资金。 取而代之,这意味着资金规模和交易手数之间存在一定的比例。
新文章 了解使用MQL5下单 已发布: 在创建任何交易系统时,我们都需要有效地处理一项任务。这项任务是下单,或者让创建的交易系统自动处理订单,因为它在任何交易系统中都至关重要。因此,您将在本文中找到您需要了解的关于这项任务的大多数主题,以有效地创建您的交易系统。 订单: 是交易服务器收到的以特定价格打开特定手数或交易量的买卖交易的请求。订单有两种类型,市场订单和挂单。 市场订单: 可以立即以当前市场价格执行的订单。 挂单: 在预定条件下执行交易的订单,该条件涉及在其水平上执行交易的价格和执行交易的时间。 这些挂单可以是以下其中一种: 止损买入(Buy stop):
MA趋势交易与MACD震荡交易利器源码: 利用MACD震荡交易,提示金叉与死叉交易点;同时,利用MA进行趋势交易。趋势与震荡两不误。 作者: Nvjan Inc.
新文章 开发回放系统 — 市场模拟(第 18 部分):跳价和更多跳价(II) 已发布: 显然,目前的衡量度与创建 1-分钟柱线的理想时间相距甚远。这是我们要率先解决的一件事。解决同步问题并不困难。也许这看起来很难,但实际上却很简单。在上一篇文章中,我们没有进行所需的调整,因为它的目的是解释如何把图表上创建 1-分钟柱线的跳价数据转移至市场观察窗口。 我对每篇文章的观念是解释和鼓励人们学习和深入探索 MetaTrader 5 平台和 MQL5 语言。这远远超出了在某处分发的代码中能够看到的内容。我真的希望你们每个人都有创造力和动力,去探索以前从未走过的道路,而非总是做同样的事,就好像所有人在
新文章 测试不同的移动平均类型以了解它们的洞察力 已发布: 我们都知道移动平均指标对很多交易者的重要性。还有其他移动平均线类型在交易中也很有用,我们将在本文中确定这些类型,并将它们中的每一种与最流行的简单移动平均线进行简单比较,看看哪一种可以显示出最好的结果。 在本文中,我们探讨了以下移动平均线类型的性能结果: 自适应移动平均(AMA) 双重指数移动平均(DEMA) 三重指数移动平均线(TEMA) 分形自适应移动平均(FrAMA) 我们为每种类型创建了交易系统,并将其结果与最流行的移动平均线类型简单移动平均线进行比较 作者: Mohamed Abdelmaaboud
新文章 简单均值回归交易策略 已发布: 均值回归是一种逆势交易,交易者预估价格将返回到某种形式的均衡点位,通常依据均值或其它向心趋势统计值来衡量。 许多资产类型,甚至汇率,都观测到均值回归;不过,这个过程也许会持续数年,因此对短线投资者并无价值。 均值回归应当展现出一种对称形式,因为一只股票高于或低于其历史平均水平的频率大致相仿。 历史均值回归模型不会收容证券价格的全部实际行为。 例如,也许会出现新信息,永久性影响标的股票的长期估值。 在破产的情况下,它也许会完全停止交易,永远无法恢复到曾经的历史平均水平。
新文章 神经网络变得轻松(第四十八部分):降低 Q-函数高估的方法 已发布: 在上一篇文章中,我们概述了 DDPG 方法,它允许在连续动作空间中训练模型。然而,与其它 Q-学习方法一样,DDPG 容易高估 Q-函数的数值。这个问题往往会造成训练代理者时选择次优策略。在本文中,我们将研究一些克服上述问题的方式。 在利用 DQN 方法及其衍生品训练各种模型时,经常会出现高估 Q-函数值的问题。这是具有离散动作的两种模型在连续动作空间求解的特征。这种现象的原因,以及消除其后果的方法会因人而异。故此,解决这个问题的一套综合方式很重要。2018 年 2 月发表的文章“
新文章 交易事务. 请求和响应结构、描述和记录 已发布: 本文探讨了处理交易请求结构,即创建请求、将其发送到服务器之前的初步验证、服务器对交易请求的响应以及交易交易的结构。我们将创建简单方便的函数,将交易订单发送到服务器,并根据所讨论的内容,创建EA来通知交易事务。 MQL5具有 OrderSend() 函数,用于设置挂单、打开仓位以及修改订单和仓位。该函数的第一个输入参数是 MqlTradeRequest 交易请求的结构。结构的“action”字段指示要执行的操作类型,其余字段将根据“action”域中所选的操作进行填充。因此,我们通过将交易请求所需的参数传递给函数来向服务器发送各种请求。
任意仓位锁仓: 当达到N个点的利润时建立反向仓位 作者: Vladimir Karputov
新文章 MQL5 中的范畴论 (第 12 部分):秩序(Orders) 已发布: 本文是范畴论系列文章之以 MQL5 实现图论的部分,深入研讨秩序(Orders)。我们通过研究两种主要的秩序类型,实测秩序论的概念如何支持幺半群集合,从而为交易决策提供信息。 在本文中,我们将研究范畴论中的 秩序
新文章 您需要了解的有关MQL5程序结构的所有信息 已发布: 使用任何编程语言的任何程序都有特定的结构。在本文中,您将通过了解MQL5程序结构每个部分的编程基础知识来学习MQL5计划结构的重要部分,这些基础知识在创建可在MetaTrader 5中执行的MQL5交易系统或交易工具时非常有用。 在这一部分中,我们将详细了解预处理器作为一个编程概念。预处理器是编译过程中至关重要的一步。它发生在程序的实际编译之前。在预处理步骤中,将执行各种操作,例如包括文件、确定软件属性、定义常量和导入函数。
新文章 MQL5 中的范畴论 (第 11 部分):图论 已发布: 本文是以 MQL5 实现范畴论系列的续篇。于此,我们验证在开发交易系统的平仓策略时,图论如何与幺半群和其它数据结构集成。 不过,在我们深入讨论之前,先谈谈图论和范畴论之间的主要区别可能会有所帮助。乍一看,两者似乎都是关于连接事项的,这可能会引出路人的问题:为什么它们不是一回事?为了回答这个问题,如果我们以烹饪过程为例,每一步都有其步骤和配方;图论专注于给定配方的准备步骤顺序,以及这些步骤( 路径
新文章 开发回放系统 — 市场模拟(第 17 部分):跳价和更多跳价(I) 已发布: 于此,我们将见识到如何实现一些非常有趣的东西,但同时也会因某些可能十分令人困惑的关键点而极其困难。可能发生的最糟糕的事情是,一些自诩专业人士的交易者却对这些概念在资本市场中的重要性一无所知。好吧,尽管我们在这里专注于编程,但理解市场交易中涉及的一些问题,对于我们将要实现的内容至关重要。
新文章 使用格兹尔算法的循环分析 已发布: 在本文中,我们介绍了在Mql5中实现格兹尔算法(Goertzel algorithm)的代码实用程序,并探讨了将该技术用于分析报价的两种方法,以制定可能的策略。 格兹尔算法(Goertzel algorithm)是一种数字信号处理技术,以其在检测特定频率分量方面的效率而闻名。其精度、实时性和计算效率使其适用于金融时间序列分析。在这篇文章中,我们将研究并演示该方法可用于分析主导周期,从而可能以此开发策略。我们将研究MQL5中算法的实现,并提供一个如何使用代码来识别价格报价中的周期的示例。 Goertzel算法的名字来源于Gerald
新文章 MQL5中的结构及其数据打印方法 已发布: 在本文中,我们将研究MqlDateTime、MqlTick、MqlRates和MqlBookInfo结构,以及从它们打印数据的方法。为了打印结构的所有字段,有一个标准的ArrayPrint()函数,它以方便的表格格式显示数组中包含的数据以及处理结构的类型。 MqlParam 和 MqlTradeRequest 结构传输用于创建指标和向服务器发送交易请求的技术信息。我们根据完成的结构中发送数据的要求结果填写结构的要求字段。换句话说,这些结构并不特别需要打印这些结构的字段由程序员填充的数据
新文章 离散哈特莱变换 已发布: 在本文中,我们将探讨频谱分析和信号处理的方法之一——离散哈特莱变换(discrete Hartley transform,DHT)。它可以过滤信号,分析它们的频谱等等。DHT的性能不亚于离散傅立叶变换(discrete Fourier transform,DFT)。然而,与DFT不同的是,DHT只使用实数,这使得它在实践中更方便实现,并且它的应用结果更直观。 1942年, Ralph Hartley 在他的文章“ 应用于传输问题的更对称傅立叶分析 ”中提出了傅立叶变换的模拟。 就像傅立叶变换( FT )一样,哈特莱变换( HT
新文章 MetaTrader 5 中的出价/要价(Bid/Ask)点差分析 已发布: 一款能为您报告经纪商平台出价/要价(Bid/Ask)水平的指标。 现在我们可以利用 MT5 的即时报价数据来分析近期的历史真实平均买卖点差是多少。 您不需要查看当前点差,因为若您同时显示出价和要价指示线时,该值已出示。 查看这些图表,您可以看到该经纪商平台的点差大部分为 5 个点。 如果是这种情况,那么您在交易得开始和结束往返过程中的成本应该是 1 个点。 故此,对于具有 1/1 回报风险比率、10 点止损和 10 点止盈的交易,您的成本应该为 10% 的风险/投注。
新文章 通过应用程序了解MQL5中的函数 已发布: 函数在任何编程语言中都是至关重要的东西,它有助于开发人员应用(DRY)的概念,这意味着不要重复自己,还有许多其他好处。在本文中,您将找到更多关于函数的信息,以及我们如何使用简单的应用程序在MQL5中创建自己的函数,这些应用程序可以在任何系统中使用或调用。您必须在不使事情复杂化的情况下丰富您的交易系统。
新文章 StringFormat(). 回顾和现成的例子 已发布: 本文继续介绍PrintFormat()函数。我们将简要介绍使用StringFormat()格式化字符串及其在程序中的进一步使用。我们还将编写模板,在终端日志中显示交易品种数据。这篇文章对初学者和有经验的开发人员都很有用。 函数的作用是格式化接收到的参数并返回格式化后的字符串。字符串格式设置规则与 PrintFormat() 函数完全相同。在“ 研究PrintFormat()并应用现成的示例
新文章 了解 MQL5 面向对象编程(OOP) 已发布: 作为开发人员,我们需要学习如何在创建和开发软件时,无需重复代码做到可重用、且灵活,尤其是当我们拥有不同行为的不同对象时。这可以利用面向对象的编程技术和原则来顺滑地达到。在本文中,我们将介绍 MQL5 面向对象编程的基础知识,以便了解如何在我们的软件中利用这一关键主题的原则和实践。 封装是能够在一个类中链接函数和数据的方法,类中的数据和函数可以是私密的,只能在类内访问,也可以是公开的,可以从类的外部访问。封装概念有助于隐藏类实现的复杂性,并令开发人员能够完全掌控其数据,有助于跟踪所有其它依赖的数值,且不会发生冲突。
新文章 DoEasy. 控件 (第 32 部分): 水平滚动条,鼠标轮滚动 已发布: 在本文中,我们将完成水平滚动条对象功能的开发。我们还将令移动滚动条滑块和旋转鼠标滚轮来滚动容器的内容成为可能,以及考虑到 MQL5 中的新订单执行策略,和新的运行时错误代码,在函数库里相应添加。 为了执行测试, 我将使用来自上一篇文章中的 EA ,且不做任何修改。我们编译它,并在图表运行它,“自动调整容器大小以便适应其内容”标志设置为“否”: 我们检查一下所创建水平滚动条功能所有组件的操作: 一切都按计划工作。 作者: Artyom Trishkin
新文章 研究PrintFormat()并应用现成的示例 已发布: 这篇文章对初学者和有经验的开发人员都很有用。我们将研究PrintFormat()函数,分析字符串格式的示例,并编写用于在终端日志中显示各种信息的模板。 在日志或监视器屏幕上显示数值是一种简单而熟悉的操作,除非您需要显示比“你好,世界”更复杂的内容。但是,当您需要对不经常需要的值或属性进行格式化输出时,迟早会出现这种情况。当然,您可以查看MQL5的帮助。 但有时你想要一个现成的资料集合,用于显示MetaTrader 5终端提供的各种信息。在本文中,我们将尝试理解调用 PrintFormat
新文章 神经网络变得轻松(第四十七部分):连续动作空间 已发布: 在本文中,我们扩展了代理者的任务范围。训练过程将包括一些资金和风险管理等方面,这是任何交易策略不可或缺的部分。 在上一篇文章中,我们训练的代理者只是为了判定交易方向。代理者的动作范围仅限于 4 个选项: 买入, 卖出, 持有/等待, 所有持仓平仓。 于此,我们没看到资本和风险管理功能。我们在所有交易操作中采用了最小手数。这足以评估训练方式,但构建交易策略尚嫌不足。一个可盈利交易策略再简单也必须有一个资金管理算法。 此外,为了创建一个稳定的交易策略,我们需要管理风险。我们的设计中也缺少这个模块。EA
新文章 重新审视一种旧时的趋势交易策略:两个随机振荡指标,一个移动平均指标和斐波那契线 已发布: 旧时的交易策略本文介绍了一种纯技术型的趋势跟踪策略。该策略纯粹是技术性的,使用一些技术指标和工具来传递信号和目标。该策略的组成部分如下:一个周期数为14的随机振荡指标,一个周期数为5的随机振荡指标,一个周期数为200的移动平均指标,一个斐波那契投影工具(用于设定目标)。 该策略的交易规则如下:
VTS_Float_Pivot_Smoothed: 使用 Float_Pivot_Smoothed 通道的趋势指标 VTS。 作者: Nikolay Kositsin
新文章 使用MQL5轻松创建图形面板 已发布: 在这篇文章中,我们将为任何需要创建交易中最有价值和最有用的工具之一的人提供一个简单易行的指南,即简化和轻松执行交易任务的图形面板,这有助于节省时间,并在不受任何干扰的情况下更多地关注您的交易过程本身。 编译代码并执行后,我们可以发现面板显示如下:
新文章 在 MQL4 和 MQL5 框架下开发 OpenAI 的 ChatGPT 功能 已发布: 在本文中,我们将尝鲜来自 OpenAI 的 ChatGPT,从而了解它在降低开发智能系统、指标、和脚本的时间和劳动强度方面的能力。我将引导您快速通览这项技术,并尝试向您展示如何正确地使用它在 MQL4 和 MQL5 中进行编程。 我认为,当人们学习这种技术时,他们所有人开始大致分为三个子组: “现在我们将制作一个超级算法” 这是那些对人工智能持谨慎态度,并质疑其实用性的人 机器不可能比人类更好。这一切都只是一种炒作 我很久以前就开始掌握这项技术,且在一开始我属于第三类人。在与这个 AI
新文章 在莫斯科交易所(MOEX)里使用限价订单进行自动网格交易 已发布: 本文研究针对 MetaTrader 5 平台开发 MQL5 智能交易系统(EA),旨在能在 MOEX 上操作。 该 EA 采用网格策略,面向 MetaTrader 5 终端,并在 MOEX 上进行交易。 EA 包括了依据止损和止盈平仓,以及在某些市场条件下取消挂单。 如果止损和止盈的数值不为零,则除了激活买入和卖出限价订单值外,它们的价位也将显示在交易终端中: 图例 4.2. 在 VTBR-6.22 上使用网格 EA,止损和止盈值均非零 结果就是,我们拥有一个限价订单网格,当最低和最高价格范围内全部激活后,重新设置。