mql5语言的特点、微妙之处以及技巧 - 页 203 1...196197198199200201202203204205206207208209210...247 新评论 Artyom Trishkin 2021.05.22 03:41 #2021 与此主题无关的评论已被移至"新手对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论"。 Ilyas 2021.05.28 16:18 #2022 我们正在扩展初始化序列"{ ...}",在下一次构建中,任何表达式都将被允许,而不仅仅是一个常数。 取而代之的是,对于使用常数的枚举,将有一个限制(如同正则表达式):如果一个常数不是枚举的一部分,将产生一个适当的错误。 对现有代码的分析表明,单零序列"{0}"经常被错误地使用。 例如,像这样。 MqlTradeRequest request={0}; 这样的符号意味着为结构的第一个字段设置零值,并将其余的字段置零。 对于上述代码行,根据新的规则,会有一个错误,因为第一个字段的类型是 ENUM_TRADE_REQUEST_ACTIONS,这个枚举缺乏值 "0"。 cannot convert 0 to enum 'ENUM_TRADE_REQUEST_ACTIONS' 正确的方法应该是。 MqlTradeRequest request={}; mktr8591 2021.05.28 17:49 #2023 Ilyas:这一点是正确的。MqlTradeRequest request={}; 然后request.action会等于什么呢? Ilyas 2021.05.31 09:34 #2024 mktr8591:然后request.action会等于什么呢? 当然是零,就像为这个结构的对象调用ZeroMemory 一样。 Andrey Khatimlianskii 2021.05.31 15:12 #2025 我如何跟踪时间序列和基于时间序列的指标? 关于交易、自动交易系统和交易策略测试的论坛 虫子、虫子、问题 斯拉瓦, 2021.05.29 18:16 我想提醒你。 1.对于每个符号,至少有一个图表是开放的,一个单独的线程正在工作,以处理进入的ticks。几个图表可能对某些符号开放,但仍将只有一个线程。 2.符号线程处理时间序列,而不是图表。也就是提交给CopyRates请求的同样的数据数组。 3.在OnTick或OnCalculate 中询问你的符号是否同步是没有用的。当然是这样! 4.所有时间序列都按顺序处理,从低到高。首先,我们应用刻度线,然后计算所有指标,在这个时间序列创建。如果你从指标中询问同一H1符号的数据,在M1上工作,你将永远不会得到应用tick的数据。无论你运用什么技巧,数据都会往后退一个刻度。因为每个符号有一个线程,有连续的时间框架处理。 5.前面的说法并不适用于EA和脚本,因为EA和脚本各自在自己的独立线程中工作。 Andrey Khatimlianskii 2021.06.05 11:59 #2026 Andrey Khatimlianskii:我如何跟踪时间序列和基于时间序列的指标? 关于交易、自动交易系统和交易策略测试的论坛 虫子,虫子,问题 斯拉瓦, 2021.06.01 06:34 当你第一次请求时,指标可能没有收到来自其符号的数据,而是另一个时间框架,原因只有一个--所需的时间序列尚未建立,或者在一段时间后已经被销毁,当时没有请求。 在一个不成功的请求之后,只要向你的图表发送一个命令来更新 它,并立即终止OnCalculate。保证OnCalculate会被调用,并且时间序列会在这个时候准备好。 fxsaber 2021.06.30 10:39 #2027 关于交易、自动交易系统和交易策略测试的论坛 mql5语言的特点、微妙之处以及技巧 fxsaber, 2017.11.30 09:48 备忘录 行动/方案类型 改变TF或符号 账户变更 指标 运行OnDeinit和OnInit,全局类对象改变(完全重置)。 除了prev_calculated被重置外,什么也没有发生。 EA 运行OnDeinit和OnInit,全局类对象没有 变化。 运行OnDeinit和OnInit,全局类对象改变(完全重载)。 指标的突出行为已经改变。它现在与EA相同。 Artyom Trishkin 2021.06.30 11:45 #2028 fxsaber:突出显示的指标行为已经改变。它现在与EA重合。 问题是不同的--这可能是一个疏忽,而不是故意改变行为?你发现了吗? fxsaber 2021.06.30 12:01 #2029 Artyom Trishkin:问题是不同的--这可能是一个疏忽,而不是故意改变行为?你认出它了吗? 我没有。反馈几乎是不存在的。然而,这里有一个我刚刚发现的功能。 const bool Init = EventSetMillisecondTimer(1); const long Account = AccountInfoInteger(ACCOUNT_LOGIN); #define TOSTRING(A) #A + " = " + (string)(A) + " " void OnTimer() { if (Account != AccountInfoInteger(ACCOUNT_LOGIN)) Alert(TOSTRING(Account) + TOSTRING(AccountInfoInteger(ACCOUNT_LOGIN))); } 该专家顾问在账户之间切换时发出警报。根据规则,它似乎不应该这样做。 关于交易、自动交易系统和策略测试的论坛 mql5语言的特点、微妙之处以及技巧 fxsaber, 2017.11.30 09:48 备忘录 行动/方案类型 改变TF或符号 账户变更 指标 运行OnDeinit和OnInit,全局类对象改变(完全重置)。 除了prev_calculated被重置外,什么也没有发生。 EA 运行OnDeinit和OnInit,全局类对象没有 变化。 运行OnDeinit和OnInit,全局类对象改变(完全重载)。 然而,这是由于定时器的原因。 Andrey Khatimlianskii 2021.06.30 12:26 #2030 fxsaber:这个顾问在账户之间切换时发出警报。根据规则,它似乎不应该这样做然而,这是因为计时器的原因而发生的。 没有人保证其他事件处理程序会被打断(或不运行)。 在警报之后,deinit和init都会发生,对吗? 1...196197198199200201202203204205206207208209210...247 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我们正在扩展初始化序列"{ ...}",在下一次构建中,任何表达式都将被允许,而不仅仅是一个常数。
取而代之的是,对于使用常数的枚举,将有一个限制(如同正则表达式):如果一个常数不是枚举的一部分,将产生一个适当的错误。
对现有代码的分析表明,单零序列"{0}"经常被错误地使用。
例如,像这样。
这样的符号意味着为结构的第一个字段设置零值,并将其余的字段置零。
对于上述代码行,根据新的规则,会有一个错误,因为第一个字段的类型是 ENUM_TRADE_REQUEST_ACTIONS,这个枚举缺乏值 "0"。
正确的方法应该是。
MqlTradeRequest request={};
这一点是正确的。
MqlTradeRequest request={};
然后request.action会等于什么呢?
然后request.action会等于什么呢?
当然是零,就像为这个结构的对象调用ZeroMemory 一样。
我如何跟踪时间序列和基于时间序列的指标?
关于交易、自动交易系统和交易策略测试的论坛
虫子、虫子、问题
斯拉瓦, 2021.05.29 18:16
我想提醒你。
1.对于每个符号,至少有一个图表是开放的,一个单独的线程正在工作,以处理进入的ticks。几个图表可能对某些符号开放,但仍将只有一个线程。
2.符号线程处理时间序列,而不是图表。也就是提交给CopyRates请求的同样的数据数组。
3.在OnTick或OnCalculate 中询问你的符号是否同步是没有用的。当然是这样!
4.所有时间序列都按顺序处理,从低到高。首先,我们应用刻度线,然后计算所有指标,在这个时间序列创建。如果你从指标中询问同一H1符号的数据,在M1上工作,你将永远不会得到应用tick的数据。无论你运用什么技巧,数据都会往后退一个刻度。因为每个符号有一个线程,有连续的时间框架处理。
5.前面的说法并不适用于EA和脚本,因为EA和脚本各自在自己的独立线程中工作。
我如何跟踪时间序列和基于时间序列的指标?
关于交易、自动交易系统和交易策略测试的论坛
虫子,虫子,问题
斯拉瓦, 2021.06.01 06:34
当你第一次请求时,指标可能没有收到来自其符号的数据,而是另一个时间框架,原因只有一个--所需的时间序列尚未建立,或者在一段时间后已经被销毁,当时没有请求。
在一个不成功的请求之后,只要向你的图表发送一个命令来更新 它,并立即终止OnCalculate。保证OnCalculate会被调用,并且时间序列会在这个时候准备好。
关于交易、自动交易系统和交易策略测试的论坛
mql5语言的特点、微妙之处以及技巧
fxsaber, 2017.11.30 09:48
备忘录
问题是不同的--这可能是一个疏忽,而不是故意改变行为?你发现了吗?
问题是不同的--这可能是一个疏忽,而不是故意改变行为?你认出它了吗?
我没有。反馈几乎是不存在的。然而,这里有一个我刚刚发现的功能。
该专家顾问在账户之间切换时发出警报。根据规则,它似乎不应该这样做。
关于交易、自动交易系统和策略测试的论坛
mql5语言的特点、微妙之处以及技巧
fxsaber, 2017.11.30 09:48
备忘录
这个顾问在账户之间切换时发出警报。根据规则,它似乎不应该这样做
没有人保证其他事件处理程序会被打断(或不运行)。
在警报之后,deinit和init都会发生,对吗?