如何在MT5中正确使用OrderSend? - 页 6 12345678910111213 新评论 fxsaber 2016.10.17 18:48 #51 Alexey Viktorov:第一个EA意识到,在它的OrderSend 之后,历史记录还没有同步。他只是在等待同步化的事件。但第二个专家顾问如何理解历史是否同步? Alexey Viktorov 2016.10.17 19:31 #52 fxsaber: 第一个EA意识到,在它的OrderSend之后,历史记录还没有同步。他只是在等待同步化的事件。但第二个专家顾问如何理解历史是否同步?忘记历史。试着研究一下函数OnTradeTransaction()的 行为。 第一个专家顾问已经建仓,这个事件在OnTradeTransaction中处理,错误的订单被激活......这个事件在OnTradeTransaction中也被处理。第二个专家顾问也会筛选出不属于自己的订单、头寸和交易。 我有2个EA在真实账户中工作。在其中一个中,位置魔术师将一张票分配到它应该附着的位置上。而你自己也明白,他们不是两个不同的魔术师......我想你的名字是维克多?在调试中开始设置两个具有不同法师的头寸,并在OnTradeTransaction中追踪它们的结构。 prostotrader 2016.10.17 20:59 #53 Alexey Viktorov:忘记历史。尝试研究OnTradeTransaction()函数的 行为。 第一个专家顾问下了一个头寸,OnTradeTransaction处理这个事件,"不是他们的 "被筛选出来,订单被激活......。OnTradeTransaction也会处理这个事件。第二个专家顾问也会筛选出不属于自己的订单、头寸和交易。 我有2个EA在真实账户中工作。在其中一个中,位置魔术师将一张票分配到它应该附着的位置。而你自己也明白,他们不是两个不同的魔术师......我想你的名字是维克多?在调试中开始设置两个具有不同法师的头寸,并在OnTradeTransaction中追踪它们的结构。如果你仔细看我的日志,你可以看到收到票据的速度比触发OnTradeTransaction的速度快,所以足够了。虽然,当然(在这种情况下)最好是使用马吉克。而且(更好的是)使用OrderSendAsync - 没有错误,无论是在FOREX还是FORTS上。 Alexey Viktorov 2016.10.17 21:31 #54 prostotrader:如果你仔细看我的日志,你可以看到。收到票据的速度比OnTradeTransaction快,所以足够了。当然,(在这种情况下)使用魔术师会更好。而且(目前)最好使用OrderSendAsync - 没有错误,无论是在FOREX还是FORTS上。也许,这可能是这样的。但如果挂单被激活了呢?我们应该分析一下历史吗?环境同步速度的另一个问题? 总而言之,这是一个业余爱好者的游戏。最主要的是要让它发挥作用,不要太慢,避免... fxsaber 2016.10.17 21:48 #55 Alexey Viktorov:忘记历史。尝试研究OnTradeTransaction()的 行为。在非同步的历史中,第二个是如何工作的?这个问题不仅影响到MT5,而且还影响到四倍。 Alexey Viktorov 2016.10.17 23:29 #56 fxsaber:在不同步的历史中,第二个是如何工作的?这个问题不仅影响到MT5,也影响到四合院。我越来越确定你的名字是维克多。我不会告诉任何人你过去的绰号。你在很短的时间内就掌握了高于平均水平的编程,在我看来,甚至高于平均水平。但要把你从你的错误立场上移开是非常困难的。而现在你的编程知识水平比我高,我甚至不打算尝试。 忘记历史,请看OnTradeTransaction函数的 结构。试着用语言解释一下,你如何在mql5中确定一个挂单被激活? Renat Fatkhullin 2016.10.18 01:47 #57 Alexey Viktorov:我越来越确定你的名字是维克多。我不会告诉任何人你以前的绰号。你在很短的时间内掌握了编程... 实际上,这是hrenfx的另一个转世。决定以一种新的方式来。 [删除] 2016.10.22 13:00 #58 prostotrader:如果你仔细看我的日志,你可以看到。收到票据的速度比OnTradeTransaction快,所以足够了。当然,(在这种情况下)使用魔术师会更好。而且(目前)最好使用OrderSendAsync - 没有错误,无论是在FOREX还是FORTS上。 那么OrderSendAsync() 的优势是什么?它不等待结果的回应。这意味着它必须在以后被抓住。目前还不清楚什么是优势。 [删除] 2016.10.22 13:03 #59 prostotrader:OrderSend()是一个绝对同步的函数--如果收到票据,一切都会执行。下面是一个例子已添加,这里是日志https://www.mql5.com/ru/forum/38456/page85#comment_2888263 谢谢你! fxsaber 2016.11.10 10:00 #60 关于交易、自动交易系统和交易策略测试的论坛 在没有开仓的情况下,我如何知道我的佣金? fxsaber, 2016.11.08 20:30#include <MT4Orders.mqh>void OnStart(){ const int Ticket = OrderSend(_Symbol, OP_BUY, 1, SymbolInfoDouble(_Symbol, SYMBOL_ASK), 0, 0, 0); OrderClose(Ticket, 0.3, SymbolInfoDouble(_Symbol, SYMBOL_BID), 0, clrNONE); Sleep(1000); // ждем обновления истории if (OrderSelect(Ticket, SELECT_BY_TICKET)) Alert(OrderCommission());}我想这个例子可以说明问题。如果你不做Sleep,你经常会遇到这样的情况:在OrderClose之后,历史记录还没有来得及更新,OrderCommission返回的值就像OrderClose还没有被完成。请注意,这是一个脚本,不可能有Event-over。唯一的出路是一个愚蠢的睡眠。如果你用SB重写这个脚本,什么也不会改变。 How to work correctly 程序库: MT4Orders 错误、漏洞、问题 12345678910111213 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
第一个EA意识到,在它的OrderSend 之后,历史记录还没有同步。他只是在等待同步化的事件。
但第二个专家顾问如何理解历史是否同步?
第一个EA意识到,在它的OrderSend之后,历史记录还没有同步。他只是在等待同步化的事件。
但第二个专家顾问如何理解历史是否同步?
忘记历史。试着研究一下函数OnTradeTransaction()的 行为。
第一个专家顾问已经建仓,这个事件在OnTradeTransaction中处理,错误的订单被激活......这个事件在OnTradeTransaction中也被处理。
第二个专家顾问也会筛选出不属于自己的订单、头寸和交易。
我有2个EA在真实账户中工作。在其中一个中,位置魔术师将一张票分配到它应该附着的位置上。而你自己也明白,他们不是两个不同的魔术师......
我想你的名字是维克多?在调试中开始设置两个具有不同法师的头寸,并在OnTradeTransaction中追踪它们的结构。
忘记历史。尝试研究OnTradeTransaction()函数的 行为。
第一个专家顾问下了一个头寸,OnTradeTransaction处理这个事件,"不是他们的 "被筛选出来,订单被激活......。OnTradeTransaction也会处理这个事件。
第二个专家顾问也会筛选出不属于自己的订单、头寸和交易。
我有2个EA在真实账户中工作。在其中一个中,位置魔术师将一张票分配到它应该附着的位置。而你自己也明白,他们不是两个不同的魔术师......
我想你的名字是维克多?在调试中开始设置两个具有不同法师的头寸,并在OnTradeTransaction中追踪它们的结构。
如果你仔细看我的日志,你可以看到
收到票据的速度比触发OnTradeTransaction的速度快,所以
足够了。
虽然,当然(在这种情况下)最好是使用马吉克。
而且(更好的是)使用OrderSendAsync - 没有错误,无论是在FOREX还是FORTS上。
如果你仔细看我的日志,你可以看到。
收到票据的速度比OnTradeTransaction快,所以
足够了。
当然,(在这种情况下)使用魔术师会更好。
而且(目前)最好使用OrderSendAsync - 没有错误,无论是在FOREX还是FORTS上。
也许,这可能是这样的。但如果挂单被激活了呢?我们应该分析一下历史吗?环境同步速度的另一个问题?
总而言之,这是一个业余爱好者的游戏。最主要的是要让它发挥作用,不要太慢,避免...
忘记历史。尝试研究OnTradeTransaction()的 行为。
在非同步的历史中,第二个是如何工作的?
这个问题不仅影响到MT5,而且还影响到四倍。
在不同步的历史中,第二个是如何工作的?
这个问题不仅影响到MT5,也影响到四合院。
我越来越确定你的名字是维克多。我不会告诉任何人你过去的绰号。
你在很短的时间内就掌握了高于平均水平的编程,在我看来,甚至高于平均水平。但要把你从你的错误立场上移开是非常困难的。而现在你的编程知识水平比我高,我甚至不打算尝试。
忘记历史,请看OnTradeTransaction函数的 结构。
试着用语言解释一下,你如何在mql5中确定一个挂单被激活?
我越来越确定你的名字是维克多。我不会告诉任何人你以前的绰号。
你在很短的时间内掌握了编程...
如果你仔细看我的日志,你可以看到。
收到票据的速度比OnTradeTransaction快,所以
足够了。
当然,(在这种情况下)使用魔术师会更好。
而且(目前)最好使用OrderSendAsync - 没有错误,无论是在FOREX还是FORTS上。
OrderSend()是一个绝对同步的函数--如果收到票据,一切都会执行。
下面是一个例子
已添加,这里是日志
https://www.mql5.com/ru/forum/38456/page85#comment_2888263
关于交易、自动交易系统和交易策略测试的论坛
在没有开仓的情况下,我如何知道我的佣金?
fxsaber, 2016.11.08 20:30
void OnStart()
{
const int Ticket = OrderSend(_Symbol, OP_BUY, 1, SymbolInfoDouble(_Symbol, SYMBOL_ASK), 0, 0, 0);
OrderClose(Ticket, 0.3, SymbolInfoDouble(_Symbol, SYMBOL_BID), 0, clrNONE);
Sleep(1000); // ждем обновления истории
if (OrderSelect(Ticket, SELECT_BY_TICKET))
Alert(OrderCommission());
}
我想这个例子可以说明问题。
如果你不做Sleep,你经常会遇到这样的情况:在OrderClose之后,历史记录还没有来得及更新,OrderCommission返回的值就像OrderClose还没有被完成。
请注意,这是一个脚本,不可能有Event-over。唯一的出路是一个愚蠢的睡眠。
如果你用SB重写这个脚本,什么也不会改变。