Блог им. AnCh

MarketDataDownloader - закачка биржевых данных. IQFeed и Fidelity.

    • 08 ноября 2013, 17:29
    • |
    • AnCh
  • Еще
Представляю вашему вниманию программу по закачке биржевых данных.

Поддерживаются источники IQFeed и Fidelity (такой же источник данных как в Wealthlab).
Программа умеет скачивать тики (для IQFeed источника), внутридневные и EOD данные.
Возможность скачивать как за определенное количество дней, так и за указанный интервал.
Фильтр по времени — все данные, торговая сессия или настраиваемый.

Краткое описание:
Symbols — нужно указывать символы — по одному на строке.
Folder  — нужно указывать папку для хранения данных (ее можно так же выбрать с помощью кнопки Choose).
Amount of days — количество дней целиком, либо настройка интервала с помощью BeginDate и EndDate.
На вкладке параметры можно настроить формат даты, разделитель данных и указать фильтр по времени внутри торговой сессии.
Кнопка Reconnect пробует переподключиться к источнику данных, кнопки Start и Stop — запускают и останавливают процесс скачивания.
Чекбокс «Real-time updating» позволяет после скачки данных автоматически делать запросы к источнику через настраиваемый интервал и обновлять файл с данными. При это формат даты в файле должен быть дефолтным (такой как установлен при загрузке программы).

Данные сохраняются в следующем формате:
1) Fidelity
— TimeStamp, Open, High, Low, Open, Close, Volume
2) IQFeed
— Тиковые данные: TimeStamp, Last, LastSize, TotalVolume, Bid, Ask, TickId, BasisForLast, TradeMarketCenter, TradeConditions
— Интрадей данные: TimeStamp, Open, High, Low, Close, TotalVolume, PeriodVolume
— Дневные данные: TimeStamp, Open, High, Low, Close, PeriodVolume

Программу можно настраивать через конфиг файл MarketDataDownloader.exe.config:
1) UpdateInterval — интервал для опции Realtime updating, интервал (в миллисекундах), через который программа будет пытаться скачать новые данные.
2) UpdateIntervalTick — тоже, только для тиковых данных.
3) Symbols — список тикеров для скачивания (разделенных пробелами).
4) FolderForSaving — путь к каталогу для сохранения.
5) AmountOfDays — количество дней для скачивания.

Спецификации источников данных:
1) IQFeed (полное описание тут —
www.iqfeed.net/index.cfm?displayaction=data&section=services):
* 120 calendar days of tick (includes pre-post market)
* Several years of 1-Minute history (Forex back to Feb 2005, Eminis back to Sept. 2005, Stock/Futures/Indexes back to May 2007)
* Daily, Weekly and Monthly Historical data (15+ years of O,H,L,C,V,OI data)

Список тикеров можно найти здесь
www.iqfeed.net/symbolguide/index.cfm?symbolguide=lookup&displayaction=support&section=guide&web=iqfeed
www.iqfeed.net/symbolguide/index.cfm?symbolguide=guide&displayaction=support&section=guide&web=iqfeed

Если пишет что символ указан неверно или скачиваемые данные отличаются от реальных, пробуйте добавлять к символам + или @ (это особенности датафида).

Зарегистрировать 7 дневный триал можно здесь:
www.iqfeed.net/index.cfm?displayaction=start или здесь www.dtniq.com/register/index.cfm?navgroup=trynowlist

Для работы программы необходим любой клиент IQFeed, например IQLink. В нем вы указываете полученные при регистрации имя и пароль.

2) Fidelity
Спецификации нет. Источник данных поддерживает американские акции. Поддерживаются внутридневные (тиков нет) и EOD данные.
Wealthlab запускать для работы программы не нужно.

Исходники тут:
github.com/AnCh7/MarketDataDownloader
Скачать программу можно тут:
sourceforge.net/projects/mktdownloader/files/

Сообщайте пожалуйста о найденных багах и свои пожелания к функционалу программы.

★13
20 комментариев
+ спасибо, на выходных потестирую.
avatar
спасибо! есть такая прога — qcollector. там вроде можно закачивать символы параллельно — дейли 4 потока, минутки — 2. как у вас с этим?
avatar
magary4, нет, символы паралельно не качаются. В разных потоках работают только скачка, парсинг, сохранение. Но, можно сделать такой фунционал.
avatar
AnCh, да кстати не факт, что мое предложение будет быстрее работать, у тебя тоже все грамотно, по задачам разбито…
avatar
18:11:19 Processing AAPL
18:11:01 [Parsing] Exception of type 'System.OutOfMemoryException' was thrown.
1.6 гига в пике занимала памяти, это 62% от моей доступной на ноуте было. может как-нить почаще выгружать в тестовый файлик?)
avatar
magary4, я делал периодический сброс в файл. Разберусь в чем дело и пофиксаю, спс.
avatar
magary4, Странно все это. У меня максимум 25 мегабайт расходуется. А какая винда, версия фреймворка?
avatar
кстати, заметил, что время как-то странно считалось. AAPL в итоге загрузился на 460 мегов
avatar
magary4, На тиках? Там время с таймстампом. Вообще я данные никак не трогаю в основном, что пришло то и пишу в файл.
avatar
да, на тиках
про время — на лог посмотри. сначала 18:11:19 потом 18:11:01)
avatar
отличная программа, быстро тащит данные. Редко подвисает, помогает реконект и опять старт.
В вирустотале почему то ругается на нее 4 антивируса.
avatar
AnCh, отличная штука, давно искал!!!
А реально написать прогу которая бы скачивала не историю, а Level 1 в реалтайме?
avatar
Denis_T, Все можно сделать ) Правда у меня сейчас совсем времени свободного нет, поэтому ничего не могу обещать.
avatar
Подскажите, есть ли возможность получить цену последней сделки при выборе IQFeed вместе с выбором Daily?

Т.е. последнюю сделку на день?
avatar
Привет! Я зарегился здесь только для того, чтобы сказать тебе ОГРОМНОЕ СПАСИБО за MarketDataDownloader! Ты реально ГЕНИЙ программирования! Качаю интрадей через фиделити — софтинка просто божественная, все прекрасно работает, имеет нужные настройка, шикарна одним словом! Если хочешь, пришли мне номер своей мобилки — закину тебе 300р из интернет-банка. Очень тебе благодарен!
avatar
u r welcome
avatar
Привет. Прога супер, спасибо.

У вас случайно не будет документации по IQFeed? Если будет, скиньте плиз на studentworker1985@gmail.com. Очень хочу сам поэксперементировать, в особенности с получением level2.

Спасибо.
avatar
все что нашел
dropmefiles.com/VzaV8
avatar

теги блога AnCh

....все тэги



UPDONW
Новый дизайн