问题标签 [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.
mql5 - 我如何在 Expert Advisor 上获取交易量数据?
我如何在 Expert Adviser 上获取交易量数据?(不是指标)
我知道那种在指标上获得交易量的方法。所以我想将交易量数据带给 Expert Adviser。
我该怎么做?
statistics - 访问前向测试统计数据
我正在使用该TesterStatistics()
函数(从该OnDeinit()
函数调用)来导出各种策略测试统计值:
这可行,但似乎仅限于简单的回测。
如何导出回测和前测结果?
前向测试的结果显示在单独的选项卡“前向”上。远期周期的开始日期在图表上由一条垂直线标记:
我可以通过编程方式访问这些信息吗?
mql5 - 如何创建自定义交易品种并从远程服务器实时提供图表数据?
我正在尝试学习如何为 MT5 创建一个 MQL5 库(我认为它应该是一个库,但不太确定)以创建新符号并实时从公共交易所 API 提供这些符号图表数据。
我尝试在这些行中搜索一些教程或示例,但我能找到的最好的是这篇文章。也许我没有搜索正确的关键字。
我不是要求一个完整的教程或示例代码来做到这一点,但也许是一些更简单的例子,所以我可以对如何完成它有一个指导。
因此,简而言之,是否有一些示例代码、教程或文档说明如何以编程方式创建新的自定义交易品种、从网络检索图表数据、将这些数据添加到自定义交易品种图表并实时(或接近真实)更新其数据-时间)?
在这方面的任何帮助将不胜感激!
mql5 - 如何在 MQL5 中制作信号链?
在我的自定义信号中,我想从其他信号( inLongCondition()
和ShortCondition()
)中收集结果,然后分析它们并返回新的、更新的多头和空头条件结果。
其他信号必须在其他时间范围内起作用。
如何将其他信号包含到我的主要信号中?
由于复杂的交易策略逻辑,在智能交易系统中执行此AddFilter()
操作不是一种选择。
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。
class - 如何从类中读取函数值?
如何读取CheckPatternAllBullish()
类 中函数的值CCandlePattern
?
我想在里面读void OnTick(){...}
错误:“candlepatterns.mqh”中的指针访问无效 (60,64)
第 60 行是:
代码是:
文件candlepatterns.mqh
:
错误:“candlepatterns.mqh”中的指针访问无效 (162,20)
mql5 - MQL5 CTrade Buy() 函数
我是 MQL5 的新手。我曾经在 MQL4 中开发过很多东西,现在我也在尝试让我的代码在 MQL5 中工作。出于某种原因,我似乎无法进行非常简单的操作,例如开立买入头寸。我正在使用这样的东西:
我只想开一个手数为 的买入头寸0.1
。
在 StrategyTester 中,它首先打开一个手数大小的头寸0.1
(到目前为止一切都很好),但过了一段时间该头寸被关闭(还不知道它为什么被关闭),然后一个新的买入头寸被打开尽可能大的批量。
我究竟做错了什么?
struct - 结构有对象并且不能被复制,尽管不存在复杂的结构
我有以下 MQL 代码:
但是,由于以下错误, MetaTrader 平台不会编译该文件:
'=' - 结构有对象并且不能被复制 TestTrade.mqh 17 21
我正在使用 MetaEditor 5.00 build 1601(2017 年 5 月)。
我检查了这个类似的问题,但我的结构不包含任何复杂的对象,例如字符串。建议是使用指针而不是我实际使用的结构。我的目标是拥有一个带有 struct 参数的类构造函数,如上所示。
上述结构定义有什么问题以及如何纠正?
pointers - 如何在 MQL 中定义指向类的静态指针?
我有以下 MQL 代码:
它定义了一个 Timer 类,该类用作计时器来分析函数花费了多长时间。原始版本使用一个计时器列表来分别存储每次调用的时间,但是,代码已被简化以提供最小的工作示例并专注于实际的编译问题。
问题是当我使用以下行来初始化静态变量时:
编译失败:
'计时器' - 不能使用局部变量 TestProfiler.mqh 30 30
当我放弃static
单词时,代码编译得很好。
但这对我没有帮助,因为我想将此变量定义为指向该类的静态指针,因为我不想每次一遍又一遍地调用同一个函数时都销毁我的对象,因此计时器可以被添加到以后可以阅读的列表中。我真的不明白为什么 MQL 编译器会阻止编译上述代码。我也相信这种语法在以前的版本中运行良好。
我正在使用 MetaEditor 5.00 build 1601(2017 年 5 月)。
我的静态变量声明有什么问题,如何更正它,以便它可以指向 Timer 类?
mql5 - 每秒滴答声
我想计算每秒的刻度数(或者价格变化)。不幸的是 MQL5 的ENUM_TIMEFRAMES只下降到 1 分钟。不过,这个指标证明了这是可能的,但如何呢?也许通过OnTimer 事件?
非常感谢您的回答!