如何在MT5中正确使用OrderSend? - 页 3 12345678910...13 新评论 [删除] 2016.10.11 04:16 #21 prostotrader: 把握机会。 你为什么要向服务器发送一个空请求?这似乎没有什么意义。 如果你得到TRADE_RETCODE_TIMEOUT 或TRADE_RETCODE_FROZEN,你会在"//see cause result.retcode "中做什么? prostotrader 2016.10.11 12:34 #22 RickD: 你为什么要向服务器发送一个空请求?这似乎没有什么意义。 如果你得到,比如说,TRADE_RETCODE_TIMEOUT或TRADE_RETCODE_FROZEN,你会在"//see result.retcode "中做什么? 我要上吊自杀 :) Denis Sartakov 2016.10.12 22:19 #23 Andrey Khatimlianskii:我用双手支持它。就好像MQ不想对发送订单和接收响应的现成功能负责一样。我的选择也是拄着拐杖。为什么不做一些类似的东西(不是针对所有的场合,至少是最简单的一种!),然后把它拿出来给SB看?真的,如果我们在EA中必须等待,那么OrderSend(...)的 "快速执行 "有什么用?用于环境更新,在这种情况下是历史更新...并提出了不同的算法来等待...在历史被更新之前,我们不会继续前进......也就是说,这种速度是没有用的...... [删除] 2016.10.13 00:26 #24 Denis Sartakov:真的,如果我们在EA中必须等待 "快速 "执行OrderSend(...),那么 "快速 "执行OrderSend(...)有什么用?用于环境更新,在这种情况下是历史更新...并提出了不同的算法来等待...在历史被更新之前,我们不会继续前进......也就是说,这种速度是没有用的...... 可能,这样实现是因为终端可以平行执行OrderSend和OrderSendAsync,在OrderSend之后强制同步历史会在某种程度上影响OrderSendAsync、OnTrade、OnTradeTransaction,使它们变慢。 [删除] 2016.10.13 04:26 #25 Andrey Khatimlianskii: 我不是在说内置的语言函数,我是在说标准库。 我具体说的是内置的语言功能,OrderSend可以在内部等待交易历史更新,但它没有。:) 你说你有一根拐杖,但它并不那么可靠。给我举一个可靠的好拐杖的例子。 我是说,也许你完全可以不拄拐杖。如果开发者会改变OrderSend行为。让它像在MT4中一样。 或者--或者是另一种选择。添加函数OrderSendMT4Style。:) fxsaber 2016.10.13 05:10 #26 一个非常简单的OrderSend重载是独立编写的:在OnTrade返回一个响应之前,所有后续的OrderSend都返回false。一旦收到回应--强迫性虚假就被取消了。这正是我们需要添加到SB中的解决方案。而且我们必须自己使用它。在SB中,根据同样的原则,增加了boolCTrade::IsHistoryLoad( const string Symb = NULL )。而且不用拄拐杖!这两个函数都可以很容易地由自己来写。如果你想实现完整的功能(不是针对SB),在相应的同步到来时,在OnTrade中独立调用OnTick和OnTimer。 Alexey Viktorov 2016.10.13 06:40 #27 他们写的都是些什么拐杖...研究无效的OnTradeTransaction()函数的行为/*********************TradeTransaction function*********************/ void OnTradeTransaction(const MqlTradeTransaction& trans, const MqlTradeRequest& request, const MqlTradeResult& result) { if(trans.type == TRADE_TRANSACTION_DEAL_ADD) { if(!PositionSelectByTicket(trans.position)) { //Print("********* закрылась позиция ", trans.position); closedPosition(trans); } if(PositionSelectByTicket(trans.position)) { //Print("********* отккрылась позиция ", ", ", EnumToString(trans.deal_type), ", ", trans.position); openedPosition(trans); } } }/*******************************************************************/ 同时处理开仓 和订单的错误。 fxsaber 2016.10.13 07:17 #28 Alexey Viktorov:他们写的都是些什么拐杖...研究无效的OnTradeTransaction()函数的行为同时处理开仓 和订单的错误。 你已经斜着看了这个主题。 Alexey Viktorov 2016.10.13 07:25 #29 fxsaber: 你已经斜着看了这个题目。不,只有垂直方向。只有每一行的第一个字母。 fxsaber 2016.10.13 10:04 #30 Andrey Khatimlianskii:这种简单的重载在同一工具上的2个EA中如何工作? 不幸的是,只能通过一个拐杖--终端的一个全局变量。 12345678910...13 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
把握机会。
如果你得到TRADE_RETCODE_TIMEOUT 或TRADE_RETCODE_FROZEN,你会在"//see cause result.retcode "中做什么?
你为什么要向服务器发送一个空请求?这似乎没有什么意义。
如果你得到,比如说,TRADE_RETCODE_TIMEOUT或TRADE_RETCODE_FROZEN,你会在"//see result.retcode "中做什么?
我用双手支持它。就好像MQ不想对发送订单和接收响应的现成功能负责一样。
我的选择也是拄着拐杖。
为什么不做一些类似的东西(不是针对所有的场合,至少是最简单的一种!),然后把它拿出来给SB看?
真的,如果我们在EA中必须等待,那么OrderSend(...)的 "快速执行 "有什么用?
用于环境更新,在这种情况下是历史更新...并提出了不同的算法来等待...
在历史被更新之前,我们不会继续前进......也就是说,这种速度是没有用的......
真的,如果我们在EA中必须等待 "快速 "执行OrderSend(...),那么 "快速 "执行OrderSend(...)有什么用?
用于环境更新,在这种情况下是历史更新...并提出了不同的算法来等待...
在历史被更新之前,我们不会继续前进......也就是说,这种速度是没有用的......
我不是在说内置的语言函数,我是在说标准库。
你说你有一根拐杖,但它并不那么可靠。给我举一个可靠的好拐杖的例子。
我是说,也许你完全可以不拄拐杖。如果开发者会改变OrderSend行为。让它像在MT4中一样。
或者--或者是另一种选择。添加函数OrderSendMT4Style。:)
一个非常简单的OrderSend重载是独立编写的:在OnTrade返回一个响应之前,所有后续的OrderSend都返回false。一旦收到回应--强迫性虚假就被取消了。
这正是我们需要添加到SB中的解决方案。而且我们必须自己使用它。
在SB中,根据同样的原则,增加了boolCTrade::IsHistoryLoad( const string Symb = NULL )。
而且不用拄拐杖!这两个函数都可以很容易地由自己来写。
如果你想实现完整的功能(不是针对SB),在相应的同步到来时,在OnTrade中独立调用OnTick和OnTimer。
他们写的都是些什么拐杖...研究无效的OnTradeTransaction()函数的行为
同时处理开仓 和订单的错误。
他们写的都是些什么拐杖...研究无效的OnTradeTransaction()函数的行为
同时处理开仓 和订单的错误。
你已经斜着看了这个题目。
不,只有垂直方向。只有每一行的第一个字母。
这种简单的重载在同一工具上的2个EA中如何工作?