哪种设计是正确的? - 页 6 12345678 新评论 Vladyslav Goshkov 2010.06.16 12:35 #51 valenok2003: 在while 代码中,只是为了在线程忙碌时进行延迟。 然后你需要刷新率: RefreshRates()。否则你将使用旧的升值和出价值。或者询问MarketInfo的asc\bid。 Sergey Guliaev 2010.06.16 12:44 #52 VladislavVG: 然后你需要刷新率: RefreshRates()。否则你将使用旧的卖价和买价。或者在MarketInfo上询问。 所以这就是狗在工作的地方。 这个设计很成功。 //+------------------------------------------------------------------+ //| CloseThisSymbolAll.mq4 | //+------------------------------------------------------------------+ int start() { //---- for (int trade = OrdersTotal()-1; trade >= 0; trade--) { OrderSelect(trade, SELECT_BY_POS, MODE_TRADES); if (OrderSymbol() == Symbol()) { while (!IsTradeAllowed()) Sleep(1000); RefreshRates(); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), 5, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), 5, CLR_NONE); } } //---- return(0); } //+------------------------------------------------------------------+ 至少第一次就成功了。 谢谢你! [Deleted] 2010.06.16 12:48 #53 VladislavVG: 然后你需要刷新率: RefreshRates()。否则你将使用旧的升值和出价值。或者在MarketInfo上询问asc\bid。 谢谢你! 我也会在我的EA中修复它。 Vladyslav Goshkov 2010.06.16 12:54 #54 valenok2003: 因此,这就是狗的位置。 这就是使其发挥作用的设计。 至少第一次就成功了。 几乎--还有一个条件需要纠正。 for (int trade = OrdersTotal()-1; trade >= 0; trade--) { if(!OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) break; ........................... 如果命令没有发出去,就没有什么可做的。祝你好运。 Sergey Guliaev 2010.06.16 12:59 #55 VladislavVG: 几乎--还有一个条件需要纠正。 如果逮捕令没有出来,就没有什么可做的了。 是的,这很有道理。这是循环的一个疏忽 while(OrdersTotal()>0) khorosh 2010.06.16 12:59 #56 valenok2003: 五 在那里,你有滑移=5,而这对五位数的报价来说是不够的。 Sergey Guliaev 2010.06.16 13:07 #57 因此,综上所述。 //+------------------------------------------------------------------+ //| CloseThisSymbolAll.mq4 | //+------------------------------------------------------------------+ int start() { //---- for (int trade = OrdersTotal()-1; trade >= 0; trade--) { if(!OrderSelect(trade, SELECT_BY_POS, MODE_TRADES)) break; if (OrderSymbol() == Symbol()) { while (!IsTradeAllowed()) Sleep(1000); RefreshRates(); if(OrderType() == OP_BUY ) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Bid,Digits), slippage, CLR_NONE); if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), NormalizeDouble(Ask,Digits), slippage, CLR_NONE); } } //---- return(0); } //+------------------------------------------------------------------+ 或将有任何其他评论? Sergey Guliaev 2010.06.16 13:08 #58 khorosh: 在那里,你有滑移=5,而这对五位数的报价来说是不够的。 在一个相对平静的市场中,5个就足够了,IMHO。 Vladislav Andruschenko 2010.06.16 13:16 #59 一度,代码库发布了自己的一套,以关闭不同的类型。 附加的文件: expo-ucloseupacknv3.rar 40 kb Vladislav Andruschenko 2010.06.16 13:17 #60 https://www.mql5.com/ru/code/mt4 12345678 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
在while 代码中,只是为了在线程忙碌时进行延迟。
然后你需要刷新率: RefreshRates()。否则你将使用旧的升值和出价值。或者询问MarketInfo的asc\bid。
然后你需要刷新率: RefreshRates()。否则你将使用旧的卖价和买价。或者在MarketInfo上询问。
所以这就是狗在工作的地方。
这个设计很成功。
至少第一次就成功了。
谢谢你!
然后你需要刷新率: RefreshRates()。否则你将使用旧的升值和出价值。或者在MarketInfo上询问asc\bid。
谢谢你!
我也会在我的EA中修复它。
因此,这就是狗的位置。
这就是使其发挥作用的设计。
至少第一次就成功了。
如果命令没有发出去,就没有什么可做的。几乎--还有一个条件需要纠正。
祝你好运。
如果逮捕令没有出来,就没有什么可做的了。几乎--还有一个条件需要纠正。
五
因此,综上所述。
或将有任何其他评论?
在那里,你有滑移=5,而这对五位数的报价来说是不够的。