[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 227 1...220221222223224225226227228229230231232233234...652 新评论 Всеволод 2011.09.30 22:15 #2261 Neo333: 你好,问题是这样的:EA设置了待定的限价订单,然后价格变动,订单变成了市场订单。一切正常,但在某些订单上有一个绝对不清楚的故障,因为所有的订单都是通过某个固定的常数 "K "设置的,它们之间的距离应该总是一个常数(Rn+1=Rn+"K")。然而,我们没有运气;订单是开放的,价格是显示的,一切都被检查了,但从上一个订单到下一个订单的距离不等于 "K"。 如果我们检查与价格的算术运算结果,即如果我们只是减去并检查结果,它等于 "K";然而逻辑比较==仍然显示错误,这导致EA不断在该价格打开订单,从而 "认为 "那里没有订单。如果太长,我很抱歉,我只是想更详细地解释。说实话,我真的不明白该怎么做 :( 如果你通过==比较,那么使用NormalizeDouble,一般来说,MathAbs(Price1-Price2)<delta更好。 Всеволод 2011.09.30 23:17 #2262 VladimirR: 非常感谢! 但有这样的情况 2011.09.30 21:26:49 TestGenerator: unmatched data error (volume limit 13634 at 2011.07.19 20:00 exceeded) 据我了解,这条信息与专家顾问无关,但我还是想知道如何理解它? 时间框架的故事不一致。https://www.mql5.com/ru/forum/108760 Artyom Trishkin 2011.10.01 04:00 #2263 sergeev: 帮助修复该功能 73 Eugene1 30.09.2011 16:19 我想写一个函数,确定最后一笔订单的收盘价(按与当前时间最接近的时间)。 我是这样写的。 但是 做 围绕PriceCloseLastPos(string smb = "", int cmd = -1, int mMin = -1, int mMax = -1) { int ticketDateTime=0。 int orderTicket=-1; double closePrice = 0; int ordTotal = OrdersTotal(); 如果(smb == "0")smb = Symbol()。 for (int i = 0; i < ordTotal; i++) { 如果(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){ 如果(OrderSymbol() == smb || smb == "" ){ 如果(OrderType() == OP_BUY || OrderType() == OP_SELL) { 如果(cmd < OP_BUY || OrderType() == cmd){ 如果(mMin < 0 || (OrderMagicNumber() >= mMin && OrderMagicNumber() <= mMax)){ 如果(ticketDateTime < OrderCloseTime()){ ticketDateTime = OrderCloseTime(); orderTicket = OrderTicket()。 closePrice = OrderClosePrice()。 } } } } } } } if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY)。 return(closePrice)。 } 但由于某些原因,该函数返回在测试器中打开的第一个订单的数据。 事实上,这是我的中间目标。我想写一个函数,可以给出部分订单的最后收盘价(不是针对整批交易量)。 但我不知道该如何困扰... int ordTotal = OrdersTotal(); 而不是......。 int ordTotal = OrdersHistoryTotal(); ...下一页 ... if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY ); 在这里,我看到你的知识不是很好。当按票据选择订单时, 游泳池 参数被忽略。也就是说,写MODE_HISTORY是没有用的--这个参数只涉及索引选择。 如果一个订单已经被票据选中,您需要检查关闭时间,以确保它已经从关闭的订单列表中被选中。它必须大于零--只有关闭的位置才有这个参数>0。 rosman 2011.10.01 21:21 #2264 在MT4交易终端 的5分钟时间框架上,不显示历史记录。这能解决吗? rosman 2011.10.01 23:01 #2265 rosman: 在MT4交易终端的5分钟时间框架上,不显示历史记录。这能解决吗? 我为这个愚蠢的问题道歉。我是说2010年11月之前的历史没有显示 :) Vadim Zhunko 2011.10.02 01:15 #2266 rosman: 我对这个直率的问题表示歉意。我是说2010年11月之前的历史没有显示 :) 所以它不在那里。你也可以澄清一下。尝试在MT4设置中在图表上制作更多的条形图。 通过下载或购买更长的历史记录来解决这个问题。 rosman 2011.10.02 10:32 #2267 Zhunko: 那么她就不存在。你也可以澄清一下。尝试在MT4设置中在图表上制作更多的条形图。 这可以通过下载或购买更长的历史来解决。 服务">"设置">"图表 "选项卡">"窗口中的最大条数是65000--> 改为100000或更多,仍然只有2010年11月是最新的。这个工具和时间框架的报价档案已经完全加载--一直到1999年11月。 Vadim Zhunko 2011.10.02 11:24 #2268 故事中最多 有多少个小节?也许这个故事已经被修剪过了。 rosman 2011.10.02 11:37 #2269 Zhunko: 故事中最多有多少个小节?也许这个故事已经被修剪过了。 是价值10,000,000。 Vadim Zhunko 2011.10.02 11:47 #2270 上传档案。我去看看我的。 1...220221222223224225226227228229230231232233234...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
你好,问题是这样的:EA设置了待定的限价订单,然后价格变动,订单变成了市场订单。一切正常,但在某些订单上有一个绝对不清楚的故障,因为所有的订单都是通过某个固定的常数 "K "设置的,它们之间的距离应该总是一个常数(Rn+1=Rn+"K")。然而,我们没有运气;订单是开放的,价格是显示的,一切都被检查了,但从上一个订单到下一个订单的距离不等于 "K"。 如果我们检查与价格的算术运算结果,即如果我们只是减去并检查结果,它等于 "K";然而逻辑比较==仍然显示错误,这导致EA不断在该价格打开订单,从而 "认为 "那里没有订单。如果太长,我很抱歉,我只是想更详细地解释。说实话,我真的不明白该怎么做 :(
非常感谢! 但有这样的情况 2011.09.30 21:26:49 TestGenerator: unmatched data error (volume limit 13634 at 2011.07.19 20:00 exceeded)
据我了解,这条信息与专家顾问无关,但我还是想知道如何理解它?
帮助修复该功能
我想写一个函数,确定最后一笔订单的收盘价(按与当前时间最接近的时间)。
我是这样写的。
但是
做
围绕PriceCloseLastPos(string smb = "", int cmd = -1, int mMin = -1, int mMax = -1) {
int ticketDateTime=0。
int orderTicket=-1;
double closePrice = 0;
int ordTotal = OrdersTotal();
如果(smb == "0")smb = Symbol()。
for (int i = 0; i < ordTotal; i++) {
如果(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
如果(OrderSymbol() == smb || smb == "" ){
如果(OrderType() == OP_BUY || OrderType() == OP_SELL) {
如果(cmd < OP_BUY || OrderType() == cmd){
如果(mMin < 0 || (OrderMagicNumber() >= mMin && OrderMagicNumber() <= mMax)){
如果(ticketDateTime < OrderCloseTime()){
ticketDateTime = OrderCloseTime();
orderTicket = OrderTicket()。
closePrice = OrderClosePrice()。
}
}
}
}
}
}
}
if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY)。
return(closePrice)。
}
但由于某些原因,该函数返回在测试器中打开的第一个订单的数据。
事实上,这是我的中间目标。我想写一个函数,可以给出部分订单的最后收盘价(不是针对整批交易量)。 但我不知道该如何困扰...
而不是......。
...下一页 ...
在这里,我看到你的知识不是很好。当按票据选择订单时, 游泳池 参数被忽略。也就是说,写MODE_HISTORY是没有用的--这个参数只涉及索引选择。
如果一个订单已经被票据选中,您需要检查关闭时间,以确保它已经从关闭的订单列表中被选中。它必须大于零--只有关闭的位置才有这个参数>0。
在MT4交易终端的5分钟时间框架上,不显示历史记录。这能解决吗?
我对这个直率的问题表示歉意。我是说2010年11月之前的历史没有显示 :)
所以它不在那里。你也可以澄清一下。尝试在MT4设置中在图表上制作更多的条形图。
通过下载或购买更长的历史记录来解决这个问题。
那么她就不存在。你也可以澄清一下。尝试在MT4设置中在图表上制作更多的条形图。
这可以通过下载或购买更长的历史来解决。
故事中最多有多少个小节?也许这个故事已经被修剪过了。