帮助。为什么EA不关闭交易 - 页 6 1234567 新评论 Yochanan Gerbi 2012.05.27 17:25 #51 RaptorUK:你根本不需要这个功能......摆脱它。 你好,Raptor。 我需要这个函数,因为我的EA是一个复杂的EA,而且我在很多版本的od关闭条件下使用这个函数。 我希望你能理解我。 Y. Yochanan Gerbi 2012.05.27 17:29 #52 onewithzachy:让我们再做一次第二部分 :( 谢谢onewithzachy,但正如我之前所回答的,我需要这个函数 来关闭许多版本的条件,所以把关闭代码命令放在每个条件中太复杂了,尤其是它不是一个代码命令。 谢谢。 Y. Yochanan Gerbi 2012.05.27 17:31 #53 RaptorUK: 这样做......。( 从这里重复:https://www.mql5.com/en/forum/139543 ) .......你就完全不需要这个功能了。 猛禽,我需要这个功能来克服REQUATE情况,你可以看到。 Y. Yochanan Gerbi 2012.05.27 17:42 #54 onewithzachy: @ RaptorUK,我正在考虑戴上防撞头盔,这样至少我可以比现在想得更远。那些司机不就是这样吗? @ skaboy,我在这里礼貌地问一下,如果你不介意的话,请你用SRC按钮来发布你的代码。仅仅在这个主题中,我们已经问了太多次了。 @ crossy,从你的第一篇帖子到现在已经快一个星期了。当然,我理解你现在可能没有一个清晰的头脑来处理4000行,现在我自己的头脑也在这里。如果你还是不明白,--嗯--你可以要求我们为你写出那段封闭的代码。不过你还是要写代码,哪怕只是一点点--给我们看看。 :D, RaptorUK的代码就在上面,比我的更直接,想想看,然后你就可以继续你的EA了。 以你在这里写代码的方式--太多不必要的重复代码--你应该对你的4000行代码有一点担心,它可能会拖慢你的EA,使你的EA错过一个点。错过几个点是可以的,但是如果你错过了10个点会怎样? 可能你的4000行还是可以减少到400行。谁知道呢,你的EA会变得更轻更快。 谢谢你,onewithzachy。 我的EA有一个小错误,那就是。 1)它关闭了相关的票据,而且还在寻找它。 2)这个错误并不是每一个平仓单都会出现,有时它的效果很好。 至于其他3950条代码线--它们工作得非常好。 我再次附上相关的代码行。 Y. ... for(int cnt = OrdersTotal()-1; cnt >= 0 ; cnt--) { CodeY = false; if ( OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ) { CodeY = true; OrderS = OrderSymbol(); OrderT = OrderTicket(); OrderM = OrderMagicNumber(); OrderTyp = OrderType(); OrderL = OrderLots(); } if ( CodeY && OrderS == Pair1 && OrderTyp == OP_BUY && OrderM == MAG &&.... ) CLOSE_Single_P(Pair1,"LONG",OrderT,OrderL); //-----------------------------------------------+ void CLOSE_Single_P(string SYMB, string TREN, int TICKET, double LOTT) { double PRC; bool Check = false; for ( int cntt=0; cntt<20000; cntt++ ) { if ( Check ) { Check_Ini(); return; } Check = false; if ( TREN == "LONG" ) PRC = MarketInfo(SYMB,MODE_BID); else if ( TREN == "SHORT" ) PRC = MarketInfo(SYMB,MODE_ASK); Check = OrderClose(TICKET,LOTT,PRC,Slippage,Yellow); } return; } //-----------------------------------------------+ Simon Gniadkowski 2012.05.27 17:52 #55 crossy: 你好,Raptor。 我需要这个函数,因为该EA是一个复杂的EA,我在许多版本的od关闭条件下使用这个函数。 我希望你能理解我。 Y. 我认为你没有理解你从其他地方复制和粘贴的代码......而且,这不是为了重新报价。......你甚至没有检查你得到的错误是否是一个重新报价。 Yochanan Gerbi 2012.05.27 18:00 #56 RaptorUK: 我认为你不明白你从别的地方复制和粘贴的副本......而且,这不是为了重新报价。......你甚至不检查你得到的错误是否是一个重新报价。 不是猛禽,我得到的错误是。票号没有找到。我可以告诉你的是,该票据在一秒钟前就已经关闭了。 我不明白它是如何关闭票据并继续搜索它的...... Simon Gniadkowski 2012.05.27 18:22 #57 crossy: 我不明白它是如何关闭票据并继续搜索它的......这是因为在你不需要的函数 中,有一个我说过你不需要的循环。 "为什么在Close_Single_P函数中有一个循环? " 来自第1页的第3篇文章 "为什么有循环?" 来自第4页的第2篇文章 [删除] 2012.05.27 18:47 #58 我错了吗,还是这个函数 从不关闭空头订单? ... for(int cnt = OrdersTotal()-1; cnt >= 0 ; cnt--) { CodeY = false; if ( OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ) { CodeY = true; OrderS = OrderSymbol(); OrderT = OrderTicket(); OrderM = OrderMagicNumber(); OrderTyp = OrderType(); OrderL = OrderLots(); } if ( CodeY && OrderS == Pair1 && OrderTyp == OP_BUY && OrderM == MAG &&.... ) CLOSE_Single_P(Pair1,"LONG",OrderT,OrderL); ^^^^ - You always pass LONG to variable TREN, so variable PRC (below) is always equal taken from LONG, but NEVER from SHORT. //-----------------------------------------------+ void CLOSE_Single_P(string SYMB, string TREN, int TICKET, double LOTT) { double PRC; bool Check = false; for ( int cntt=0; cntt<20000; cntt++ ) { if ( Check ) { Check_Ini(); return; } Check = false; if ( TREN == "LONG" ) PRC = MarketInfo(SYMB,MODE_BID); else if ( TREN == "SHORT" ) PRC = MarketInfo(SYMB,MODE_ASK); ^^^ Never executed Check = OrderClose(TICKET,LOTT,PRC,Slippage,Yellow); } return; } //-----------------------------------------------+ Yochanan Gerbi 2012.05.27 19:45 #59 Waidas: 我错了吗?还是这个函数从不关闭空头订单? Waidas,你是对的。但这只是EA中的一小部分,它关闭了长线和短线。 谢谢。 Yochanan Gerbi 2012.05.27 19:48 #60 RaptorUK:这是因为在你不需要的函数中,我说过你不需要的循环。"为什么在Close_Single_P函数里有一个循环? " 来自第1页第3个帖子"为什么有循环?" 来自第4页的第2篇文章 Raptor,你说的很对,我把循环的部分删掉了,所以现在这个函数 没有任何循环。 我在这里再次附上它。 Y. ... for(int cnt = OrdersTotal()-1; cnt >= 0 ; cnt--) { CodeY = false; if ( OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES) ) { CodeY = true; OrderS = OrderSymbol(); OrderT = OrderTicket(); OrderM = OrderMagicNumber(); OrderTyp = OrderType(); OrderL = OrderLots(); } if ( CodeY && OrderS == Pair1 && OrderTyp == OP_BUY && OrderM == MAG &&.... ) CLOSE_Single_P(Pair1,"LONG",OrderT,OrderL); //-----------------------------------------------+ void CLOSE_Single_P(string SYMB, string TREN, int TICKET, double LOTT) { double PRC; bool Check = false; for ( int cntt=0; cntt<20000; cntt++ ) { if ( Check ) { Check_Ini(); return; } if ( TREN == "LONG" ) PRC = MarketInfo(SYMB,MODE_BID); else if ( TREN == "SHORT" ) PRC = MarketInfo(SYMB,MODE_ASK); Check = OrderClose(TICKET,LOTT,PRC,Slippage,Yellow); } return; } //-----------------------------------------------+ 1234567 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你根本不需要这个功能......摆脱它。
你好,Raptor。
我需要这个函数,因为我的EA是一个复杂的EA,而且我在很多版本的od关闭条件下使用这个函数。
我希望你能理解我。
Y.
让我们再做一次第二部分 :(
谢谢onewithzachy,但正如我之前所回答的,我需要这个函数 来关闭许多版本的条件,所以把关闭代码命令放在每个条件中太复杂了,尤其是它不是一个代码命令。
谢谢。
Y.
这样做......。( 从这里重复:https://www.mql5.com/en/forum/139543 )
.......你就完全不需要这个功能了。
猛禽,我需要这个功能来克服REQUATE情况,你可以看到。
Y.
@ RaptorUK,我正在考虑戴上防撞头盔,这样至少我可以比现在想得更远。那些司机不就是这样吗?
@ skaboy,我在这里礼貌地问一下,如果你不介意的话,请你用SRC按钮来发布你的代码。仅仅在这个主题中,我们已经问了太多次了。
@ crossy,从你的第一篇帖子到现在已经快一个星期了。当然,我理解你现在可能没有一个清晰的头脑来处理4000行,现在我自己的头脑也在这里。如果你还是不明白,--嗯--你可以要求我们为你写出那段封闭的代码。不过你还是要写代码,哪怕只是一点点--给我们看看。 :D, RaptorUK的代码就在上面,比我的更直接,想想看,然后你就可以继续你的EA了。
以你在这里写代码的方式--太多不必要的重复代码--你应该对你的4000行代码有一点担心,它可能会拖慢你的EA,使你的EA错过一个点。错过几个点是可以的,但是如果你错过了10个点会怎样? 可能你的4000行还是可以减少到400行。谁知道呢,你的EA会变得更轻更快。
谢谢你,onewithzachy。
我的EA有一个小错误,那就是。
1)它关闭了相关的票据,而且还在寻找它。
2)这个错误并不是每一个平仓单都会出现,有时它的效果很好。
至于其他3950条代码线--它们工作得非常好。
我再次附上相关的代码行。
Y.
你好,Raptor。
我需要这个函数,因为该EA是一个复杂的EA,我在许多版本的od关闭条件下使用这个函数。
我希望你能理解我。
Y.
我认为你不明白你从别的地方复制和粘贴的副本......而且,这不是为了重新报价。......你甚至不检查你得到的错误是否是一个重新报价。
不是猛禽,我得到的错误是。票号没有找到。我可以告诉你的是,该票据在一秒钟前就已经关闭了。
我不明白它是如何关闭票据并继续搜索它的......
我不明白它是如何关闭票据并继续搜索它的......
这是因为在你不需要的函数 中,有一个我说过你不需要的循环。
"为什么在Close_Single_P函数中有一个循环? " 来自第1页的第3篇文章
"为什么有循环?" 来自第4页的第2篇文章
我错了吗,还是这个函数 从不关闭空头订单?
我错了吗?还是这个函数从不关闭空头订单?
Waidas,你是对的。但这只是EA中的一小部分,它关闭了长线和短线。
谢谢。
这是因为在你不需要的函数中,我说过你不需要的循环。
"为什么在Close_Single_P函数里有一个循环? " 来自第1页第3个帖子
"为什么有循环?" 来自第4页的第2篇文章
Raptor,你说的很对,我把循环的部分删掉了,所以现在这个函数 没有任何循环。
我在这里再次附上它。
Y.