AnCh
AnCh личный блог
08 ноября 2013, 17:29

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

Представляю вашему вниманию программу по закачке биржевых данных.

Поддерживаются источники 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/

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

20 Комментариев
  • russo_turisto
    08 ноября 2013, 17:52
    + спасибо, на выходных потестирую.
  • magary4
    08 ноября 2013, 18:07
    спасибо! есть такая прога — qcollector. там вроде можно закачивать символы параллельно — дейли 4 потока, минутки — 2. как у вас с этим?
      • magary4
        08 ноября 2013, 18:55
        AnCh, да кстати не факт, что мое предложение будет быстрее работать, у тебя тоже все грамотно, по задачам разбито…
  • magary4
    08 ноября 2013, 18:18
    18:11:19 Processing AAPL
    18:11:01 [Parsing] Exception of type 'System.OutOfMemoryException' was thrown.
    1.6 гига в пике занимала памяти, это 62% от моей доступной на ноуте было. может как-нить почаще выгружать в тестовый файлик?)
  • magary4
    08 ноября 2013, 18:19
    кстати, заметил, что время как-то странно считалось. AAPL в итоге загрузился на 460 мегов
  • magary4
    08 ноября 2013, 18:53
    да, на тиках
    про время — на лог посмотри. сначала 18:11:19 потом 18:11:01)
  • russo_turisto
    17 ноября 2013, 12:39
    отличная программа, быстро тащит данные. Редко подвисает, помогает реконект и опять старт.
    В вирустотале почему то ругается на нее 4 антивируса.
  • Denis_T
    23 ноября 2013, 18:41
    AnCh, отличная штука, давно искал!!!
    А реально написать прогу которая бы скачивала не историю, а Level 1 в реалтайме?
  • LesPaul
    16 сентября 2014, 09:24
    Подскажите, есть ли возможность получить цену последней сделки при выборе IQFeed вместе с выбором Daily?

    Т.е. последнюю сделку на день?
  • Alrom
    01 сентября 2015, 03:25
    Привет! Я зарегился здесь только для того, чтобы сказать тебе ОГРОМНОЕ СПАСИБО за MarketDataDownloader! Ты реально ГЕНИЙ программирования! Качаю интрадей через фиделити — софтинка просто божественная, все прекрасно работает, имеет нужные настройка, шикарна одним словом! Если хочешь, пришли мне номер своей мобилки — закину тебе 300р из интернет-банка. Очень тебе благодарен!
  • Сергей
    08 октября 2015, 18:11
    Привет. Прога супер, спасибо.

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

    Спасибо.

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн