资料库: CheckHistory - 检查并加载历史功能

 

CheckHistory - 检查并加载历史功能:

历史加载功能, 由 MetaQuotes 的版本稍加修改

作者: Andrey Khatimlianskii

 

我注意到这样一个功能...

如果需要从某个指标中移除某个符号的缓冲数据,而该符号在 "市场观察 "中没有被选中,历史记录也没有被填满,那么就需要在函数中加入类似的功能:

.....
   uint start=GetTickCount();
   // 我的行 [开始]
   long m=SymbolInfoInteger(symbol,SYMBOL_SELECT);
   if(m<1)
     {
      bool is_selected=SymbolSelect(symbol,true);
      Sleep(500);
     }
   // 我的行 [结束]
   if(CheckTerminalHistory(symbol,period,size) || CheckServerHistory(symbol,period,size))
     {
      if(print_info)
        {
   
.....
 
我做错了什么,我不知道是什么。图表(测试器) - H1。我需要加载数量为 3000 条的 H4 图表(BarsToAnalyse=3000)。它不加载...函数字符串:
if ( first && !CheckLoadHistory( _Symbol,PERIOD_H4, BarsToAnalyze ) )
 
Forex_Noob:
我做错了什么,我不知道是什么。图表(测试器) - H1。我需要加载数量为 3000 条的 H4 图表(BarsToAnalyse=3000)。它不加载...使用函数行:

它在日志中写了什么?到底发生了什么?是否只是挂起?

如果在常规图表上运行,会加载吗?经纪商服务器上有任何历史记录吗?

 

我知道加载是使用带有参数SERIES_SYNCHRONIZED 的 SeriesInfoInteger 来完成的

这是我应该检查的一件有趣的事情......因为我正在处理这些历史报价......我打开一个图表,模拟首页,直到停止加载条形图。我想知道 - 这些方法之间会有什么区别....

 
elugovoy:

我知道加载是使用带有参数SERIES_SYNCHRONIZED 的 SeriesInfoInteger 来完成的

这是我应该检查的一件有趣的事情......因为我正在处理这些历史报价......我打开一个图表,模拟首页,直到停止加载条形图。我想知道 - 这些方法....。

应该没有区别,函数会正常加载和重新计算所有必要的历史记录。
 

2018年底唯一能用的东西。+5,谢谢!

有什么改进意见吗?

 
Vladimir Pastushak:

2018年底唯一能用的东西。+5,谢谢!

有什么改进意见吗?

弗拉基米尔,别打哑谜了

 
Andrey Khatimlianskii:

弗拉基米尔,别打哑谜了

我太着急了,你的代码在有问题的历史记录符号上也会挂起....。

我测试过很多加载历史记录 的代码,都会在某些 tsfd 上挂起。

你的代码也是如此。

 
Vladimir Pastushak:

我很着急,你的代码也会在有问题历史记录的字符上挂起。

我测试过很多加载历史记录 的代码,所有代码都会在某些 tsfd 上挂起。

你的代码也是一样。

有人讨论过,在某些情况下,iBars 也会冻结。

现在没心思研究了。

 

您好、


关于您的代码,我有两个问题。

函数

CheckServerHistory()

CheckServerHistory(...)
{
        ...
        if(first_server_date>TimeCurrent()-size*PeriodSeconds(period)) return(false);
        ...
}

在考虑市场收盘时,时间差和周期计数是不同的,这样做真的有效吗?


在函数

CheckLoadHistory()

CheckLoadHistory(...)
{
        if(CheckTerminalHistory(symbol,period,size) || CheckServerHistory(symbol,period,size))
        { ... }
}


中,执行时首先检查终端数据,然后检查服务器数据。

反过来做有意义吗?