文章 "交易事务. 请求和响应结构、描述和记录" - 页 4 123456789 新评论 Artyom Trishkin 2023.10.17 16:42 #31 MrBrooklin 平仓 前 断电,比如说我的电脑关机了,或者我因某种原因关闭了 MT5 终端,那么这笔交易的信息将存储在哪里?这些信息会存储在任何地方 吗 ? 您能向我详细解释一下这些令人费解的问题吗? 弗拉基米尔 数据存储在服务器上。终端在其环境中接收这些数据,然后 Expert Advisor 使用这些数据。 MrBrooklin 2023.10.17 16:48 #32 Artyom Trishkin #:数据存储在服务器上。终端在其环境中接收这些数据,然后由 Expert Advisor 使用。 那就奇怪了,为什么今天的 EA 找不到昨天打开的 交易?以前是可以的。这是代码: void OnTradeTransaction( const MqlTradeTransaction& trans, // 贸易交易结构 const MqlTradeRequest& request, // 请求结构 const MqlTradeResult& result // 响应结构 ) { if(trans.type==TRADE_TRANSACTION_DEAL_ADD) { if(HistoryDealSelect(trans.deal) && HistoryDealGetInteger(trans.deal,DEAL_ENTRY)==DEAL_ENTRY_IN) { pos_ticket=trans.position; pos_open=trans.price; } } } 一个小补充。滚动是否会影响未结交易的票据,即改变它? 敬上,弗拉基米尔。 Artyom Trishkin 2023.10.17 17:00 #33 MrBrooklin #:那就奇怪了,为什么今天的智能交易系统找不到昨天打开的 交易。以前可以的。代码如下一个小补充。翻转是否会影响未结交易的票据,即改变它?敬上,弗拉基米尔。 您可以通过未结头寸的 ID 找到所有交易和订单。 Alexey Viktorov 2023.10.17 17:04 #34 MrBrooklin #:那就奇怪了,为什么今天 Expert Advisor 找不到昨天打开的 交易。而之前却找到了。代码如下一个小补充。翻转是否会影响未结交易的票据,即改变它?敬上,弗拉基米尔。 在进行交易时,服务器会向终端发送一条 "消息",告知交易已经完成,并将其遗忘。服务器并不关心终端是否收到。因此,如果终端在交易时关闭,您只能通过读取从终端关闭到当前时刻的历史记录来了解交易情况。 MrBrooklin 2023.10.17 17:09 #35 Alexey Viktorov #: 因此,如果终端在交易时刻关闭,您只能通过阅读从终端关闭到当前时刻的历史记录来了解交易情况。 阿列克谢,在交易时刻,即开仓时刻,终端是打开的,因为 "智能交易系统 "打开了终端。 再见,弗拉基米尔 MrBrooklin 2023.10.17 17:15 #36 Artyom Trishkin #:您可以通过未结头寸的 ID 找到所有交易和订单。 我明白了。我要进一步研究手册。 再见,弗拉基米尔。 Alexey Viktorov 2023.10.17 18:07 #37 MrBrooklin #:你好,阿列克谢,在交易的那一刻,也就是开仓的那一刻,终端是打开的,因为智能交易系统正在打开它。再见,弗拉基米尔。 如何理解 关于交易、自动交易系统和交易策略测试的论坛。 讨论文章 "交易。请求和响应的结构、描述和日志输出" MrBrooklin, 2023.10.17 16:48 那就奇怪了,为什么今天 Expert Advisor 找不到昨天打开的交易?早些时候却找到了。这是代码: void OnTradeTransaction( const MqlTradeTransaction& trans, // 贸易交易结构 const MqlTradeRequest& request, // 请求结构 const MqlTradeResult& result // 响应结构 ) { if(trans.type==TRADE_TRANSACTION_DEAL_ADD) { if(HistoryDealSelect(trans.deal) && HistoryDealGetInteger(trans.deal,DEAL_ENTRY)==DEAL_ENTRY_IN) { pos_ticket=trans.position; pos_open=trans.price; } } } 一个小补充。翻转是否会影响未结交易的票据,即改变它? 敬上,弗拉基米尔。 昨天找到了。而今天,火车已经上路了...... 如果昨天有一个订单,一个挂单,而今天已经有一个头寸,这就是我所说的,那么交易是在终端关闭的那一刻......相应地,通过头寸ID来查找,这就是Artem所说的。 MrBrooklin 2023.10.17 19:52 #38 Alexey Viktorov #: 因此,可以通过位置标识来查找,这就是阿尔特姆所说的 "位置标识"。 阿列克谢,我们已经换成你了吗?)) 是的,我已经了解了位置 ID。我会在别人的帮助下自己解决的: long position_ID=HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID); 弗拉基米尔 MrBrooklin 2023.10.17 20:21 #39 MrBrooklin #:那就奇怪了,为什么今天 EA 找不到昨天开仓的 交易? 阿列克谢,也许很难表达我的想法,但其本质如下:昨天,EA 开立了头寸,即进行了交易,而不是我之前写的开立了交易。今天,根据算法,EA 应该看到昨天开立的头寸,并执行某些操作。但是,由于我还不明白的原因,EA 没有看到昨天开立的头寸,因此没有采取任何行动。希望我现在能更清楚地表达我的想法。 弗拉基米尔 Alexey Viktorov 2023.10.17 21:40 #40 MrBrooklin #:阿列克谢,也许很难表达我的想法,但其实质如下:昨天,"智能交易系统"(Expert Advisor)开了一个仓位,即做了一笔交易,而不是像我之前写的那样开了一笔交易。今天,根据算法,EA 应该看到昨天开立的头寸,并执行某些操作。但是,由于我还不明白的原因,EA 没有看到昨天开立的头寸,因此没有采取任何行动。希望我现在能更清楚地表达我的想法。弗拉基米尔 沃洛佳,你我已经就这个声音谈了很多。我已经尽力解释了,你似乎也都明白了,但我们还是要再来一次... OnTradeTransaction 函数是一个事件处理函数。交易是昨天发生的事件。OnTradeTransaction 函数昨天应该起作用,但今天不起作用。今天没有这个交易事件......以前有,以后可能还会有,但都是不同的事件。 123456789 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
您能向我详细解释一下这些令人费解的问题吗?
弗拉基米尔
数据存储在服务器上。终端在其环境中接收这些数据,然后 Expert Advisor 使用这些数据。
数据存储在服务器上。终端在其环境中接收这些数据,然后由 Expert Advisor 使用。
那就奇怪了,为什么今天的 EA 找不到昨天打开的 交易?以前是可以的。这是代码:
一个小补充。滚动是否会影响未结交易的票据,即改变它?
敬上,弗拉基米尔。
那就奇怪了,为什么今天的智能交易系统找不到昨天打开的 交易。以前可以的。代码如下
一个小补充。翻转是否会影响未结交易的票据,即改变它?
敬上,弗拉基米尔。
您可以通过未结头寸的 ID 找到所有交易和订单。
那就奇怪了,为什么今天 Expert Advisor 找不到昨天打开的 交易。而之前却找到了。代码如下
一个小补充。翻转是否会影响未结交易的票据,即改变它?
敬上,弗拉基米尔。
在进行交易时,服务器会向终端发送一条 "消息",告知交易已经完成,并将其遗忘。服务器并不关心终端是否收到。因此,如果终端在交易时关闭,您只能通过读取从终端关闭到当前时刻的历史记录来了解交易情况。
因此,如果终端在交易时刻关闭,您只能通过阅读从终端关闭到当前时刻的历史记录来了解交易情况。
阿列克谢,在交易时刻,即开仓时刻,终端是打开的,因为 "智能交易系统 "打开了终端。
再见,弗拉基米尔
您可以通过未结头寸的 ID 找到所有交易和订单。
我明白了。我要进一步研究手册。
再见,弗拉基米尔。
你好,阿列克谢,在交易的那一刻,也就是开仓的那一刻,终端是打开的,因为智能交易系统正在打开它。
再见,弗拉基米尔。
如何理解
关于交易、自动交易系统和交易策略测试的论坛。
讨论文章 "交易。请求和响应的结构、描述和日志输出"
MrBrooklin, 2023.10.17 16:48
那就奇怪了,为什么今天 Expert Advisor 找不到昨天打开的交易?早些时候却找到了。这是代码:
一个小补充。翻转是否会影响未结交易的票据,即改变它?
敬上,弗拉基米尔。
昨天找到了。而今天,火车已经上路了......
如果昨天有一个订单,一个挂单,而今天已经有一个头寸,这就是我所说的,那么交易是在终端关闭的那一刻......相应地,通过头寸ID来查找,这就是Artem所说的。
因此,可以通过位置标识来查找,这就是阿尔特姆所说的 "位置标识"。
阿列克谢,我们已经换成你了吗?))
是的,我已经了解了位置 ID。我会在别人的帮助下自己解决的:
弗拉基米尔
那就奇怪了,为什么今天 EA 找不到昨天开仓的 交易?
阿列克谢,也许很难表达我的想法,但其本质如下:昨天,EA 开立了头寸,即进行了交易,而不是我之前写的开立了交易。今天,根据算法,EA 应该看到昨天开立的头寸,并执行某些操作。但是,由于我还不明白的原因,EA 没有看到昨天开立的头寸,因此没有采取任何行动。希望我现在能更清楚地表达我的想法。
弗拉基米尔
阿列克谢,也许很难表达我的想法,但其实质如下:昨天,"智能交易系统"(Expert Advisor)开了一个仓位,即做了一笔交易,而不是像我之前写的那样开了一笔交易。今天,根据算法,EA 应该看到昨天开立的头寸,并执行某些操作。但是,由于我还不明白的原因,EA 没有看到昨天开立的头寸,因此没有采取任何行动。希望我现在能更清楚地表达我的想法。
弗拉基米尔
沃洛佳,你我已经就这个声音谈了很多。我已经尽力解释了,你似乎也都明白了,但我们还是要再来一次...
OnTradeTransaction 函数是一个事件处理函数。交易是昨天发生的事件。OnTradeTransaction 函数昨天应该起作用,但今天不起作用。今天没有这个交易事件......以前有,以后可能还会有,但都是不同的事件。