mmortall Опубликовано 8 октября, 2016 Поделиться [open source] [Скрипт] для скачки всей истории новостей… Опубликовано 8 октября, 2016 (изменено) Название скрипта: history_downloader.pyТекущая версия: 1.1 (9.10.2016)Название индикатора: TimeZoneAndNewsОписание:Думаю все знают как важно учитывать новости при торговле. Было бы хорошо учитывать их также при тестировании советников на истории или в советниках, торгующих на новостях. Я нашел скрипт который качает и парсит новосные данные с сайта Forexfactory. Есть возможность на данный момент получить данные с 01.01.2007. На более ранние периоды сайт возвращает невалидные данные.Я дописал этот скрипт немного (поправил разные мелочи и баги) и хочу поделиться им. Также принимаются идеи и предложения по его доработке. Также я добавил индикатор для отображения данных из файла на графике. Индикатор не качает данные. Это только для теста содержимого файла.Все необходимые файлы в аттаче к посту. Параметры индикатора:GMTOffset - Для Альпари = 3, для Oanda = 2. FileName - имя файла с данными. Файл дожен лежать в папке MQL4/Files CurrencyName1 - валюта по которой показывать новости (по умолчанию берется первая валюта из названия инструмента)CurrencyName2 - вторая валюта по которой показывать новости (по умолчанию берется вторая валюта из названия инструмента)ProcessBars = 10000 - колчество баров которые обрабатываются индикаторомИндикатор показывает новости только на барах, которые совпадают по времени с временем новости. Поэтому используйте его на периоде M15, а лучше на М1.Я это поправлю в будущемПример работы индикатора:http://fxpics.ru/image/GWT1Описание формата:Дата Время; Валюта; Важность(L,M,H); Название; Actual; Forecast; Previous; ALL-DAY или пустая строкаПример вывода скрипта:29.09.2016 01:50;JPY;L;Retail Sales y/y;-2.1%;-1.7%;-0.2%;29.09.2016 02:00;USD;M;FOMC Member George Speaks;;;;29.09.2016 00:00;EUR;M;German Prelim CPI m/m;0.1%;0.0%;0.0%;ALL-DAY29.09.2016 08:35;JPY;H;BOJ Gov Kuroda Speaks;;;;29.09.2016 09:00;EUR;M;Spanish Flash CPI y/y;0.3%;0.1%;-0.1%;29.09.2016 09:55;EUR;M;German Unemployment Change;1K;-5K;-6K;29.09.2016 10:30;GBP;M;Net Lending to Individuals m/m;4.5B;4.0B;3.8B;29.09.2016 10:30;GBP;L;M4 Money Supply m/m;;0.8%;1.2%; Тут кроме обычных событий есть события ALL-DAY (весь день). У этого события нет конкретного времени.По этому у себя в советниках вы должны обрабатывать его отдельно (учитывать его или игнорировать).Как парсить файл в MQL4: Спойлер int ReadNewsFile(string fileName){ int handle = FileOpen(fileName,FILE_READ); if(handle == -1) { return -1; } if(FileSize(handle)==0) { FileClose(handle); return -2; } while(!FileIsEnding(handle)) { datetime time = FileReadDatetime(handle); string currName = FileReadString(handle); string severity = FileReadString(handle); string newsName = FileReadString(handle); double actual = FileReadNumber(handle); double forecast = FileReadNumber(handle); double previous = FileReadNumber(handle); string comment = FileReadString(handle); time = time + GMTOffset*3600; int sevInt = 0; if(severity == "L") sevInt = 1; if(severity == "M") sevInt = 2; if(severity == "H") sevInt = 3; //you code here } FileClose(handle); return 0;} Как запускать скрипт: Спойлер Проверял только в Windows 10 но должно работать и на остальных системах.Нужно устанавить Python 2.7 (не 3.2), библиотеки mechanize ( mechanize-0.2.5 ) и lxml (lxml-3.4.0.win32-py2.7.exe) для Python 2.7Затем запускаете скрипт командой в консоли. Два параметра указывают начальный и конечные год. Пример: python history_downloader.py 2007 2016 В атаче также файл с историей всех новостей с 2007 по 2016 год (до 08.10.2016). Время по гринвичу.Имейте в виду что бывает что сайт закрывает соединение с ошибкой. Тогда загрузка обрывается. Я пока не реализовал обработку этой ситуации в скрипте. В этой теме я также могу выкладывать свежие файлы с историей. TimeZoneAndNews.mq4history_downloader.zipevents2007-2016.zip Изменено 11 июля, 2017 пользователем Pavel888 6 Ссылка на сообщение Поделиться на другие сайты More sharing options...
VladimirM Опубликовано 8 октября, 2016 Поделиться [open source] [Скрипт] для скачки всей истории новостей… Опубликовано 8 октября, 2016 В архиве с данными огромные дыры по инструментам, размером год - полтора.https://gyazo.com/b298eca1c510727dd1562422d57e3312Непонятно, результат ли это сбоя в работе парсера или такие данные хранятся в источнике. 1 Ссылка на сообщение Поделиться на другие сайты More sharing options...
mmortall Опубликовано 8 октября, 2016 Автор Поделиться [open source] [Скрипт] для скачки всей истории новостей… Опубликовано 8 октября, 2016 (изменено) В архиве с данными огромные дыры по инструментам, размером год - полтора.https://gyazo.com/b298eca1c510727dd1562422d57e3312Непонятно, результат ли это сбоя в работе парсера или такие данные хранятся в источнике. Это индикатор. Там стоит показ новости по времени бара. Если нет бара по вермени, собпадающему с временем новости, то эта новость показана не будет. В индикаторе еще стоит ограничение на 10 000 баров чтобы он не тормозил. Просто я его написал на скорую руку.С архивом все впорядке. updateЯ добавил в описание этот момент. Спасибо что нашли ошибку. Исплользейте его пока на М15. Идеально думаю на М1. Тогда точно можно видеть все новости. Изменено 8 октября, 2016 пользователем mmortall Ссылка на сообщение Поделиться на другие сайты More sharing options...
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти