问题标签 [mql5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
796 浏览

mql5 - 我如何在 Expert Advisor 上获取交易量数据?

我如何在 Expert Adviser 上获取交易量数据?(不是指标)

我知道那种在指标上获得交易量的方法。所以我想将交易量数据带给 Expert Adviser。
我该怎么做?

0 投票
1 回答
161 浏览

statistics - 访问前向测试统计数据

我正在使用该TesterStatistics()函数(从该OnDeinit()函数调用)来导出各种策略测试统计值:

这可行,但似乎仅限于简单的回测。

如何导出回测和前测结果?


前向测试的结果显示在单独的选项卡“前向”上。远期周期的开始日期在图表上由一条垂直线标记:

前向测试的结果

我可以通过编程方式访问这些信息吗?

0 投票
0 回答
457 浏览

mql5 - 如何创建自定义交易品种并从远程服务器实时提供图表数据?

我正在尝试学习如何为 MT5 创建一个 MQL5 库(我认为它应该是一个库,但不太确定)以创建新符号并实时从公共交易所 API 提供这些符号图表数据。

我尝试在这些行中搜索一些教程或示例,但我能找到的最好的是这篇文章。也许我没有搜索正确的关键字。

我不是要求一个完整的教程或示例代码来做到这一点,但也许是一些更简单的例子,所以我可以对如何完成它有一个指导。

因此,简而言之,是否有一些示例代码、教程或文档说明如何以编程方式创建新的自定义交易品种、从网络检索图表数据、将这些数据添加到自定义交易品种图表并实时(或接近真实)更新其数据-时间)?

在这方面的任何帮助将不胜感激!

0 投票
1 回答
223 浏览

mql5 - 如何在 MQL5 中制作信号链?

在我的自定义信号中,我想从其他信号( inLongCondition()ShortCondition())中收集结果,然后分析它们并返回新的、更新的多头和空头条件结果。

其他信号必须在其他时间范围内起作用。

如何将其他信号包含到我的主要信号中?

由于复杂的交易策略逻辑,在智能交易系统中执行此AddFilter()操作不是一种选择。

0 投票
2 回答
932 浏览

mql5 - 如果止损不为 0,ExpertMACD 提高 [无效止损]

请考虑我刚刚开始使用 MQL5。

只是为了学习,我在 Alpari-MT5-Demo 账户的 BTCUSD H1 货币对上运行了 ExpertMACD 上的 MT5 EA 优化(预装在 MT5 中)。

一切正常,直到 2017 年 7 月的数据,此后顾问不再发展,它一遍又一遍地进行 0 次交易(屏幕截图)。在回测的情况下也是如此,从 2017 年 7 月的数据来看,它没有进行任何交易。

在测试日志中,出现错误[invalid stops]。如果我从要优化的输入中取消选择止损水平并将默认值设置为 0,那么一切都会再次运行,尽管不再使用止损。

你能解释一下发生了什么吗?为什么一个在整个历史上工作的顾问从 2017 年 7 月起停止工作?(我检查了分时数据,一切正常) 为什么取消止损会使其再次进行交易?

在此处输入图像描述

附言

我注意到,当 BTCUSD 的价差(突然)从 2 变为 13000(是的,没有逗号)时,顾问崩溃了,这当然会弄乱顾问,而且通常没有意义。这怎么可能?在这种情况下我该怎么办?我检查了其他经纪人,他们都显示 2017 年 7 月某处出现的点差增加相同。

深入了解 Alpari 网站,我发现BTCUSD 的平均点差值确实很高。再说一次,这怎么可能?为什么会这样?(也许与叉子有关?这对我来说毫无意义)

最后,在这种情况下,您将如何修改 ExpertMACD 以正确下单,包括合理的止损?

ExpertMACD的代码如下:

更新

过了一会,Alpari的客服回答:

点差在我们网站的规范中正确显示。点差由点后的 3 位数字指定。买入价和卖出价之间的差价约为 19 美元。

因此,19094 的价差实际上是 19.094。

0 投票
1 回答
319 浏览

class - 如何从类中读取函数值?

如何读取CheckPatternAllBullish()类 中函数的值CCandlePattern

我想在里面读void OnTick(){...}

错误:“candlepatterns.mqh”中的指针访问无效 (60,64)

第 60 行是:

代码是:

文件candlepatterns.mqh

错误:“candlepatterns.mqh”中的指针访问无效 (162,20)

0 投票
2 回答
2054 浏览

mql5 - MQL5 CTrade Buy() 函数

我是 MQL5 的新手。我曾经在 MQL4 中开发过很多东西,现在我也在尝试让我的代码在 MQL5 中工作。出于某种原因,我似乎无法进行非常简单的操作,例如开立买入头寸。我正在使用这样的东西:

我只想开一个手数为 的买入头寸0.1

在 StrategyTester 中,它首先打开一个手数大小的头寸0.1(到目前为止一切都很好),但过了一段时间该头寸被关闭(还不知道它为什么被关闭),然后一个新的买入头寸被打开尽可能大的批量。

我究竟做错了什么?

0 投票
2 回答
195 浏览

struct - 结构有对象并且不能被复制,尽管不存在复杂的结构

我有以下 MQL 代码:

但是,由于以下错误, MetaTrader 平台不会编译该文件:

'=' - 结构有对象并且不能被复制 TestTrade.mqh 17 21

我正在使用 MetaEditor 5.00 build 1601(2017 年 5 月)。

我检查了这个类似的问题,但我的结构不包含任何复杂的对象,例如字符串。建议是使用指针而不是我实际使用的结构。我的目标是拥有一个带有 struct 参数的类构造函数,如上所示。

上述结构定义有什么问题以及如何纠正?

0 投票
1 回答
343 浏览

pointers - 如何在 MQL 中定义指向类的静态指针?

我有以下 MQL 代码:

它定义了一个 Timer 类,该类用作计时器来分析函数花费了多长时间。原始版本使用一个计时器列表来分别存储每次调用的时间,但是,代码已被简化以提供最小的工作示例并专注于实际的编译问题。

问题是当我使用以下行来初始化静态变量时:

编译失败:

'计时器' - 不能使用局部变量 TestProfiler.mqh 30 30

当我放弃static单词时,代码编译得很好。

但这对我没有帮助,因为我想将此变量定义为指向该类的静态指针,因为我不想每次一遍又一遍地调用同一个函数时都销毁我的对象,因此计时器可以被添加到以后可以阅读的列表中。我真的不明白为什么 MQL 编译器会阻止编译上述代码。我也相信这种语法在以前的版本中运行良好。

我正在使用 MetaEditor 5.00 build 1601(2017 年 5 月)。

我的静态变量声明有什么问题,如何更正它,以便它可以指向 Timer 类?

0 投票
1 回答
867 浏览

mql5 - 每秒滴答声

我想计算每秒的刻度数(或者价格变化)。不幸的是 MQL5 的ENUM_TIMEFRAMES只下降到 1 分钟。不过,这个指标证明了这是可能的,但如何呢?也许通过OnTimer 事件

非常感谢您的回答!