Использование архива котировок

 
Знающие люди, подскажите пожалуйста! Я к графику хочу прицепить индикатор, который должен брать данные с других графиков, например для M5"EURUSD" использовать M1"EURSD" и M15"EURSD", а также "USDJPY" и "EURJPY". Вопрос простой, есть ли какая-нибудь функция, которая запрашивает историю баров с сервера за определенный переод или ее нужно реализовывать програмно? как обновлять(в реальном времени) историю для не открытых графиков или открытого графика, но для всех интервалов сразу?
 
Используйте функцию ArrayCopyRate:
https://docs.mql4.com/ru/array/ArrayCopyRates

На этом сайте есть полный справочник MQL4 в разделе "Документация": https://docs.mql4.com/ru
Также работает полнотекстовый поиск по нему: https://www.mql5.com/ru/search
 
Спасибо, но это не совсем то... функция копирует, не вопрос, только данные могут быть не полными(с дырками)... Проверял я этот вариант, глюк в том, что у меня например, обновляются(докопируются) с сервера только последние баров 300-400 и все... А запросить из истории бары за определенный период неполучается... так, как это происходит при пролистывании окна графика назад или при переключении на другой временной интервал, MT запрашивает примерно 450 бар назад, если пролистывать еще, запросит еще 450... как это реализовать в скрипте?
 
Romic:
А запросить из истории бары за определенный период неполучается. .. так, как это происходит при пролистывании окна графика назад или при переключении на другой временной интервал, MT запрашивает примерно 450 бар назад, если пролистывать еще, запросит еще 450. .. как это реализовать в скрипте?
Из скриптов никак.
 
Понятно, хоть и отрицальный результат, но за-то однозначный. А с разработчиками есть какая-нить возможность связаться? или к ним бесполезно обращаться...
 
 
Romic:
Понятно, хоть и отрицальный результат, но за-то однозначный. А с разработчиками есть какая-нить возможность связаться? или к ним бесполезно обращаться...

Обратите внимание на иконку слева.
Вы получили консультацию из первых рук..)
 
Очень хорошо. есть еще одна проблемка, дырки в истории, которые не позволяют сопоставлять данные разных инструментов... когда я копирую их в фаил, я могу на место пропущенного(по времени) бара, вставить среднее значение, а как это сделать в реальном времени? функцией ArrayCopyRate я их скопирую, а как в середину пропущеный бар вставить?
 
Romic:
Очень хорошо. есть еще одна проблемка, дырки в истории, которые не позволяют сопоставлять данные разных инструментов... когда я копирую их в фаил, я могу на место пропущенного(по времени) бара, вставить среднее значение, а как это сделать в реальном времени? функцией ArrayCopyRate я их скопирую, а как в середину пропущеный бар вставить?
Посмотри страницу MQL4 Code Base. Скрипт OutQuotings. mq4, автор Kim1V, позволяет латать дыры истории

Star
 
Спасибо, именно им я пользовался! :-))) А есть описание формата "hst" файла?
 
Romic:
Спасибо, именно им я пользовался! :-))) А есть описание формата "hst" файла?

Да, есть. Нажмите F1 в терминале и во встроенной помощи в разделе "Сервис - Архив котировок" есть описание HST формата:

Формат файлов истории (HST-файлы)

Сначала идет заголовок базы

struct HistoryHeader
{
int version; // версия базы
char copyright[64]; // копирайт
char symbol[12]; // инструмент
int period; // период инструмента
int digits; // число знаков после запятой в инструменте
time_t timesign; // временной отпечаток создания базы
time_t last_sync; // время последней синхронизации
int unused[13]; // для будущего использования
};

затем массив баров (выравнивание однобайтовое)

#pragma pack(push,1)
//---- Стандартное представление котировки в базе
struct RateInfo
{
time_t ctm; // текущее время в секундах
double open;
double low;
double high;
double close;
double vol;
};
#pragma pack(pop)
Причина обращения: