В нашей сегодняшней статье мы расскажем о том где можно бесплатно или за относительно небольшие деньги скачать исторические данные по американскому рынку, а также об универсальном способе скачивать, сохранять, анализировать и использовать в собственных алгоритмах любые типы рыночных данных. Прежде всего давайте коснемся основных источников маркет-даты по американским ценным бумагам с кратким их описанием. В целом можно выделить три типа источников: 1. Источники исторических данных, например биржи, которые поставляют историю торгов на собственной площадке (конечно оставляем за гранью прямые подключения которые относятся к типу 2). 2. Источники рыночных данных, например брокерские терминалы, через который конечно можно загрузить в том числе и определенную историю, но основной интерес представляет то, что происходит прямо сейчас. 3. Универсальные источники, которые объединяют в себе тип 1 и тип 2, и как правило представлены специализированными сервисами. К первому типу источников можно смело отнести такие сайты как Google и Yahoo Finance: Несомненным достоинством этих сервисов является их полная бесплатность, однако, с другой стороны, интрадей маркет-данные скачать будет невозможно, также как невозможно получить, что либо кроме свечей. Под что-либо мы конечно подразумеваем такие данные как Level1, Order Log, Market Depth и т.д. Это практически исключает возможность использования полученных данных для тестирования стратегий, предполагающих торговлю внутри дня. С другой стороны, если ваша стратегия предполагает среднесрочную торговлю, например, основана на подходе “Черепах”, либо вы практикуете портфельное инвестирование без слишком частого перетряхивания портфеля, то использование данных с этих источников будет очень обоснованно и целесообразно. К источникам рыночных данных как уже написано выше, относятся, прежде всего, брокерские терминалы или другие подключения к брокеру, которые есть у каждого практикующего трейдера. Например: Fusion/Blackwood, Rithmic, Gain Capital, OEC Trader, Sterling и т.д. Плюсы от использования данного источника видны практически сразу. Во-первых, это бесплатно (конечно без учета тех комиссий, которые вы платите брокеру). Во-вторых, это множество данных которые можно получить: некоторые типы свечей, тики, Level1, DOM и т.д. К минусам можно причислить отсутствие глубокой истории и необходимость хитрого сбора нужных данных, когда без специализированного ПО не обойтись. При таком подходе, ваши возможности для тестирования значительно расширяются. Появляется возможность создавать не только внутридневные стратегии, но и высокочастотные алгоритмы, основанные на найденных исторических закономерностях. Универсальные источники - это в большинстве своем специализированные сервисы, которые поставляют как реал-тайм маркет-дату, так и любую запрошенную историю, например IQFeed. Главным плюсом подобного источника является его универсальность и наполненность данными, т.е. в любой момент по запросу пользователя можно получить любые нужные данные, тиковые, свечи, стаканы и т.п. Минусом такого подхода является платность данного сервиса, цена на который начинается от 50$ в месяц в базовой версии. Если возникает желание получить несколько больше, то потребуется подключить дополнительные функции, которые как вы уже поняли тоже будут стоить денег. Но, как и предыдущий вариант, вам потребуется специальная программа для сбора и хранения данных. Ведь по окончанию действия подписки вы потеряете все данные. Плюс глубина истории, хоть и больше, чем у предыдущего способа, но все равно она ограничена. Особенно для тиковых данных. Теперь мы можем перейти к самому интересному, а как же нам оптимально получать историю и при этом не тратить много денег. На наш взгляд, здраво выглядит следующий подход: - скачать дневные свечи с бесплатного источника, и протестировать свою стратегию предварительно на этих данных; - скачать интрадей данные через своего брокера, и протестировать уже более детально стратегию - покупка подписки на платный сервис и выкачивание всего интересующего массива данных, Для того, чтобы реализовать подобное, потребуется специализированное ПО, которое будет за вас вначале загружать нужные данные с нужного сервиса, а затем в едином формате продолжит сбор их от вашего брокера. Таким образом, единство данных не будет утрачено и их можно будет легко использовать в дальнейшем анализе. Для таких задач мы создали программу S#.Data (Hydra) (ознакомиться с инструкцией и примерами по работе с программой можно здесь). Это бесплатная программа, доступная для скачивания. Hydra предоставляет множество различных функций, но основной ее задачей является скачивание и накопление данных. Hydra поддерживает загрузку не только свечей любого таймфрейма, но и тиков, ордер лога, level 1, стаканов по множеству инструментов. При этом программа умеет не только скачивать, но и накапливать данные, идущие от брокера, например из OEC Trader, Sterling и т.д. Hydra хранит данные в форматах CSV или BIN (сверх компактный формат хранения данных - 7 байт на 1 снимок стакана или 2 байта на тик). Данные располагаются локально, как файлы, и к ним есть доступ из любых программных языков , а также позволяет в конечном итоге пользователю хранить и использовать огромный массив рыночных данных на домашнем компьютере, сервере или в облаке (поддерживается AWS). Подводя итоги настоящей статьи, надеемся, что методы изложенные в ней позволят вам, получить маркет-дата за адекватные средства и немного приблизиться к профессиональным участникам. Они давно так делают! Желаем удачи на рынке!
Гидра - программа для скачивания и накопления маркет-данных. В данной статье расскажем, как скачивать историю с Google Finance, брокера Gain Capital и сервиса IQFeed. Для начала расскажем немного об интерфейсе программы. После первого запуска вы увидите главное окно, которое предложит вам выбрать источники данных. Обратите внимание на описание каждого источника, если рядом с ним написано: Source is designed to get history data … - то это означает возможность скачивания исторических данных, а если написано: Source is designed to get market-data .. - то это означает возможность подключения к реалтайм источнику данных и самостоятельному сбору истории. Забегая вперед, подобный способ зачастую дешевле простой покупки данных у дата-вендора. Теперь выберем ряд источников и попробуем получить маркет дату. В качестве таковых мы предлагаем использовать: Google (как источник исторических данных), OECTrader (как источник реал-тайм данных, который вам даст брокер при открытие счета), IQFeed (как источник реал-тайм данных с максимальным количеством одновременных подписок). Ставим галочки напротив выбранных источников. После нажатия кнопки ОК, программа предложит вам включить дополнительные возможности. Они достаточно полно описаны в самой программе, поэтому не будем здесь вдаваться в описание каждой из них. Для того, чтобы двигаться дальше достаточно будет просто нажать ОК, не выбирая в данном окне ничего. При необходимости всегда можно вернуть данную настройку через кнопку ADD -> Tools и выбрать необходимое. После всех проделанных процедур мы получаем в левом окне добавленные источники, каждый из которых теперь необходимо настроить. Google Finance Делается это простым нажатием на кнопку карандаша, которая открывает окно настроек. Быстренько пробежимся по каждой из них, чтобы сложилось полное понимание. Итак: Start date - дата с которой Hydra будет получать рыночные данные Time Offset - смещение времени. В данном случае 1 означает, что данные за сегодняшний день скачаны не будут. Это нужно для того, чтоб не скачать половину дня, когда торги еще не завершены. Weekend - когда галочка установлена выходные дни игнорируются. Time interval - hydra скачивает данные по частям. Данный параметр позволяет указать насколько большие части будут использованы. При значении 30 программа будет скачивать данные пакетами по 30 дней. Header, work from, work until, work interval - настройки по работе самой программы, в течение какого времени она должна загружать данные (от и до) Data directory - папка в которой будут храниться скачанные данные, можно оставить по умолчанию, можно выбрать любую собственную. Рекомендуем создавать под каждый источник отдельную директорию, чтобы данные не перезаписывались. Format - формат сохраняемых данных. Поддерживается BIN - специальный формат Hydra позволяющий получать уникальную степень сжатия (2 байта на тик, 7 байтов на стакан) либо всем известный CSV (тут объем обычный) Max.errors - максимальное количество ошибок в источнике. Dependency - указывает на добавленную задачу, которая должна быть выполнена до текущей (в нашем случае это может быть либо IQFeed, либо OEC Trader) Logging level - уровень логирования. Давайте оставим все данные по умолчанию и выберем бумаги по которым будет происходить скачивание данных. Допустим выберем штук 5 тикеров, входящих в S&P500 индекс, например: MMM, AFL, GOOG, AAPl, T. Для этого все эти инструменты нужно добавить: Поскольку источник Google не поддерживает автоматическое добавление инструментов, то потребуется добавление их в базу вручную Далее повторяем процедуру для каждой бумаги и перемещаем их в раздел Selected После этого просто подключаем источник и нажимаем Start. По окончании скачивания вы должны получить вот такие результаты OpenECry (Gain Futures) Источник рыночных данных для клиентов Gain Capital, который вам дает брокер бесплатно при открытие счета. Ключевые настройки источника во многом аналогичны настройкам, которые мы сделали в Google с той лишь разницей, что теперь нужно вносить логин/пароль от вашего аккаунта для доступа к потоку данных и выбрать правильный адрес с которого эти данные будут идти. Предустановлено 3 возможности: тестовый сервер (к которому подключаемся мы и который предназначен для разработчиков), симулятор (сервер для демо счетов), реальный сервер (сервер, имеющий подключение к реальному рынку и реальным счетам). Если у вас открыт счет, то ваш выбор реальный сервер. Параметр Candle from data нужен для указания начальной даты, с которой необходимо скачивать историю в виде свечей. После того, как вы это сделаете добавляем инструменты данные по которым мы хотим получить, поскольку OEC поддерживает автоматическую загрузку и поиск инструментов, делаем это через кнопку Download Securities, с последующим добавлением их через код инструмента. Наш выбор ESZ6 (мини S&P) и NQZ6 (мини Nasdaq). В результате добавления у вас должно получиться тоже самое, что представлено на картинке. Теперь обратите ваше внимание на нижнюю часть окна. В самом начале статьи мы говорили о том, что Hydra поддерживает загрузку и хранение множества типов рыночных данных, настройки о том какие данные загружать можно сделать с помощью соответствующей панели: On Ticks - означает, что будут загружаться тики On Market Depth - означает, что будут загружаться стаканы Candles имеет дополнительную настройки при нажатии на кнопку можно выбрать типы свечей которые будут загружаться, вот как это выглядит: On Level 1 - означает, что будут загружаться лучший бид/аск, а также ряд полей фундаментальной статистики тикера. Теперь достаточно нажать кнопку Start и Hydra начнет получать данные и сохранять их локально. При этом, получаться будут как исторические, так и рыночные данные по торгам, которые идут прямо сейчас! Таким образом, можно самостоятельно накапливать и сохранять рыночные данные, а затем использовать их при тестировании собственных стратегий. IQFeed IQFeed предоставляет, как и OpenECry, интрадей данные. Но, в отличие от OEC, IQFeed поддерживает очень большой диапазон параллельных подписок, а также значительно большую глубину истории, как по свечам, так и по тиковым данным. Настройки источника аналогичны OpenEcry: Параметр Candle from data нужен для указания начальной даты, с которой необходимо скачивать историю в виде свечей. Параметр Ticks from data нужен для указания начальной даты, с которой необходимо скачивать историю в виде тиков. Все остальные действия аналогичны описанным выше. Работа с данными Теперь после всех манипуляций, нужно понять, а как же с этими данными работать и что еще может программа. Напомним, что данные сохраняются в той папке, куда вы их скачали, но как посмотреть, что получилось. Для этого обратимся к источнику OEC Trader по которому было скачано множество данных, выделим его и нажмем правую кнопку мыши. После этого из менюшки можно выбирать то, каким образом работать с инструментом. Давайте выберем Market Depths и затем в открывшемся окне нажмем кнопку с лупой. В результате мы получим подобную картинку Далее аналогично выбираем Level 1, а потом Candles 1 min, только в окне работы со свечами выбираем не лупу, а кнопку “Построить график”. Результаты показаны на рисунках ниже Вот таким образом можно просматривать данные и работать с ними прямо из программы. Надеемся наш продукт поможет вам в трейдинге и разработке прибыльных торговых систем.
В S#.Data (Гидра) появилась новая фича Аналитика. Она позволяет производить анализ над данными, что скачала Гидра. Стандартно входят 2 скрипта: Анализ объема с разбивкой по часам и анализ объема с разбивкой по цене: Анализ объема по часам Анализ объема с разбивкой по цене Множество примеров о том, как делать красивые графики на компоненте SciChart. Сам код так же пишется внутри Гидры: Редактор кода Для того, чтобы пойти чуть дальше, и попробовать заместить R и Python, добавлена библиотека Math Numerics. В одной программе (Гидра) теперь можно и скачивать данные, и анализировать, и производить визуализацию. Для тех, кто пользуется серверным режимом S#.Data, теперь можно анализировать данные, не закачивая их к себе на диск.