FORTS: OnTradeTransaction() 返回代码 - 页 7 1234567891011 新评论 [删除] 2015.11.26 14:46 #61 Михаил:问题是,当一个订单被执行时,你并不控制它的执行,因此你不会阻止OnTick()或OnBookEvent()。你需要在OnTradeTransaction()中处理交易事件,以快速控制正在执行的订单。我将很快发布如何做的代码。 嗯,我得考虑一下,谢谢! Mikhail Filimonov 2015.11.26 14:46 #62 Alexey Kozitsyn: 咳咳。我得考虑一下,谢谢!#property copyright "Copyright 2015, Mikalas" #property link "https://www.mql5.com" #property version "1.00" // bool is_busy; // //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { is_busy = false; return( INIT_SUCCEEDED ); } //---------------------------- void OnBookEvent( const string &a_symbol ) { if ( ( a_symbol == _Symbol ) && ( !is_busy ) ) { //Работаем дальше } } //------------ void OnTradeTransaction( const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result ) { switch( trans.type ) { case TRADE_TRANSACTION_DEAL_ADD: if ( trans.order_state == ORDER_STATE_STARTED ) { is_busy = true; //Обнуляем билет этого ордера, если одер залился полностью is_busy = false; } break; } } Mikhail Filimonov 2015.11.26 14:49 #63 或者说。#property copyright "Copyright 2015, Mikalas" #property link "https://www.mql5.com" #property version "1.00" // bool is_busy; ulong order_ticket; // //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { is_busy = false; return( INIT_SUCCEEDED ); } //---------------------------- void OnBookEvent( const string &a_symbol ) { if ( ( a_symbol == _Symbol ) && ( !is_busy ) ) { //Работаем дальше } } //------------ void OnTradeTransaction( const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result ) { switch( trans.type ) { case TRADE_TRANSACTION_DEAL_ADD: if ( trans.order_state == ORDER_STATE_STARTED ) { if ( result.order == order_ticket ) { is_busy = true; //Обнуляем билет этого ордера, если одер залился полностью is_busy = false; } } break; } } [删除] 2015.11.26 14:52 #64 Михаил: 我明白了,但有人怀疑这种结构会阻止OnBookEvent()。换玻璃事件毕竟可以成串地进行。我会去看看的,再次感谢。 Mikhail Filimonov 2015.11.26 14:55 #65 Alexey Kozitsyn: 我明白了,但有人怀疑这种结构会阻止OnBookEvent()。换玻璃的事件毕竟可以成串地进行。我会检查的,再次感谢。 有任何疑问--不要使用提示,但我有和你一样的情况,直到我把一个 "道具"。 [删除] 2015.11.26 14:58 #66 Михаил: 有任何疑问--不要使用建议,但我有和你一样的情况,直到我把一个 "后盾 "放在那里。 不,这是一个有趣的想法,订单执行的时间越长,效果就越好。在我的案例中,订单的执行 和删除都花了1毫秒。我们也要检查专家顾问的逻辑。 Mikhail Filimonov 2015.11.26 15:05 #67 Alexey Kozitsyn: 不,这是一个有趣的想法,一个订单执行的时间越长,其工作质量就越好。在我引用的案例中,订单的执行 和订单的删除都发生在同一个ms内。我们还应该检查专家顾问的逻辑。 https://www.mql5.com/ru/forum/16832 ФОРТС Отмена ордера в момент его исполнения [что приходит раньше - BookEvent или TradeEvent] www.mql5.com OnBookEvent срабатывает раньше, чем OnTradeTransAction. - - Категория: автоматические торговые системы Mikhail Filimonov 2015.11.26 15:24 #68 Alexey Kozitsyn: OrderSend()。在这种情况下有什么区别? 在实施 "支持 "方面 [删除] 2015.11.26 15:33 #69 Михаил:这句话更准确。不是更真实。最后两个参数 request 和 result 只为交易类型TRADE_TRANSACTION_REQUEST填写数值,关于交易的信息可以从 trans 变量的 类型 参数中获得 。 Mikhail Filimonov 2015.11.26 15:44 #70 Alexey Kozitsyn:不是更真实。 我已经把自己写下来了,当然是反式的。 1234567891011 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
问题是,当一个订单被执行时,你并不控制它的执行,因此你不会阻止OnTick()或OnBookEvent()。
你需要在OnTradeTransaction()中处理交易事件,以快速控制正在执行的订单。
我将很快发布如何做的代码。
咳咳。我得考虑一下,谢谢!
或者说。
我明白了,但有人怀疑这种结构会阻止OnBookEvent()。换玻璃的事件毕竟可以成串地进行。我会检查的,再次感谢。
有任何疑问--不要使用建议,但我有和你一样的情况,直到我把一个 "后盾 "放在那里。
不,这是一个有趣的想法,一个订单执行的时间越长,其工作质量就越好。在我引用的案例中,订单的执行 和订单的删除都发生在同一个ms内。我们还应该检查专家顾问的逻辑。
OrderSend()。在这种情况下有什么区别?
这句话更准确。
不是更真实。
最后两个参数 request 和 result 只为交易类型TRADE_TRANSACTION_REQUEST填写数值,关于交易的信息可以从 trans 变量的 类型 参数中获得 。
不是更真实。