Скачать MetaTrader 5

Синхронизация истории

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй статью и ее прочитают тысячи человек по всему миру!
Roffild
1349
Roffild 2015.04.02 07:33 

Да, тема заезженная, но...

class CBarsSymbol
{
public:
   string symbol;
   ENUM_TIMEFRAMES period;
   bool sync;
   datetime lastTime;
   datetime lastBarDate;
   
   CBarsSymbol(string _symbol, ENUM_TIMEFRAMES _period = PERIOD_CURRENT)
   {
      symbol = _symbol;
      period = _period;
   }
};


   /**
    * Синхронизация баров на парах.
    * Должно вызываться перед работой с парами.
    */
   void synchronization(const int try = 5)
   {
      for (int x = symbols.size()-1; x > -1; x--) {
         int tr = try;
         CBarsSymbol *smb = symbols[x];
         while (tr > 0) {
            if ((smb.sync = SymbolIsSynchronized(smb.symbol))) {
               smb.lastTime = datetime(SymbolInfoInteger(smb.symbol, SYMBOL_TIME));
               smb.lastBarDate = datetime(SeriesInfoInteger(smb.symbol, smb.period, SERIES_LASTBAR_DATE));
               break;
            }
            Sleep(5000); // от 5 пробовал
            tr--;
         }
      }

Не работает такая реализация на реальных данных (в тестере прокатывает).

SymbolIsSynchronized = false всегда

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий