Здравствуйте ! У меня задача получить строго синхронные котировки по EURUSD, GBPUSD, USDJPY и USDCHF. Желательно и по другим инструментам тоже. Скачал минутки из History Center. При ближайшем рассмотрении оказалось что там содержатся дыры по 2 часа и более. Вопрос, каково происхождение этих дыр ? Просто в эти периоды не было тиков или это явно потерянные данные ? И вообще насколько подходят минутки из History Center для получения строго синхронизированных котировок ? Точность пункт в пункт с моим любимым брокером, в чем тут постоянно Metaquotes упрекают, меня не интересует, так что на эту тему прошу не флудить. А вот синхронность минута в минуту по нескольким инструментам для меня важна. Что скажут благородные доны ?
- Скачайте мобильное приложение MetaTrader 5 для Android
- Ценовые данные - Для продвинутых пользователей - Торговые операции
- Реальные и сгенерированные тики - Алгоритмический трейдинг, торговые роботы
О каких именно двух часах идет речь? Нужны точные даты.
Renat, извините не смог ответить вчера. Вот тестовая программа,
которой я смотрел котировки:
Tue Jan 05 07:54:00 1999
Tue Jan 05 07:55:00 1999
Tue Jan 05 07:57:00 1999
Tue Jan 05 08:00:00 1999
Tue Jan 05 08:02:00 1999
Tue Jan 05 10:05:00 1999
Tue Jan 05 10:06:00 1999
Tue Jan 05 10:07:00 1999
Ясно видна дыра более двух часов с 08:02 до 10:05.
Впрочем проблему я уже решил. Буду читать все 4 файла котировок и брать от туда только те данные, где поля ctm во всех 4-х совпадают. Да, получится с дырами. Но это всё-таки намного лучше, чем вообще ничего.
С уважением
Евгений.
#include <stdio.h> #include <time.h> #include <string.h> typedef struct { int version; // âåðñèÿ áàçû char copyright[64]; // êîïèðàéò char symbol[12]; // èíñòðóìåíò int period; // ïåðèîä èíñòðóìåíòà int digits; // ÷èñëî çíàêîâ ïîñëå çàïÿòîé â èíñòðóìåíòå time_t timesign; // âðåìåííîé îòïå÷àòîê ñîçäàíèÿ áàçû time_t last_sync; // âðåìÿ ïîñëåäíåé ñèíõðîíèçàöèè int unused[13]; // äëÿ áóäóùåãî èñïîëüçîâàíèÿ } HstHeader; #pragma pack(push,1) //---- Ñòàíäàðòíîå ïðåäñòàâëåíèå êîòèðîâêè â áàçå typedef struct { time_t ctm; // òåêóùåå âðåìÿ â ñåêóíäàõ double open; double low; double high; double close; double vol; } RateInfo; #pragma pack(pop) void main() { HstHeader hdr; RateInfo rate; int r; struct tm *tm; char *s; int i; FILE *hst=fopen("../hist/eurusd1.hst ","rb"); if(hst==NULL) { printf("Cannot open input\n"); return; } r=fread(&hdr, 1, sizeof(hdr), hst); for(i=0; i<1000; i++) { r=fread(&rate, 1, sizeof(rate), hst); if((tm=localtime(&(rate.ctm)))) { s=asctime(tm); printf("%s",s); } else { printf("Cannot decode t=%08X\n",rate.ctm); } } }А вот кусок результата который она выдала:
Tue Jan 05 07:54:00 1999
Tue Jan 05 07:55:00 1999
Tue Jan 05 07:57:00 1999
Tue Jan 05 08:00:00 1999
Tue Jan 05 08:02:00 1999
Tue Jan 05 10:05:00 1999
Tue Jan 05 10:06:00 1999
Tue Jan 05 10:07:00 1999
Ясно видна дыра более двух часов с 08:02 до 10:05.
Впрочем проблему я уже решил. Буду читать все 4 файла котировок и брать от туда только те данные, где поля ctm во всех 4-х совпадают. Да, получится с дырами. Но это всё-таки намного лучше, чем вообще ничего.
С уважением
Евгений.
Так это... Евро же как раз 1999 стартанула. Это у нее первая торговая
сессия :)
Renat, даже файлы минуток существенно отличаются по размеру, хотя вроде бы все с 99 года. Размер структуры RateInfo везде одинаков. Значит различно число этих самых структур. Ладно, мне всё равно придется синхронизацией заниматься. Если Вам нужно, могу прислать отчет по дырам за более недавние годы.
eugenk:
Renat, даже файлы минуток существенно отличаются по размеру, хотя вроде бы все с 99 года. Размер структуры RateInfo везде одинаков. Значит различно число этих самых структур. Ладно, мне всё равно придется синхронизацией заниматься. Если Вам нужно, могу прислать отчет по дырам за более недавние годы.
А количество минуток в году и не должно совпадать. Подумайте,
почему (об этом писали "нет изменения цен - нет и бара").Renat, даже файлы минуток существенно отличаются по размеру, хотя вроде бы все с 99 года. Размер структуры RateInfo везде одинаков. Значит различно число этих самых структур. Ладно, мне всё равно придется синхронизацией заниматься. Если Вам нужно, могу прислать отчет по дырам за более недавние годы.
Если обнаружите большие дыры, то напишите обязательно - будем разбираться.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь