文章 "轻松快捷开发 MetaTrader 程序的函数库(第十部分):与 MQL4 的兼容性 - 开仓和激活挂单的事件" - 页 4 123456 新评论 Alexey Viktorov 2019.05.27 18:01 #31 Artyom Trishkin:不,只需阅读文章对不起,我不认识那么多字母。))) Artyom Trishkin 2019.05.27 18:11 #32 Alexey Viktorov:事情就是这样:当我在演示版上运行这段代码时,设置并删除了一个限价订单。突然,在下一次模拟中,一个仓位被修改,一个仓位被打开,一个仓位被关闭。但删除已删除订单的记录从何而来?是你用我给你的文件替换了程序库吗?这篇文章中的库还没有完成--它有这个缺陷--当两个事件具有相同的 MQL4 标准时。在第十一篇文章中,已经完成了将库的当前功能移植到 MQL4 的工作。这篇文章中的版本也有这个缺陷,文章最后的文字间接表明了它的存在:下一步在下一篇文章中,我们将进行位置关闭 跟踪,并修复 MQL4 事件跟踪当前实现中可能出现的错误 - 因为订单的安装和删除由 MQL5 的代码跟踪,在 MQL4 下工作时可能需要考虑一些细微差别。 如果您已经替换了库文件,但错误仍然发生,您需要捕捉到发生错误时的情况--导致错误发生的操作序列,我会修复它。 Alexey Viktorov 2019.05.27 18:24 #33 Artyom Trishkin:您是否用我给您的文件替换了程序库?这篇文章中的库还没有完成 - 它有这样的缺陷 - 当两个事件具有相同的 MQL4 标准时。在第十一篇文章中,已经完成了将库的当前功能移植到 MQL4 的工作。这篇文章中的版本也有这个缺陷,文章最后的文字间接表明了它的存在:下一步在下一篇文章中,我们将进行位置关闭 跟踪,并修复 MQL4 事件跟踪当前实现中可能出现的错误 - 因为订单的安装和删除由 MQL5 的代码跟踪,在 MQL4 下工作时可能需要考虑一些细微差别。 如果您已经替换了库文件,但错误仍然发生,您需要捕捉到发生错误时的情况--导致错误的操作序列,我会修复它。是的,我做到了。我已经描述了 关于交易、自动交易系统和交易策略测试的论坛。 讨论文章 "方便快捷地创建 MetaTrader 程序库(第 X 部分):与 MQL4 的兼容性 - 开仓和挂单激活事件"。 Alexey Viktorov, 2019.05.27 17:59 这里发生了一件令人难以理解的事情: 当我在演示版上运行这段代码时,一个限价订单被设置并删除了 443342388 2019.05.27 14:54:10 buy limit 0.01 eurusd 1.11835 0.00000 0.00000 2019.05.27 15:01:14 1.11972 cancelled 而在下一次模拟时,突然又修改了一个仓位、一个开仓和一个平仓。这就是删除已删除订单记录的来源? 2019.05.27 18:34:11.903 00 EURUSD,H1: OnChartEvent: id=1002, event=TRADE_EVENT_PENDING_ORDER_REMOVED, lparam=443342388, dparam=1.11835, sparam=EURUSD 2019.05.27 18:34:11.903 00 EURUSD,H1: OnChartEvent: id=1024, event=TRADE_EVENT_POSITION_CLOSED, lparam=443417294, dparam=1.11933, sparam=EURUSD 2019.05.27 18:34:11.903 00 EURUSD,H1: - Отложенный ордер удалён: 2019.05.27 14:54:10.000 - EURUSD Удалён 0.01 Buy Limit #443342388 по цене 1.11835 2019.05.27 18:34:11.903 00 EURUSD,H1: - Позиция закрыта: 2019.05.27 18:33:02.000 - EURUSD Закрыт Sell #443417294 по цене 1.11912, профит -0.21 USD 2019.05.27 18:33:02.755 00 EURUSD,H1: OnChartEvent: id=1022, event=TRADE_EVENT_POSITION_OPENED, lparam=443417294, dparam=1.11912, sparam=EURUSD 2019.05.27 18:33:02.755 00 EURUSD,H1: - Позиция открыта: 2019.05.27 18:33:02.000 - EURUSD Открыт 0.01 Sell #443417294 [0.01 Market order Sell #443417294] по цене 1.11912 2019.05.27 18:29:21.913 00 EURUSD,H1: OnChartEvent: id=1050, event=TRADE_EVENT_MODIFY_POSITION_TAKE_PROFIT, lparam=443218277, dparam=1.12218, sparam=EURUSD 2019.05.27 18:29:21.913 00 EURUSD,H1: - Модифицирован TakeProfit позиции: 2019.05.27 18:27:45.000 - EURUSD Buy #443218277: модифицирован TakeProfit: [1.12240 --> 1.12218] 15:01:14 我删除了之前下达的限价订单。 在 18:29 之前,我一直在做自己的事情。专家顾问站在图表上。 18:29:21 我修改了之前设定的仓位。 18:33:02 时,我下达了卖出指令。 18:34:11 时,我关闭了卖出。 此时我收到第二条记录,15:01:14 时删除的限价已被取消。 Discussion of article "Library ASCTrend system PREDICT time period Artyom Trishkin 2019.05.27 18:27 #34 Alexey Viktorov:是的,我说过了。我已经描述过顺序了,不是吗?你说过了 事情是这样的 当我在模拟器上运行这段代码时,设置并删除了一个限价订单。 突然,在下一次模拟中,一个仓位被修改,一个仓位被打开,一个仓位被关闭。这就是删除已删除订单记录的来源吗? 这些操作的顺序是什么? 设置限价订单删除限价订单修改仓位(何时开仓?)开仓关闭同一仓位错误事件出现在什么时候? Alexey Viktorov 2019.05.27 18:30 #35 Artyom Trishkin:你写道这些行动的顺序是什么?设置限价订单删除限价订单修改仓位(何时开仓?)打开仓位同一仓位被关闭错误事件是在什么时候出现的?我已完成上一条信息。 Artyom Trishkin 2019.05.27 18:33 #36 Alexey Viktorov:是的,我说过了。我已经描述过顺序了,不是吗?我在任何序列中都不会出现这个错误。 请描述导致该错误的顺序。 最好不要写在日志里,因为日志里有很多调试记录,会影响快速浏览,而是写在这里的编号列表中。 Artyom Trishkin 2019.05.27 18:38 #37 Alexey Viktorov:我已完成上一条信息。15:01:14 我删除了之前下达的限价订单。 直到 18:29 我一直在做自己的事情。Expert Advisor 站在图表上。 18:29:21 我修改了之前设置的仓位。 18:33:02 时,我下达了卖出指令。 18:34:11 时,我关闭了卖出。 此时我收到第二条记录,15:01:14 时删除的限价已被删除。 也就是说,您需要 开仓,等待一段时间、下限价单,等待一段时间、删除限价订单、修改仓位、开仓 并平仓对吗? Discussion of article "Library ASCTrend system Strand 2D array problem Alexey Viktorov 2019.05.27 18:50 #38 Artyom Trishkin:15:01:14 我删除了之前下达的限价订单。 直到 18:29 我一直在做自己的事情。Expert Advisor 站在图表上。 18:29:21 我修改了之前设置的仓位。 18:33:02 时,我下达了卖出指令。 18:34:11 时,我关闭了卖出。 此时我收到第二条记录,15:01:14 时删除的限价已被取消。 也就是说,我需要开仓,等待一段时间、下限价订单,等待一段时间、取消限价订单、修改仓位、开仓 并平仓对吗?不,小心你的手。443342388 2019.05.27 14:54:10 buy limit 0.01 eurusd 1.11835 0.00000 0.00000 2019.05.27 15:01:14 1.11972 cancelled 14:54:10 设置限价,15:01:14 解除限价。然后是长时间的 广播 中断。一切归于沉寂。然后在 18:00 开始连续播放几个乐章。只列出了第 29、33 和 34 分钟。在第 34 分钟,出现了三个半小时前发生的事件。以下是位置列表。 443217459 2019.05.27 08:48:18 buy 0.01 eurusd 1.12109 0.00000 0.00000 1.11933 0.00 0.00 0.00 -1.76 443218277 2019.05.27 08:51:53 buy 0.01 eurusd 1.12112 0.00000 1.12218 1.11933 0.00 0.00 0.00 -1.79 443335401 2019.05.27 14:31:07 buy 0.01 eurusd 1.11965 0.00000 0.00000 1.11933 0.00 0.00 0.00 -0.32 443336857 2019.05.27 14:35:47 buy 0.01 eurusd 1.11970 0.00000 0.00000 1.11933 0.00 0.00 0.00 -0.37 443336959 2019.05.27 14:36:09 buy 0.01 eurusd 1.11967 0.00000 0.00000 1.11933 0.00 0.00 0.00 -0.34 443337190 2019.05.27 14:36:53 buy 0.01 eurusd 1.11967 0.00000 0.00000 1.11933 0.00 0.00 0.00 -0.34 它们在上午和午餐时间都是开放的。18 分钟时,只有 Sell 开仓,而且几乎立即平仓。 Artyom Trishkin 2019.05.27 19:53 #39 Alexey Viktorov:不,好吧,小心你的手限时设置为 14:54:10,删除时间为 15:01:14。然后是长时间的 广播 中断。万籁俱寂然后在 18:00 开始连续播放几个乐章。只列出了第 29、33 和 34 分钟。现在,在 34 分钟处,是三个半小时前发生的事件。这是一份仓位表 它们都在上午和午餐时间开盘。18 分钟时,只有 Sell 开仓,几乎立即平仓。好了,就是这样: 15:01:14 时,我删除了之前下达的 限价订单。 在 18:29 之前,我一直在做自己的事情。专家顾问站在图表上。 18:29:21 我修改了之前 设置的仓位。 18:33:02 我卖出。18:34:11 我关闭了卖出。 是在设置限价单之前?还是之后?还是在开仓之后?"更早 "并不具体。所有操作的时间可能都有意义,毕竟所有操作都会保存到列表中。在某个地方有相同的条件,因为删除旧的限价订单是在平仓 时再次确定的 - 仓位被关闭,我们检查了条件(在代码中直接描述),并根据这些条件确定了事件类型。然后根据事件中某一订单的类型对列表进行排序,并将事件发送到程序中 - 因此,在 MQL4 中存在条件重叠的情况,对于库来说,它们原来是相等的。虽然这是我在第 11 条中删除的内容,但仍在测试中。 从基础到中级:SWITCH 语句 在 MetaTrader 5 里使用 Alexey Viktorov 2019.05.27 20:24 #40 Artyom Trishkin:好了,你在这里 写作: 15:01:14 我删除了之前下达的 限价订单。 在 18:29 之前,我一直在做自己的事情。Expert Advisor 站在图表上。 18:29:21 我修改了之前 设置的仓位。 18:33:02 时,我卖出。18:34:11 我关闭了卖出。 之前- 是在设置限价单 之前?还是之后?还是在打开限价单之后?"之前 "并不具体。所有操作的时间可能都有意义--毕竟所有操作都会保存到列表中。在某个地方有相同的条件,因为删除旧的限价订单是在平仓 时再次确定的 - 仓位被关闭,我们检查了条件(代码中直接描述了),并根据这些条件确定了事件类型。然后根据事件中某一订单的类型对列表进行排序,并将事件发送到程序中 - 因此,在 MQL4 中存在条件重叠的情况,对于库来说,它们原来是相等的。虽然这是我在第 11 条中删除的内容,但仍在测试中。 关于交易、自动交易系统和测试交易策略的论坛讨论文章 "方便快捷地创建 MetaTrader 程序库(第 X 部分):与 MQL4 的兼容性--开仓和挂单激活事件"Alexey Viktorov, 2019.05.27 18:50不,小心你的手443342388 2019.05.27 14:54:10 buy limit 0.01 eurusd 1.11835 0.00000 0.00000 2019.05.27 15:01:14 1.11972 cancelled 限制器在 14:54:10 设置,15:01:14 删除 广播 中断了很长时间。一切归于沉寂。然后在 18:00:00 时连续播放了几个乐章。只列出了第 29、33 和 34 分钟。现在,在 34 分钟处,是三个半小时前发生的事件。这是位置列表。 443217459 2019.05.27 08:48:18 buy 0.01 eurusd 1.12109 0.00000 0.00000 1.11933 0.00 0.00 0.00 -1.76 443218277 2019.05.27 08:51:53 buy 0.01 eurusd 1.12112 0.00000 1.12218 1.11933 0.00 0.00 0.00 -1.79 443335401 2019.05.27 14:31:07 buy 0.01 eurusd 1.11965 0.00000 0.00000 1.11933 0.00 0.00 0.00 -0.32 443336857 2019.05.27 14:35:47 buy 0.01 eurusd 1.11970 0.00000 0.00000 1.11933 0.00 0.00 0.00 -0.37 443336959 2019.05.27 14:36:09 buy 0.01 eurusd 1.11967 0.00000 0.00000 1.11933 0.00 0.00 0.00 -0.34 443337190 2019.05.27 14:36:53 buy 0.01 eurusd 1.11967 0.00000 0.00000 1.11933 0.00 0.00 0.00 -0.34 它们在上午和午餐时间都是开放的。18 分钟时,只有一个仓位打开,卖出,然后几乎立即平仓。 修改后只有一个,即突出显示的仓位。毫无疑问。它是早上下单的。修改了好几次。我不在乎修改哪一个。我已经在这个位置上设置了出局。这就是我想做的。 这是所有的限价器和最后一次卖出。 443340041 2019.05.27 14:46:32 buy limit 0.01 eurusd 1.11815 0.00000 0.00000 2019.05.27 14:46:55 1.11974 cancelled 443340283 2019.05.27 14:47:15 buy limit 0.01 eurusd 1.11796 0.00000 0.00000 2019.05.27 14:47:27 1.11974 cancelled 443340764 2019.05.27 14:48:42 buy limit 0.01 eurusd 1.11830 0.00000 0.00000 2019.05.27 14:52:51 1.11962 cancelled 443340819 2019.05.27 14:48:54 buy limit 0.01 eurusd 1.11761 0.00000 0.00000 2019.05.27 14:50:22 1.11977 cancelled 443340874 2019.05.27 14:49:06 buy limit 0.01 eurusd 1.11694 0.00000 0.00000 2019.05.27 14:52:37 1.11963 cancelled 443341012 2019.05.27 14:49:32 buy limit 0.01 eurusd 1.11657 0.00000 0.00000 2019.05.27 14:51:22 1.11973 cancelled 443342301 2019.05.27 14:53:55 sell stop 0.01 eurusd 1.11764 0.00000 0.00000 2019.05.27 15:01:03 1.11956 cancelled 443342388 2019.05.27 14:54:10 buy limit 0.01 eurusd 1.11835 0.00000 0.00000 2019.05.27 15:01:14 1.11972 cancelled 443417294 2019.05.27 18:33:02 sell 0.01 eurusd 1.11912 0.00000 0.00000 2019.05.27 18:34:11 1.11933 0.00 0.00 0.00 -0.21 已删除的限价器和卖出被高亮显示。删除事件肯定留在了某个地方。但为什么不是在卖出打开时 "唤醒",而是在卖出关闭时才 "唤醒 "呢? 123456 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不,只需阅读文章
对不起,我不认识那么多字母。)))
事情就是这样:
当我在演示版上运行这段代码时,设置并删除了一个限价订单。
突然,在下一次模拟中,一个仓位被修改,一个仓位被打开,一个仓位被关闭。但删除已删除订单的记录从何而来?
是你用我给你的文件替换了程序库吗?这篇文章中的库还没有完成--它有这个缺陷--当两个事件具有相同的 MQL4 标准时。在第十一篇文章中,已经完成了将库的当前功能移植到 MQL4 的工作。这篇文章中的版本也有这个缺陷,文章最后的文字间接表明了它的存在:
下一步
在下一篇文章中,我们将进行位置关闭 跟踪,并修复 MQL4 事件跟踪当前实现中可能出现的错误 - 因为订单的安装和删除由 MQL5 的代码跟踪,在 MQL4 下工作时可能需要考虑一些细微差别。您是否用我给您的文件替换了程序库?这篇文章中的库还没有完成 - 它有这样的缺陷 - 当两个事件具有相同的 MQL4 标准时。在第十一篇文章中,已经完成了将库的当前功能移植到 MQL4 的工作。这篇文章中的版本也有这个缺陷,文章最后的文字间接表明了它的存在:
下一步
在下一篇文章中,我们将进行位置关闭 跟踪,并修复 MQL4 事件跟踪当前实现中可能出现的错误 - 因为订单的安装和删除由 MQL5 的代码跟踪,在 MQL4 下工作时可能需要考虑一些细微差别。是的,我做到了。我已经描述了
关于交易、自动交易系统和交易策略测试的论坛。
讨论文章 "方便快捷地创建 MetaTrader 程序库(第 X 部分):与 MQL4 的兼容性 - 开仓和挂单激活事件"。
Alexey Viktorov, 2019.05.27 17:59
这里发生了一件令人难以理解的事情:
当我在演示版上运行这段代码时,一个限价订单被设置并删除了
而在下一次模拟时,突然又修改了一个仓位、一个开仓和一个平仓。这就是删除已删除订单记录的来源?
15:01:14 我删除了之前下达的限价订单。
在 18:29 之前,我一直在做自己的事情。专家顾问站在图表上。
18:29:21 我修改了之前设定的仓位。
18:33:02 时,我下达了卖出指令。
18:34:11 时,我关闭了卖出。
此时我收到第二条记录,15:01:14 时删除的限价已被取消。
是的,我说过了。我已经描述过顺序了,不是吗?
你说过了
事情是这样的
当我在模拟器上运行这段代码时,设置并删除了一个限价订单。
突然,在下一次模拟中,一个仓位被修改,一个仓位被打开,一个仓位被关闭。这就是删除已删除订单记录的来源吗?
这些操作的顺序是什么?
你写道
这些行动的顺序是什么?
我已完成上一条信息。
是的,我说过了。我已经描述过顺序了,不是吗?
我在任何序列中都不会出现这个错误。
请描述导致该错误的顺序。
最好不要写在日志里,因为日志里有很多调试记录,会影响快速浏览,而是写在这里的编号列表中。
我已完成上一条信息。
15:01:14 我删除了之前下达的限价订单。
直到 18:29 我一直在做自己的事情。Expert Advisor 站在图表上。
18:29:21 我修改了之前设置的仓位。
18:33:02 时,我下达了卖出指令。
18:34:11 时,我关闭了卖出。
此时我收到第二条记录,15:01:14 时删除的限价已被删除。
也就是说,您需要
15:01:14 我删除了之前下达的限价订单。
直到 18:29 我一直在做自己的事情。Expert Advisor 站在图表上。
18:29:21 我修改了之前设置的仓位。
18:33:02 时,我下达了卖出指令。
18:34:11 时,我关闭了卖出。
此时我收到第二条记录,15:01:14 时删除的限价已被取消。
也就是说,我需要
不,小心你的手。
14:54:10 设置限价,15:01:14 解除限价。
然后是长时间的 广播 中断。一切归于沉寂。
然后在 18:00 开始连续播放几个乐章。只列出了第 29、33 和 34 分钟。在第 34 分钟,出现了三个半小时前发生的事件。
以下是位置列表。
它们在上午和午餐时间都是开放的。18 分钟时,只有 Sell 开仓,而且几乎立即平仓。不,好吧,小心你的手
限时设置为 14:54:10,删除时间为 15:01:14。
然后是长时间的 广播 中断。万籁俱寂
然后在 18:00 开始连续播放几个乐章。只列出了第 29、33 和 34 分钟。现在,在 34 分钟处,是三个半小时前发生的事件。
这是一份仓位表
它们都在上午和午餐时间开盘。18 分钟时,只有 Sell 开仓,几乎立即平仓。好了,就是这样:
15:01:14 时,我删除了之前下达的 限价订单。
在 18:29 之前,我一直在做自己的事情。专家顾问站在图表上。
18:29:21 我修改了之前 设置的仓位。
18:33:02 我卖出。
18:34:11 我关闭了卖出。
是在设置限价单之前?还是之后?还是在开仓之后?"更早 "并不具体。所有操作的时间可能都有意义,毕竟所有操作都会保存到列表中。在某个地方有相同的条件,因为删除旧的限价订单是在平仓 时再次确定的 - 仓位被关闭,我们检查了条件(在代码中直接描述),并根据这些条件确定了事件类型。然后根据事件中某一订单的类型对列表进行排序,并将事件发送到程序中 - 因此,在 MQL4 中存在条件重叠的情况,对于库来说,它们原来是相等的。虽然这是我在第 11 条中删除的内容,但仍在测试中。
好了,你在这里 写作:
15:01:14 我删除了之前下达的 限价订单。
在 18:29 之前,我一直在做自己的事情。Expert Advisor 站在图表上。
18:29:21 我修改了之前 设置的仓位。
18:33:02 时,我卖出。
18:34:11 我关闭了卖出。
之前- 是在设置限价单 之前?还是之后?还是在打开限价单之后?"之前 "并不具体。所有操作的时间可能都有意义--毕竟所有操作都会保存到列表中。在某个地方有相同的条件,因为删除旧的限价订单是在平仓 时再次确定的 - 仓位被关闭,我们检查了条件(代码中直接描述了),并根据这些条件确定了事件类型。然后根据事件中某一订单的类型对列表进行排序,并将事件发送到程序中 - 因此,在 MQL4 中存在条件重叠的情况,对于库来说,它们原来是相等的。虽然这是我在第 11 条中删除的内容,但仍在测试中。
关于交易、自动交易系统和测试交易策略的论坛
讨论文章 "方便快捷地创建 MetaTrader 程序库(第 X 部分):与 MQL4 的兼容性--开仓和挂单激活事件"
Alexey Viktorov, 2019.05.27 18:50
不,小心你的手
限制器在 14:54:10 设置,15:01:14 删除
广播 中断了很长时间。一切归于沉寂。
然后在 18:00:00 时连续播放了几个乐章。只列出了第 29、33 和 34 分钟。现在,在 34 分钟处,是三个半小时前发生的事件。
这是位置列表。
它们在上午和午餐时间都是开放的。18 分钟时,只有一个仓位打开,卖出,然后几乎立即平仓。修改后只有一个,即突出显示的仓位。毫无疑问。它是早上下单的。修改了好几次。我不在乎修改哪一个。我已经在这个位置上设置了出局。这就是我想做的。
这是所有的限价器和最后一次卖出。
已删除的限价器和卖出被高亮显示。删除事件肯定留在了某个地方。但为什么不是在卖出打开时 "唤醒",而是在卖出关闭时才 "唤醒 "呢?