错误、漏洞、问题 - 页 660

 
tol64:

要求提供最近三次交易的历史记录。

而我们看到,历史并不相符。也就是说,我们可以在终端看到它,但我们不能以编程方式获得它。

//---

这是一个错误,还是这样设计的,现在只有在市场开盘时,你才能通过程序获得这些交易?

P.S. 我也试过这种方式,但没有帮助。

在选择历史时,请使用TimeTradeServer() 而不是TimeCurrent()。
Документация по MQL5: Дата и время / TimeTradeServer
Документация по MQL5: Дата и время / TimeTradeServer
  • www.mql5.com
Дата и время / TimeTradeServer - Документация по MQL5
 
Valmars:
在选择历史时使用TimeTradeServer() 而不是TimeCurrent()。
谢谢你,瓦莱里。是的,的确,在某些情况下,TimeLocal()可能会显示错误的结果,这取决于我们所处的时区。这就是为什么TimeTradeServer()是请求交易历史的最准确的变体。
 
tol64:.因此,TimeTradeServer()是请求交易历史的最准确选择。
我们只需要在时间上同步计算机时间,否则我们也可能失去交易。
 
Valmars:
我们只需要在时间上同步计算机时间,否则我们也可能失去交易。

你是说这个吗?:

说实话,我还没有想明白,在其他什么情况下,你可以得到的不是整个交易的历史......

 

你能告诉我日志中的这条信息是什么意思吗?

这种情况只发生过一次,无法再次重现。

 

我同时有两个问题。

最新的x32版本已经安装。它已经持续了近两个星期了。问题从昨天或前天开始。也就是说,同样的建筑在这之前并没有出现故障,但它突然开始了,不是吗?这个指标也很久没有修改过了。事实证明,这也不是错的。那么它是什么呢?当在一些任意的情况下从一个时间框架跳到另一个时间框架时,该指标 在一些时间框架中出现不正确,图表实际上是向下滑动的。当我离开并回到这个时间段时,什么都没有得到纠正,错误的计算结果从上次开始就被固定下来了,就好像它们被储存在某个缓存中一样。有时重启终端会有帮助,但有时我不得不用相应时间段的病态.hc-文件 来手动清理缓存 文件夹。这在以前从未发生过。(顺便说一下,为了确定,我检查了我的磁盘是否有错误,并对其进行了碎片整理:只是系统的性能略有加快,但指标的计算结果与以前不一样)。

1.如果之前的构建和同一指标都表现良好,会有什么问题呢?是不是该把电脑扔到废品堆里去了?也许RAM已经 "干涸 "了,正在呼吸一个大忙?

2.为什么在没有新的历史记录(即周末的刻度)的情况下,当切换到非标准时间段时,我已经在早些时候切换到非标准时间段,并且已经为其建立了适当的.hc-文件,同样的"等待更新"延迟又像以前一样发生?即使没有任何指标,在一个全新的图表上也是如此!

 
x100intraday:

我同时有两个问题。

最新的x32版本已经安装。它已经持续了近两个星期了。问题从昨天或前天开始。也就是说,同样的建筑以前没有发生故障,但突然开始了?

在我的问题中,我与你有相似之处,在之前,自从终端更新 后,错误(访问违规读到0x...)没有发生,现在才开始显示。在周末的时候。))
 
tol64:
我的问题和你有相似之处,就是错误(Access violation read to 0x...)以前没有出现过,自从终端更新 后,现在才开始出现。在周末的时候。))
这一定是梅森的阴谋。是他们在暗中控制外汇...
 
x100intraday:
这一定是共济会的阴谋。他们是暗中控制外汇的人...
我不知道。))有人在到处控制一些东西。一切都是受控的,一切都是可控的。任何不能被一个人控制的东西,都可以被另一个人控制。这很自然,因此也很正常。但这通常不是我们在这里讨论的内容。)))
 
MetaQuotes:

申请和评论都已到位,但由于某些原因,在档案中看不到。

我们一定会想办法解决。

(笑) 好的。嗯,现在听起来差不多了。:)

在不应该有的地方有一个负数。这里有一个重现该问题的脚本。

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print(FOrdType(-1));
  }
//---
string FOrdType(uint type)
  {
   string str="";
//---
   switch(type)
     {
      case ORDER_TYPE_BUY            : str="buy";             break;
      case ORDER_TYPE_SELL           : str="sell";            break;
      case ORDER_TYPE_BUY_LIMIT      : str="buy_limit";       break;
      case ORDER_TYPE_SELL_LIMIT     : str="sell_limit";      break;
      case ORDER_TYPE_BUY_STOP       : str="buy_stop";        break;
      case ORDER_TYPE_SELL_STOP      : str="sell_stop";       break;
      case ORDER_TYPE_BUY_STOP_LIMIT : str="buy_stop_limit";  break;
      case ORDER_TYPE_SELL_STOP_LIMIT: str="sell_stop_limit"; break;
      //---
      default: str="unknown_order_type: "+string(type); break;
     }
//---
   return(str);
  }

如果你把一个负数传给一个接受无符号整数的函数,那么就可以了。

我认为这种事情应该在编译时处理。

原因: