Смотри, как бесплатно скачать роботов
Ищи нас в Facebook!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Скрипты

Импорт "минуток" с forexite.com - скрипт для MetaTrader 4

Просмотров:
4792
Рейтинг:
(10)
Опубликован:
2007.07.04 13:30
Обновлен:
2014.04.21 14:51
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Иногда "мелких" данных (например, "минуток") в архиве котировок на mql4.com не хватает. Например, по золоту: история минуток охватывает период с июля 2006 по текущий момент. Этого явно не достаточно для приличного тестирования "грубой" стратегии, работающей на средних и крупных таймфреймах и не слишком чувствительной к различиям данных от разных дилеров на мелких таймфреймах. Однако можно воспользоваться котировками, имеющимися на forexite.com, вплоть до 2001 года, - тем более что эти данные уже заслужили вполне приличную репутацию.

На этом сайте имеются котировки "минуток" в формате, более-менее дружественном к MT4: это формат MetaStock. К сожалению, котировки для QuoteRoom имеют формат, более сложный для обработки, хотя и собраны в единые файлы по годам. Данный скрипт создан для обработки данных в формате MetaStock.

Беда в том, что "минутки" собраны в отдельные файлы по торговым дням. Кроме того, в каждом файле хранятся данные не только по нужному нам инструменту (например, золоту), но и по всем остальным котируемым у этого дилера. И третье: имеются файлы котировок в выходные дни, которые нам обычно не нужны. Поэтому для импорта нужных нам данных по золоту в архив котировок МТ4 нужно как-то обработать все эти файлы и собрать все минутки в едином файле.

Эту задачу и решает данный небольшой скрипт. Но вначале нужно подготовить данные к обработке:

1. Находим менеджер закачки сайтов. Я воспользовался программой Teleport Pro. Даже незарегистрированной демоверсии вполне достаточно для наших целей. Демоверсия отличается от полной тем, что количество файлов, скачиваемых с сайта в рамках одного проекта, ограничено пятьюстами. Так как в одном торговом годе, даже с учетом выходных (на forexite.com есть торговые дни, являющиеся выходными), не более 365 дней, то этого вполне достаточно для наших целей.

2. Заходим на раздел сайта, соответствующий "минуткам" за нужные нам годы, и скачиваем все однодневные архивы. Придется создавать отдельный проект для каждого года, но сами файлы разных лет можно сохранять в единый каталог. В настройках скачиваемых файлов достаточно указать расширение *.zip, так как именно и только эти файлы нам и нужны. Мне таким образом удалось скачать порядка 1500 файлов за 2002-2007 годы.

3. Пакетно распаковываем все файлы в единый каталог "\experts\files\Forexite\". Пакетная распаковка встроена в Explorer. В результате получим в этом каталоге список файлов с именами типа 250705.txt (котировки за 25 июля 2005 года).

4. Теперь открываем МТ4 и вешаем на него этот скрипт. Внешних параметров - три:

а. имя инструмента в том виде, как оно представлено в файле от forexite.com. Для золота это «XAUUSD»,
б. начальная дата импорта в виде строки в формате «YYYY.MM.DD»,
в. конечная дата импорта в виде строки в том же формате.

Выполняем скрипт. В скрипте не обрабатываются файлы, соответствующие выходным. Заглянув в лог исполнения скрипта или посмотрев в закладку «Эксперты», можно вручную добавить отсутствующие и снова запустить скрипт. Опытным путем установлено, что более ранние годы обычно не содержат файлов за 1 января (Новый год) и 25 декабря (Рождество). В левом верхнем углу, чтобы не потерять ощущение реальности при исполнении скрипта (на моем компьютере обработка данных с 2002 по 2007 год для извлечения котировок золота продолжалась примерно 8 минут), отображается обновляемая строка с количеством уже обработанных дней.

5. В каталоге "\experts\files\" видим большой файл вида XAUUSD_ALL.csv. Это и есть наш предварительный файл, готовый к импорту (очень приятно было убедиться в том, что МТ4 умеет распознавать даты в "чужом" формате). В настройках импорта достаточно указать пропуск 1 столбца (так как в созданном файле первое поле - это "XAUUSD", которое нам не нужно), указать разделитель столбцов (запятая), отметить галочкой Объем (если не отмечен), а также указать сдвиг в часах. Мне сдвиг указывать отдельно не пришлось, так как котировки соответствуют времени сервера Alpari, с которым я работаю.

После окончания импорта все файлы в каталоге "\experts\files\Forexite\", а также файл, полученный в результате работы скрипта (XAUUSD_ALL.csv), можно удалить.

И последнее: в архивах минуток forexite.com данных по объемам нет. При импорте в МТ4 объемы вычисляются, если они не указаны в исходных данных или если данные по объему противоречивы, так как тестер, оказывается, не тестирует данные без объемов. Если в вашей стратегии объемы не учитываются и она достаточно «груба», чтобы влияние различий котировок от разных дилеров было для нее несущественным, то это как раз то, что вам нужно.

На заметку модератору (и не только): для удобства проверки работоспособности скрипта прикладываю также небольшой архив с котировками всех символов в формате от forexite.com для MetaStock с 01.02.2006 по 12.02.2006 (включая и выходные). Распакуйте архив в каталог "\experts\files\Forexite\", установите внешние параметры скрипта (инструмент и обе даты) и запустите скрипт. Можно, кстати, попробовать и другие инструменты, изменив только внешний параметр _sSymbol.

i-FractalsEx i-FractalsEx

Индикатор фракталов с дополнительной возможностью задания периода.

Индикатор индексов валют Индикатор индексов валют

Индикатор индексов валют с возможностью расчета CCI, RSI, Momentum, MACD и Stochastic.

Несколько зигзагов в одном окне Несколько зигзагов в одном окне

Простой индикатор, демонстрирующий общий принцип отображения нескольких индикаторов с разных таймфреймов в одном окне

ShowOrdersOnChart ShowOrdersOnChart

Маленький индикатор для отслеживания истории закрытых и состоянии открытых ордеров на графике. Красный - убыточный ордер, зелёный - профитный.