//+------------------------------------------------------------------+ //| SymbolWatcher.mqh | //| Copyright 2019, Thomas Schwabhaeuser | //| schwabhaeuser@icloud.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2019, Thomas Schwabhaeuser" #property link "schwabhaeuser@icloud.com" #property version "1.00" //--- #include "MultiSymbolIndicator.mqh" //--- #define MEMBER_INDEX(index,member) if(index>=0 && indexPeriodSeconds()*number_bars) { datetime copied_time[]; //--- Получим первую дату символа-периода в базе терминала SeriesInfoInteger(this.Symbol,Period(),SERIES_FIRSTDATE,series_firstdate); //--- Загрузим/скопируем ещё указанное количество баров if(CopyTime(this.Symbol,Period(),0,array_size+number_bars,copied_time)) { //--- Если время первого бара массива с вычетом кол-ва подгружаемых баров раньше, // чем время первого бара на графике, остановим цикл if(copied_time[0]-PeriodSeconds()*number_barsthis.SeriesFirstDate) { //--- Выведем сообщение в журнал Print("(",this.Symbol,",",TimeframeToString(Period()), ") > Была загружена/сформирована более глубокая история: ", this.SeriesFirstDateLast," > ",this.SeriesFirstDate); //--- Запомним дату this.SeriesFirstDateLast=this.SeriesFirstDate; load=true; } } //--- Если была загружена/сформирована более глубокая история, то // отправим команду на обновление графических серий индикатора if(load) return(false); //--- return(true); } //+------------------------------------------------------------------+ //| Определение времени первого истинного бара для отрисовки | //| Determination of the time of the first real bar for rendering | //+------------------------------------------------------------------+ bool CSymbolWatcher::DetermineBeginForCalculate() { datetime time[]; // Массив времени баров int total_period_bars=0; // Количество баров //--- Получим общее количество баров символа // Get the total number of bars of the symbol total_period_bars=Bars(symbols_names[s],Period()); //--- Скопируем массив времени баров. Если не получилось, попробуем ещё раз // Copy the array of time bars. If not, try again. if(CopyTime(symbols_names[s],Period(),0,total_period_bars,time)