为什么MT5 CopyTicks获取的第一个tick的时间晚于图表中的很多

 

我在使用手册中CopyTicks,想获取历史的ticks,关键代码如下




void OnStart()   { //---      int     attempts=0;     // Count of attempts    bool    success=false;  // The flag of a successful copying of ticks    MqlTick tick_array[];   // Tick receiving array    MqlTick lasttick;       // To receive last tick data    SymbolInfoTick(_Symbol,lasttick); //--- Make 3 attempts to receive ticks    while(attempts<3)      {       //--- Measuring start time before receiving the ticks       uint start=GetTickCount(); //--- Requesting the tick history since 1970.01.01 00:00.001 (parameter from=1 ms)       int received=CopyTicks(_Symbol,tick_array,COPY_TICKS_ALL,1,getticks);       if(received!=-1)         {          //--- Showing information about the number of ticks and spent time          PrintFormat("%s: received %d ticks in %d ms",_Symbol,received,GetTickCount()-start);          //--- If the tick history is synchronized, the error code is equal to zero          if(GetLastError()==0)            {             success=true;             break;            }          else             PrintFormat("%s: Ticks are not synchronized yet, %d ticks received for %d ms. Error=%d",             _Symbol,received,GetTickCount()-start,_LastError);         }       //--- Counting attempts       attempts++;       //--- A one-second pause to wait for the end of synchronization of the tick database       Sleep(1000);      } //--- Receiving the requested ticks from the beginning of the tick history failed in three attempts    if(!success)      {       PrintFormat("Error! Failed to receive %d ticks of %s in three attempts",getticks,_Symbol);       return;      }

日志输出如下

2020.05.26 10:44:33.435 test (Brent,M15)        Brent: received 3016965 ticks in 203 ms
2020.05.26 10:44:33.435 test (Brent,M15)        Last tick time = 2020.05.26 05:44:32.167
2020.05.26 10:44:33.435 test (Brent,M15)        First tick time = 2019.10.21 08:58:05.309

但,图表中看到的行情从2018年开始就有,求教大家,有哪位大神知道为什么会出现这种情况吗

 

说明没有那么多tick数据,实际也不太可能给你几年的tick数据,能有3个月的就不错了。

图表数据与tick数据不同。

 
Ziheng Zhuang:

说明没有那么多tick数据,实际也不太可能给你几年的tick数据,能有3个月的就不错了。

图表数据与tick数据不同。

对于这个方面,有说明吗。图表数据与tick的数据的来具体来源。文档只有提到了有个本地交易品种报价数据库

 
数据当然是平台提供的,平台不可能提供几年的tick数据,那个数据量太大了。
图表数据相关知识,参考:
Documentation on MQL5: Timeseries and Indicators Access / Organizing Data Access
Documentation on MQL5: Timeseries and Indicators Access / Organizing Data Access
  • www.mql5.com
Before price data become available in the MetaTrader 5 terminal, they must be received and processed. To receive data, connection to the MetaTrader 5 trade server must be established. Data are received in the form of packed blocks of minute bars from the server upon the request of a terminal. The mechanism of server reference for data doesn't...
 

試試這兩個腳本

先跑過一次加載 再跑你的EA

中文的檔名改成簡體試看看

這兩個都是很久前下載的 應該都測試且用過

中文的作者是個超大神級的 馬來西亞的華裔

 之前編的EA還被平台禁用直接列到黑名單

操作前記得燒香 哈哈哈

附加的文件: