关于OnTradeTransaction函数的问题 - 页 6 1234567 新评论 Alexey Viktorov 2015.02.10 19:10 #51 Mikalas:不,交易不会丢失,只是可能不按一定的顺序来。只有TRADE_TRANSACTION_REQUEST总是排在第一位,否则你将不会得到订单票。仔细阅读文件。迈克尔,对不起,但在我看来,你只回复了最后一个帖子,而这是这一页上第一个帖子所描述的一切的结果。而且,听到你建议阅读文件,这很奇怪。我读了它,重读了它,又读了它。你说的 "Warrant Ticket "是什么意思? 我在文件中没有看到它。 Mikhail Filimonov 2015.02.10 19:17 #52 AlexeyVik:迈克尔,我很抱歉,但在我看来,你只回应了最后一个帖子,而且是作为本页第一个帖子中描述的一切的结果。而听到你建议阅读文件,似乎很奇怪。我读了它,重读了它,又读了它。你说的 "订货单 "是什么意思? 我在文件中没有看到这个。乌龙票是分配给一个订单的唯一号码。这个数字在订单有效期 内以及在历史上都不会改变。我们使用tikcet获得关于订单的信息。 Alexey Viktorov 2015.02.11 06:16 #53 Mikalas:乌龙票是分配给一个已下订单的唯一号码。这个数字在整个订单有效期 内以及在历史上都不会改变。我们用tikcet获得有关订单的信息。谢谢你,米哈伊尔。实际上,我以为你是指订单的票。但它应该更精确。但是,门票的行为仍然相当奇怪。 例如:在测试器中运行的门票和卷。我们在买入0.1手,票面2中建仓。卖出止损0.78票3被放置。当SellStop被激活时,仓位剩下0.68;订单3的成交量为0.78,历史上出现负利润。同时,有一个位置有票4而且,绝对不清楚用2号票的位置的损失消失到哪里去了。一般来说,我们不能总是相信所写的东西。因为它并没有完全写好。如果一个仓位以挂单开仓,则票据保持不变,但如果订单关闭了另一个,则创建新的票据。 Alexey Viktorov 2015.02.11 06:24 #54 如果头寸和挂单在同一方向,票据也会发生同样的情况。票价变化。 Vasiliy Sokolov 2015.02.11 07:31 #55 AlexeyVik:显然,这是交易的损失...而且,首先,(从文件中剪下),(从文件中剪下)。瓦西里,这是一个测试器还是一个演示?我有测试者的样本。我想知道OnTradeTransaction在测试者和账户上的触发是否有区别?我偶尔会检查一下。这是个演示。也许事件模型 在测试器中和在实时中是不同的。 votor 2017.11.14 14:50 #56 我在MT5的Forts上有几个机器人。包括同一乐器上的几个。我通过浏览交易历史,来确定哪个 "机器人 "有多少份合同。一般来说,它是有效的。我已经决定尝试使用OnTradeTransaction。如何实现它的想法很简单--当一笔交易发生时,我们看看有多少合同被买入或卖出,以及什么波特进行了交易(使用对交易的特殊注释或神奇数字),并将这些信息保存在一个文件中。问题是这样的。如果我们在每个EA中都有OnTradeTransaction,它将如何被顺序或平行地调用?假设,例如,已经执行了一笔交易--发生了很多事件,OnTradeTransaction将在每个Bot中为每个事件持续调用?也就是说,制作一个负责所有机器人的OnTradeTransaction处理程序是否更容易?如果有的话,我不是一个程序员,尽管我已经对很多东西进行了编程。代码可能很俗气,但我总是能让它正常工作。 Alexey Viktorov 2017.11.14 14:57 #57 votor:我在MT5的Forts上有几个机器人。包括同一乐器上的几个。我通过浏览交易历史,来确定哪个 "机器人 "有多少份合同。这一切基本上是可行的。我已经决定尝试使用OnTradeTransaction。如何实现它的想法很简单--当一笔交易发生时,我们看看有多少合同被买入或卖出,以及什么波特进行了交易(使用对交易的特殊注释或神奇数字),并将这些信息保存在一个文件中。问题是这样的。如果我们在每个EA中都有OnTradeTransaction,那么它将如何按顺序或并行地被调用?假设,例如,已经执行了一笔交易--发生了很多事件,OnTradeTransaction将在每个Bot中为每个事件持续调用?也就是说,制作一个负责所有机器人的OnTradeTransaction处理程序是否更容易?如果有的话,我不是一个程序员,尽管我已经对很多东西进行了编程。代码可能很俗气,但我总是让它正常工作。是的,OnTradeTransaction将在每个EA中发挥作用。它们应该按符号过滤,如果一个符号上有多个专家顾问,则按魔力过滤。 votor 2017.11.14 15:11 #58 谢谢你的答复。我已经检查过了,我看到它在所有的EA中都有效。问题是(也许这是一个愚蠢的问题),如果所有这些OnTradeTransactions 是在所有EA中串联处理的,首先在一个EA中,然后在下一个,等等,而不是并行的,对吗? 我的意思是,由于它们的处理是顺序的(?),最好为所有机器人创建一个处理器,并在其中过滤我们需要的东西。 Alexey Viktorov 2017.11.14 15:25 #59 votor:谢谢你的答复。我已经检查过了,我看到它在所有的EA中都有效。问题是(也许这是一个愚蠢的问题),如果所有这些在所有EA中的OnTradeTransaction 帖子是按顺序工作的,首先在一个EA中,然后在下一个,等等,而不是平行的,对吗? 我的意思是,既然它们的处理是按顺序的(?),最好为所有机器人创建一个处理程序,在其中过滤我们需要的东西。我没有检查过,但似乎没有规律可循。这就像谁先站起来一样,不留余地。而且有可能,如果你在同一时间起床,那么每个人的拖鞋。到目前为止,在我看来,按符号和魔术师过滤是最好的选择。他在谁的位置上写了关于它的信息。 votor 2017.11.14 15:49 #60 显然,我不善于解释的东西。这里有一个现实生活中的例子。以下是代码。void OnTradeTransaction(constMqlTradeTransaction& trans,const MqlTradeRequest& request,const MqlTradeResult& result){数++。Print("Ontrade_test = ",Count);}该处理程序在两个专家顾问系统中实现,因此当进行一次交易时,它在两个专家顾问系统中被多次执行。该代码输出。18:31:06.495 ontrade_trans_functions (MXI-12.17,H1) Ontrade_test = 118:31:06.495 ontrade_trans_functions2 (MXI-12.17,H1) Ontrade_test = 118:31:06.497 ontrade_trans_functions (MXI-12.17,H1) Ontrade_test = 218:31:06.497 ontrade_trans_functions2 (MXI-12.17,M5) Ontrade_test = 218:31:06.498 ontrade_trans_functions (MXI-12.17,M5) Ontrade_test = 318:31:06.498 ontrade_trans_functions2 (MXI-12.17,H1) Ontrade_test = 318:31:06.500 ontrade_trans_functions (MXI-12.17,M5) Ontrade_test = 418:31:06.500 ontrade_trans_functions2 (MXI-12.17,H1) Ontrade_test = 4 ...等等。你可以看到,两个专家顾问系统的OnTradeTransaction 响应时间是相同的,单位是毫秒。因此,我有一个问题:交易事件是先到一个EA的OnTradeTransaction,然后到另一个EA的下一个,还是以某种方式同时到达所有EA的所有处理程序?好吧,这就像一个并行的多线程操作或在编程中被称为的任何东西。我确信所有的事情都是按顺序发生的,只是在一毫秒内处理,但我问的是以防万一。 Question about the OnTradeTransaction 错误、漏洞、问题 如何在MT5中正确使用OrderSend? 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
不,交易不会丢失,只是可能不按一定的顺序来。
只有TRADE_TRANSACTION_REQUEST总是排在第一位,否则你将不会得到订单票。
仔细阅读文件。
迈克尔,对不起,但在我看来,你只回复了最后一个帖子,而这是这一页上第一个帖子所描述的一切的结果。
而且,听到你建议阅读文件,这很奇怪。我读了它,重读了它,又读了它。
你说的 "Warrant Ticket "是什么意思? 我在文件中没有看到它。
迈克尔,我很抱歉,但在我看来,你只回应了最后一个帖子,而且是作为本页第一个帖子中描述的一切的结果。
而听到你建议阅读文件,似乎很奇怪。我读了它,重读了它,又读了它。
你说的 "订货单 "是什么意思? 我在文件中没有看到这个。
乌龙票是分配给一个订单的唯一号码。
这个数字在订单有效期 内以及在历史上都不会改变。
我们使用tikcet获得关于订单的信息。
乌龙票是分配给一个已下订单的唯一号码。
这个数字在整个订单有效期 内以及在历史上都不会改变。
我们用tikcet获得有关订单的信息。
谢谢你,米哈伊尔。实际上,我以为你是指订单的票。但它应该更精确。
但是,门票的行为仍然相当奇怪。
例如:在测试器中运行的门票和卷。
我们在买入0.1手,票面2中建仓。卖出止损0.78票3被放置。
当SellStop被激活时,仓位剩下0.68;订单3的成交量为0.78,历史上出现负利润。
同时,有一个位置有票4
而且,绝对不清楚用2号票的位置的损失消失到哪里去了。
一般来说,我们不能总是相信所写的东西。因为它并没有完全写好。
如果一个仓位以挂单开仓,则票据保持不变,但如果订单关闭了另一个,则创建新的票据。
如果头寸和挂单在同一方向,票据也会发生同样的情况。票价变化。
显然,这是交易的损失...而且,首先,(从文件中剪下),(从文件中剪下)。
瓦西里,这是一个测试器还是一个演示?我有测试者的样本。我想知道OnTradeTransaction在测试者和账户上的触发是否有区别?我偶尔会检查一下。
这是个演示。也许事件模型 在测试器中和在实时中是不同的。
我在MT5的Forts上有几个机器人。包括同一乐器上的几个。我通过浏览交易历史,来确定哪个 "机器人 "有多少份合同。一般来说,它是有效的。我已经决定尝试使用OnTradeTransaction。如何实现它的想法很简单--当一笔交易发生时,我们看看有多少合同被买入或卖出,以及什么波特进行了交易(使用对交易的特殊注释或神奇数字),并将这些信息保存在一个文件中。问题是这样的。如果我们在每个EA中都有OnTradeTransaction,它将如何被顺序或平行地调用?假设,例如,已经执行了一笔交易--发生了很多事件,OnTradeTransaction将在每个Bot中为每个事件持续调用?也就是说,制作一个负责所有机器人的OnTradeTransaction处理程序是否更容易?如果有的话,我不是一个程序员,尽管我已经对很多东西进行了编程。代码可能很俗气,但我总是能让它正常工作。
我在MT5的Forts上有几个机器人。包括同一乐器上的几个。我通过浏览交易历史,来确定哪个 "机器人 "有多少份合同。这一切基本上是可行的。我已经决定尝试使用OnTradeTransaction。如何实现它的想法很简单--当一笔交易发生时,我们看看有多少合同被买入或卖出,以及什么波特进行了交易(使用对交易的特殊注释或神奇数字),并将这些信息保存在一个文件中。问题是这样的。如果我们在每个EA中都有OnTradeTransaction,那么它将如何按顺序或并行地被调用?假设,例如,已经执行了一笔交易--发生了很多事件,OnTradeTransaction将在每个Bot中为每个事件持续调用?也就是说,制作一个负责所有机器人的OnTradeTransaction处理程序是否更容易?如果有的话,我不是一个程序员,尽管我已经对很多东西进行了编程。代码可能很俗气,但我总是让它正常工作。
是的,OnTradeTransaction将在每个EA中发挥作用。它们应该按符号过滤,如果一个符号上有多个专家顾问,则按魔力过滤。
谢谢你的答复。我已经检查过了,我看到它在所有的EA中都有效。问题是(也许这是一个愚蠢的问题),如果所有这些OnTradeTransactions 是在所有EA中串联处理的,首先在一个EA中,然后在下一个,等等,而不是并行的,对吗? 我的意思是,由于它们的处理是顺序的(?),最好为所有机器人创建一个处理器,并在其中过滤我们需要的东西。
谢谢你的答复。我已经检查过了,我看到它在所有的EA中都有效。问题是(也许这是一个愚蠢的问题),如果所有这些在所有EA中的OnTradeTransaction 帖子是按顺序工作的,首先在一个EA中,然后在下一个,等等,而不是平行的,对吗? 我的意思是,既然它们的处理是按顺序的(?),最好为所有机器人创建一个处理程序,在其中过滤我们需要的东西。
我没有检查过,但似乎没有规律可循。这就像谁先站起来一样,不留余地。而且有可能,如果你在同一时间起床,那么每个人的拖鞋。
到目前为止,在我看来,按符号和魔术师过滤是最好的选择。他在谁的位置上写了关于它的信息。
显然,我不善于解释的东西。这里有一个现实生活中的例子。以下是代码。
void OnTradeTransaction(constMqlTradeTransaction& trans,
const MqlTradeRequest& request,
const MqlTradeResult& result)
{
数++。
Print("Ontrade_test = ",Count);
}
该处理程序在两个专家顾问系统中实现,因此当进行一次交易时,它在两个专家顾问系统中被多次执行。该代码输出。
18:31:06.495 ontrade_trans_functions (MXI-12.17,H1) Ontrade_test = 1
18:31:06.495 ontrade_trans_functions2 (MXI-12.17,H1) Ontrade_test = 1
18:31:06.497 ontrade_trans_functions (MXI-12.17,H1) Ontrade_test = 2
18:31:06.497 ontrade_trans_functions2 (MXI-12.17,M5) Ontrade_test = 2
18:31:06.498 ontrade_trans_functions (MXI-12.17,M5) Ontrade_test = 3
18:31:06.498 ontrade_trans_functions2 (MXI-12.17,H1) Ontrade_test = 3
18:31:06.500 ontrade_trans_functions (MXI-12.17,M5) Ontrade_test = 4
18:31:06.500 ontrade_trans_functions2 (MXI-12.17,H1) Ontrade_test = 4 ...
等等。
你可以看到,两个专家顾问系统的OnTradeTransaction 响应时间是相同的,单位是毫秒。因此,我有一个问题:交易事件是先到一个EA的OnTradeTransaction,然后到另一个EA的下一个,还是以某种方式同时到达所有EA的所有处理程序?好吧,这就像一个并行的多线程操作或在编程中被称为的任何东西。我确信所有的事情都是按顺序发生的,只是在一毫秒内处理,但我问的是以防万一。