Без ручной подгрузки Мт4 даст столько истории, сколько есть у брокера. В большинстве случаев это довольно-таки малая величина. Например, на М1 - это пара-тройка месяцев. На М30 может быть и до года, но не намного больше. На старших ТФ, конечно же, история будет достаточно глубокая, т. к. там малым количеством баров охватывается большая глубина.
Поэтому вообще никак.
Если же речь идет только о том, чтобы получить от брокера всю доступную историю по символы и ТФ, то это делается эмуляцией нажатия клавиши Home. Но, опять же, только через WinAPI.
Хотя еще попробуйте дергать нужный символ и ТФ до тех пор, пока не вернет состояние "нет ошибки". Но это не очень надежный способ:
bool IsTFDataReady(ENUM_TIMEFRAMES eTF) { ResetLastError(); iTime(NULL, eTF, 1); return GetLastError() == ERR_NO_ERROR; }
Не надо подгружать. Уведомить пользователя, что первая сделка не входит в график, пусть сам подгружает.

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть индикатор, который проверяет сделки на истории. Истории может быть несколько лет.
При вызове int MinBar = iBarShift(MySymbol,PERIOD_CURRENT,TimeOpen); индикатор возвращает только то количество баров, которое сейчас доступно, либо -1 если установить exact=true. Этого недостаточно.
В MQL5 есть возможность подгрузки через SeriesInfoInteger(symbolNames,PERIOD_CURRENT,SERIES_SYNCHRONIZED);
Тут я пробовал через определенное время вызывать
иВсе равно количество баров не увеличивается. Если со временем на старших ТФ они как то сами обновляются, то на М30 и ниже индикатор просто не может работать из-за отсутствия котировок.
Знаю, что есть вариант пролистывать через dll, но его нельзя использовать в продуктах на Маркете.
Есть ли какая то хитрость или аналог SERIES_SYNCHRONIZED на МТ4?