错误、漏洞、问题 - 页 1442

 
Yousufkhodja Sultonov:
请告诉我如何克服这样的情况:尽管我在设置中指定了1000个头寸,但测试者将头寸 数量限制在100个?
你不能,这不是终端的限制,而是经纪人的限制,在一个提供100个以上订单的经纪人那里开一个模拟账户。
 

仔细阅读CopyRates()

注意事项

1.如果请求的数据区间完全超出了服务器上的可用数据,该函数返回-1。如果请求的数据在TERMINAL_MAXBARS(图表上的最大条数)之外,该函数也将返回-1。

2.当向指标请求数据时,如果所请求的时间序列尚未建立,或需要从服务器下载,该函数将立即返回-1,但下载/建立过程本身将被启动。

3.当从专家顾问或脚本请求数据时,如果终端在本地没有这些数据,将开始从服务器下载,或者如果可以从本地历史建立数据,但它们还没有准备好,将开始建立所需的时间序列。该函数将返回超时时准备好的数据量,但历史数据将继续被下载,下次有类似请求时,该函数将返回更多的数据。

1.这是正确的,符合逻辑的,在请求数据之前,你应该检查窗口中允许的条数。

2)你也是正确的;你必须尝试接收数据,直到终端返回所需的数量,记得要检查与服务器的连接情况。在这里,接收数据的质量是毫无疑问的--数据要么在那里,要么不在。

3.这里根本就不清楚。你永远无法确定收到的数据是否完整。而且,为什么用户会需要不确定其完整性的数据?实践表明,不耍花招(为了从服务器上初始化下载而进行的初步尝试)并不能让人相信该请求将获得完整数据。

我认为,使专家顾问的数据检索功能的行为与指标相似更实用。

 
Joo Zepper:

仔细阅读CopyRates()


3.而这里根本就不清楚。你永远无法确定收到的数据是否完整。而且,为什么用户需要那些不完整的数据呢?实践表明,没有任何技巧(初步尝试获得数据以启动从服务器下载)使你确信请求将获得完整的数据。

为什么你不能确定?使用SeriesInfoInteger(symbol,period,Series_SYNCHRONIZED) 来确定。

继续阅读文件。尽可能地考虑周到。

 
Slawa:

为什么你不能确定?为了确定,使用SeriesInfoInteger(symbol,period,Series_SYNCHRONIZED)

继续阅读文件。不要少做思考。

谢谢你的提示,但我已经使用这面旗帜很长时间了。是否有其他更可靠的方法?

我期待着你的下一个建议--打开所要求的仪器的图表窗口。而这一点是可以做到的,但完整的数据是无法保证的。

 
Joo Zepper:
谢谢你的提示,但检查这个标志已经被我积极使用了很长时间了。是否有其他更可靠的方法?

那么问题出在哪里呢?如果这个标志被设置为 "真",则当前的数据是完全同步的。它们可能是不完整的,因为服务器比你有更多的数据--故事更深入了

然后全面深入地查询历史,并对照你的本地分钟的第一个日期 检查 SeriesInfoInteger(symbol,PERIOD_M1,Series_SERVER_FIRSTDATE)。

 
Slawa:

那么问题出在哪里呢?如果这个标志被设置为 "真",则当前的数据是完全同步的。它们可能是不完整的,因为服务器比你有更多的数据--故事更深入了

然后全面深入地查询历史,并对照你的本地分钟的第一个日期 检查 SeriesInfoInteger(symbol,PERIOD_M1,Series_SERVER_FIRSTDATE)。

但这对专家顾问来说是自杀。你会得到可怕的滞后。而且,你通常不需要全面深入的历史。

我想到了这一点。在市场报告中总是最新的数据,如果终端不能在服务器的历史记录和窗口中允许的条数限制内按要求提供必要的数据量,在这种情况下,返回-1,如指标。要么获得数据,要么-1,没有第三种选择。

 

我在要求提供数据之前就这样做了。

for(int attempt = 0; attempt < 10; attempt++) 
  {
    bool flag = true; 
    for(int symb = 0; symb < SymbolCNT; symb++) 
    {
      if(!synched[symb]) 
      {
        // trial copying of price data
        int copied = CopyRates(symbsName[symb], smPeriod, startPosDataGet, barsReq, prices[symb].Data); 
        
        if(copied >= barsReq) 
        {
          if(idChart[symb] != -1) 
          {
            ChartClose(idChart[symb]); 
            idChart[symb] = -1;
          }
          synched[symb] = true;
        }
        else 
        {
          flag = false; 
          if(showAlert) 
            Alert(symbsName[symb] + ": requested/received " + (string)barsReq + "/" + (string)copied); 
          
          if(idChart[symb] == -1) 
          {
            idChart[symb] = ChartOpen(symbsName[symb], smPeriod); 
            ChartSetInteger(ChartFirst(), CHART_BRING_TO_TOP, 0, true);
          }
        }
      }
    }
    if(!flag) 
      if(TerminalInfoInteger(TERMINAL_CONNECTED)) 
        Sleep(1000);
  }
  
  for(int symb = 0; symb < SymbolCNT; symb++) 
    if(idChart[symb] != -1) 
      ChartClose(idChart[symb]); 

但在直接查询时,数据已经出现了漏洞。有时没有孔。这就是我所说的--对收到的数据没有信心。

 
Karputov Vladimir:

通过信息编辑器 插入的视频没有被保存。

谷歌浏览器版本46.0.2490.86米。

Internet Explorer 11.11.10586.0。

该错误将被修复,感谢您的留言。
 

将系统更新到Windows10后,常规指标不工作了。根本不可能附加到图形上。在编辑器中,编译时显示一个错误

错误

 
Alexandr:
将系统更新到Windows10后,常规指标不工作了。根本不能附在图形上。在编辑器中,编译时出现错误https://i.gyazo.com/5dbea3b25ab9a45cf3a9449335c1f57f.png
可能是访问权限的问题,检查终端文件夹 是否可写,尝试降低UAC ....。