第6号错误 - 页 6 12345678910111213...32 新评论 Forex Trader 2005.08.11 12:53 #51 不错,但本质上是一样的:)<br / translate="no"> 什么是SetTrace? Oopsie :)我现在要做一个广告,请注意 -http://forexsystems.ru/phpBB/viewtopic.php?t=694&start=45 Forex Trader 2005.08.11 14:06 #52 хэндлов не хватает. 我可以在系统设置(W'XP)中改变手柄的数量吗,如何改变? Forex Trader 2005.08.11 14:28 #53 还有一个问题要问开发商。 什么是正确的方法。 1. for(int nCnt = 0; nCnt < OrdersTotal(); nCnt++) { OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber() == nMagic) { if(CurTime() - OrderOpenTime() >)(nHoursToHold - 1) * 60 * 60) { if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua); else if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots() , Ask, nSlip, OrangeRed); } } 2. for(int nCnt = OrdersTotal() - 1; nCnt >= 0; nCnt--) { OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber() == nMagic) { if(CurTime() - OrderOpenTime() >(nHoursToHold - 1) * 60 * 60) { if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua); else if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots() , Ask, nSlip, OrangeRed); } } 3. 无动于衷。 4.我们应该设置返回,并在下一个tick中处理下一个订单。 5.它应该以某种方式进行。 让我解释一下。假设我们有两个未结订单,它们都需要被关闭。循环 for(int nCnt = 0; nCnt < OrdersTotal(); nCnt++) 它将关闭零单,之后第一单将变成零。然后,它将尝试关闭第一个订单,并会出现一个错误。对吗? 我不认为这个话题中讨论的EA的所有错误都与这个问题有关,例如,普通错误与此无关。但如果我是对的,也许它可以解释:a)订单锁定和类似订单;b)我们需要一个以上的专家顾问才能出现错误。 Forex Trader 2005.08.11 14:28 #54 хэндлов не хватает. Можно ли изменить число хэндлов в системных установках (W'XP) и как? 如果一个程序缺少句柄,它就会被写成错误。 否则,有足够的句柄可以使用。 Forex Trader 2005.08.11 14:32 #55 当然,第二个选项是正确的,但你应该把Sleep() 改为30秒,仅此而已。 Forex Trader 2005.08.11 14:33 #56 我应该补充说,通过替代 for(int nCnt = 0; nCnt < OrdersTotal(); nCnt++) 由 for(int nCnt = OrdersTotal() - 1; nCnt >= 0; nCnt--) 我从错误的139变成了138和4109 (requote, 阵列中未初始化的字符串) 最后一条根本没有评论... Forex Trader 2005.08.11 14:37 #57 当然,第二个变体是正确的,但你应该把Sleep()改为30秒,就这样了。 在10个专家顾问中,每分钟间隔30秒,每...错了,不可能以这种方式生活。 Forex Trader 2005.08.11 14:38 #58 你认为是这样的吗?我有12个窗口,每个窗口有不同的货币和不同的专家顾问。我禁止(允许现场交易)在其中的11个交易。我所有的错误仍然来自于他们。还有一个错误。 Forex Trader 2005.08.11 14:39 #59 Конечно, второй вариант правилен, только вместо return надо ставить Sleep() секунд на 30 и усе. 10位专家以一分钟为一个间隔,每个人有30秒的时间。错了,这不是生活的方式。 这就是生活的方式,你所做的是对铁的力量的考验。 Forex Trader 2005.08.11 14:43 #60 一个新版本的EA用于测试。发生了什么变化。 1.循环固定。 2.马吉克号码被私有化到酒吧的开始时间。如果我没有弄错的话,这就造成了开放的延迟。也就是说,带有mn 7的EA将在条形图开始后的7秒内打开。它将避免服务器超载,计算机CPU和冲突与2.5秒最大,如果它仍然存在的地方... 但可惜的是,错误依然存在。 规则是一样的--打开几个窗口,在任何时间范围内(例如几分钟),然后等待。 double dStopLoss; int nHoursToHold; datetime timePrev = 0; int nSlip = 5; double dLotSize = 0.1; int nMagic = 0; ////////////////// int init () { timePrev = 0; dStopLoss = 110 * Point; nHoursToHold = 1; if(Symbol() == "EURUSD") nMagic = 1; else if(Symbol() == "EURJPY") nMagic = 2; else if(Symbol() == "USDCHF") nMagic = 3; else if(Symbol() == "GBPUSD") nMagic = 4; else if(Symbol() == "GBPJPY") nMagic = 5; else if(Symbol() == "GBPCHF") nMagic = 6; else if(Symbol() == "USDJPY") nMagic = 7; else if(Symbol() == "AUDUSD") nMagic = 8; else if(Symbol() == "EURGBP") nMagic = 9; else if(Symbol() == "USDCAD") nMagic = 10; else if(Symbol() == "EURCHF") nMagic = 11; else if(Symbol() == "EURAUD") nMagic = 12; timePrev += nMagic; // Open nMagic seconds after the new bar return(0); } // ------ int deinit() { return(0); } // ------ int start() { if(Bars < 5) return(0); // The previous bar just closed bool bIsBarEnd = false; if(timePrev != Time[0] + nMagic) bIsBarEnd = true; timePrev = Time[0] + nMagic; if(!bIsBarEnd) return(0); // ------ int nSignal = GetSignal(); if(nSignal == OP_BUY) Buy(); else if(nSignal == OP_SELL) Sell(); for(int nCnt = OrdersTotal() - 1; nCnt >= 0; nCnt--) { OrderSelect(nCnt, SELECT_BY_POS, MODE_TRADES); if(OrderMagicNumber() == nMagic) { if(CurTime() - OrderOpenTime() > (nHoursToHold - 1) * 60 * 60) { if(OrderType() == OP_BUY) OrderClose(OrderTicket(), OrderLots(), Bid, nSlip, Aqua); else if(OrderType() == OP_SELL) OrderClose(OrderTicket(), OrderLots(), Ask, nSlip, OrangeRed); } } } return(0); } // ------ void Sell() { if(AccountFreeMargin() < 500) return; dLotSize = GetLotSize(); int nResult = OrderSend(Symbol(), OP_SELL, dLotSize, Bid, nSlip, Bid + dStopLoss, 0, "Friday", nMagic, 0, OrangeRed); if(nResult == -1) { int nError = GetLastError(); Alert(Symbol() + ", " + nError); } } // ------ void Buy() { if(AccountFreeMargin() < 500) return; dLotSize = GetLotSize(); int nResult = OrderSend(Symbol(), OP_BUY, dLotSize, Ask, nSlip, Ask - dStopLoss, 0, "Friday", nMagic, 0, Aqua); if(nResult == -1) { int nError = GetLastError(); Alert(Symbol() + ", " + nError); } } // ------ double GetLotSize() { double dLot = 0.1; return(dLot); } // ------ int GetSignal() { int nSignal; if(MathMod(Hour(), 2) == 0) nSignal = OP_BUY; else nSignal = OP_SELL; return(nSignal); } // ------ 12345678910111213...32 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
Oopsie :)我现在要做一个广告,请注意 -http://forexsystems.ru/phpBB/viewtopic.php?t=694&start=45
我可以在系统设置(W'XP)中改变手柄的数量吗,如何改变?
什么是正确的方法。
1.
2.
3. 无动于衷。
4.我们应该设置返回,并在下一个tick中处理下一个订单。
5.它应该以某种方式进行。
让我解释一下。假设我们有两个未结订单,它们都需要被关闭。循环
它将关闭零单,之后第一单将变成零。然后,它将尝试关闭第一个订单,并会出现一个错误。对吗?
我不认为这个话题中讨论的EA的所有错误都与这个问题有关,例如,普通错误与此无关。但如果我是对的,也许它可以解释:a)订单锁定和类似订单;b)我们需要一个以上的专家顾问才能出现错误。
Можно ли изменить число хэндлов в системных установках (W'XP) и как?
如果一个程序缺少句柄,它就会被写成错误。 否则,有足够的句柄可以使用。
for(int nCnt = 0; nCnt < OrdersTotal(); nCnt++)
由
for(int nCnt = OrdersTotal() - 1; nCnt >= 0; nCnt--)
我从错误的139变成了138和4109
(requote, 阵列中未初始化的字符串)
最后一条根本没有评论...
在10个专家顾问中,每分钟间隔30秒,每...错了,不可能以这种方式生活。
10位专家以一分钟为一个间隔,每个人有30秒的时间。错了,这不是生活的方式。
这就是生活的方式,你所做的是对铁的力量的考验。
1.循环固定。
2.马吉克号码被私有化到酒吧的开始时间。如果我没有弄错的话,这就造成了开放的延迟。也就是说,带有mn 7的EA将在条形图开始后的7秒内打开。它将避免服务器超载,计算机CPU和冲突与2.5秒最大,如果它仍然存在的地方...
但可惜的是,错误依然存在。
规则是一样的--打开几个窗口,在任何时间范围内(例如几分钟),然后等待。