Я пытаюсь создать симулятор фондового рынка (возможно, в конечном итоге превратиться в прогнозирующий ИИ), но у меня возникают проблемы с поиском данных для использования. Я ищу (надеюсь бесплатный) источник исторических данных фондового рынка.
В идеале это был бы очень мелкозернистый (второй или минутный интервал) набор данных с ценой и объемом каждого символа на NASDAQ и NYSE (и, возможно, других, если я предприму приключение). Кто-нибудь знает источник такой информации?
Я нашел этот вопрос, который указывает, что Yahoo предлагает исторические данные в формате CSV, но я не смог выяснить, как получить их при кратком рассмотрении связанного сайта.
Мне также не нравится идея загружать данные по частям в файлы CSV ... Я предполагаю, что Yahoo расстроится и отключит меня после первых нескольких тысяч запросов.
Я также обнаружил еще один вопрос, который заставил меня думать, что я разыграю джекпот, но, к сожалению, сайт OpenTick, похоже, закрыл свои двери ... слишком плохо, так как я думаю, что они были именно тем, что я хотел.
Я также мог бы использовать данные, которые просто открывают / закрывают цену и объем каждого символа каждый день, но я бы предпочел все данные, если смогу их получить. Любые другие предложения?
Ответы:
Позвольте мне добавить свои 2 ¢, это моя работа, чтобы получить хорошие и чистые данные для хедж-фонда, я видел довольно много каналов данных и поставщиков исторических данных. В основном это данные по акциям США.
Для начала, если у вас есть деньги, не беспокойтесь о загрузке данных из Yahoo, получите данные конца дня прямо из данных CSI , вот где Yahoo также получает свои данные EOD AFAIK. У них есть API, где вы можете извлекать данные в любой формат, который вы хотите. Я думаю, что годовая подписка на данные стоит несколько долларов.
Основная проблема с загрузкой данных из бесплатного сервиса заключается в том, что вы получаете только те акции, которые все еще существуют, это называется Survivorship Bias и может дать вам неверные результаты, если вы посмотрите на многие акции, потому что вы включите только те, которые сделали это так. далеко и не те, которые были исключены из списка.
Для игры с некоторыми внутридневными данными, которые я изучил в IQFeed , они предоставляют несколько API-интерфейсов для извлечения исторических данных, хотя в основном они предназначены для каналов в реальном времени. Но здесь есть довольно много вариантов, некоторые брокеры даже обеспечивают загрузку исторических данных через свои API, так что просто выберите яд.
НО, как правило, все эти данные не очень чисты, как только вы действительно начнете тестирование, вы увидите, что некоторые акции отсутствуют или отображаются как два разных символа, или расщепление акций не учитывается должным образом и т. Д. И затем вы понимаете, что исторические данные Данные о дивидендах также необходимы, и вы начинаете работать по кругу, объединяя данные из 100 различных источников данных и так далее. Поэтому начинать с «дисконтной» подачи данных подойдет, но как только вы запустите более подробные тесты, вы можете столкнуться с проблемами в зависимости от того, что вы делаете. Если вы просто посмотрите, скажем, на акции S & P 500, это не будет такой большой проблемой, хотя подойдет и «дешевый» внутридневной корм.
То, что вы не найдете, это бесплатные внутридневные данные. Я имею в виду, что вы могли бы найти несколько примеров, я уверен, что где-то 5 лет тиковых данных MSFT распространяются, но это не продвинет вас далеко.
Затем, если вам нужны реальные вещи (книга заказов уровня II, все тики, как они происходили на всех биржах), один «доступный», но отличный вариант - Nanex . Они действительно отправят вам диск с терабайтами данных. Если я правильно помню, это около $ 3k-4K за год данных. Но поверьте мне, как только вы поймете, как трудно получить хорошие внутридневные данные, вы не будете думать, что это очень много денег.
Не обескуражить вас, но получить хорошие данные сложно, настолько трудно, что многие хедж-фонды и банки тратят сотни тысяч долларов в месяц на получение данных, которым они могут доверять. Опять же, вы можете начать с чего-то, а затем идти оттуда, но это хорошо, чтобы увидеть это немного в контексте.
Изменить: ответ выше из моего собственного опыта. Это сообщение от Caltech о доступных каналах данных даст больше понимания, и особенно рекомендует QuantQuote .
источник
ЭТОТ ОТВЕТ НЕТ БОЛЬШЕ ТОЧНОСТИ, КАК КОРМА YAHOO ПРЕКРАТИЛАСЬ
Используя вышеуказанный подход Yahoo CSV, вы также можете получить исторические данные! Вы можете перепроектировать следующий пример:
http://ichart.finance.yahoo.com/table.csv?s=YHOO&d=0&e=28&f=2010&g=d&a=3&b=12&c=1996&ignore=.csv
По существу:
Полный список параметров:
источник
Я знаю, что вы хотели "бесплатно", но я бы серьезно подумал о том, чтобы получать данные с csidata.com примерно за 300 долларов в год, если бы вы были вами.
Это то, что Yahoo использует для предоставления своих данных.
Он поставляется с достойным API, и данные (насколько я могу судить) очень чистые.
Вы получаете 10 лет истории, когда вы подписываетесь, а затем ночные обновления после этого.
Они также заботятся о всевозможных неприятных вещах, таких как расколы и дивиденды для вас. Если вы еще не обнаружили радости, связанной с очисткой данных, вы не поймете, сколько вам это нужно, пока ваш ATS (Автоматическая торговая система) в первый раз не подумает, что некоторые акции действительно очень дешевы, только потому, что они разделены 2 : 1 а ты не заметил
источник
Набор данных каждого символа на NASDAQ и NYSE с секундным или минутным интервалом будет огромным .
Допустим, на обеих биржах есть в общей сложности 4000 компаний (вероятно, это очень низкая сторона, поскольку на NASDAQ более 3200 компаний ). Для данных с вторым интервалом, если предположить, что в день торгуют 6,5 часов, это даст вам 23400 точек данных в день на компанию, или около 93 600 000 точек данных в целом за этот один день. Предполагая 200 торговых дней в году, это около 18 720 000 000 точек данных всего за один год.
Может быть, вы хотите начать с меньшего набора в первую очередь?
источник
Введение:
с Yahoo вы можете получить EOD (конец дня) исторические цены или цены в реальном времени. Цены на EOD удивительно просты для скачивания. Смотрите мой блог для объяснения того, как получить данные и примеры кода C #.
Я нахожусь в процессе написания «механизма» подачи данных в реальном времени, который загружает и сохраняет цены в реальном времени в базе данных. Первоначально движок сможет загружать исторические цены от Yahoo и Interactive Brokers и сохранять данные в базе данных по вашему выбору: MS SQL, MySQL, SQLite и т. Д. Это с открытым исходным кодом, но я выложу больше информация в моем блоге, когда я подхожу к ее публикации (в течение нескольких дней).
Другой вариант - eclipse trader ... он позволяет вам записывать исторические данные с точностью до 1 минуты и сохранять цены локально в текстовом файле. Он в основном загружает данные в реальном времени из Yahoo с 15-минутной задержкой. Поскольку я хотел получить более надежное решение и работаю над большим школьным проектом, для которого нам нужны данные, я решил написать свой собственный механизм подачи данных (о котором я упоминал выше).
Пример кода:
Вот пример кода C #, который демонстрирует, как загружать данные в реальном времени:
База данных:
на стороне базы данных я использую
OleDb
соединение с CSV-файлом для заполнения,DataSet
а затем я обновляю свою фактическую базу данных черезDataSet
, это в основном позволяет сопоставить все столбцы из CSV-файла, возвращенного из Yahoo, напрямую в вашу базу данных ( если ваша база данных не поддерживает пакетную вставку данных CSV, например SQLite). В противном случае вставка данных является однострочной ... просто пакетной вставкой CSV в вашу базу данных.Вы можете прочитать больше о форматировании URL здесь: http://www.gummy-stuff.org/Yahoo-data.htm
источник
NASDAQ предлагает 10-летние исторические данные EOD для каждого символа
http://www.nasdaq.com/aspx/historical_quotes.aspx?symbol=AAPL&selected=AAPL
Вы можете автоматизировать процесс загрузки этих данных.
источник
Для данных, не связанных с выживанием, единственным надежным источником, который я нашел, является QuantQuote ( http://quantquote.com )
Данные поступают в минутах, секундах или в тиковом разрешении, ссылаясь на исторические данные о запасах .
Было предложение по kibot выше. Я бы сделал быстрый поиск в Google, прежде чем покупать у них, вы найдете много таких сообщений с предупреждениями о проблемах качества данных kibot. Это также говорит о том, что их якобы оставшийся в живых без предубеждения sp500 имеет только 570 символов в течение 14 лет. Это практически невозможно, sp500 меняется на 1-2 символа в месяц ....
источник
К сожалению, исторические данные тикеров, которые бесплатны, трудно найти. Теперь, когда opentick мертв, я не знаю ни одного другого провайдера.
В прошлой жизни я работал в хедж-фонде с автоматизированной торговой системой, и мы широко использовали исторические данные.
Мы использовали TickData для нашего источника. Их цены были разумными, и данные имели второстепенное разрешение.
источник
Мы приобрели данные за 12 лет на Kibot.com и очень довольны качеством.
Что касается требований к хранилищу: 12-минутные данные за 1 минуту для всех акций США (более 8000 символов) составляют около 100 ГБ.
С тиковыми данными ситуация немного отличается. Если вы регистрируете только время и продажи, это будет около 30 ГБ данных в месяц для всех акций США. Если вы хотите сохранить изменения цены и предложения вместе с транзакциями, вы можете ожидать около 150 ГБ в месяц.
Надеюсь, это поможет. Пожалуйста, дайте мне знать, если есть что-то еще, чем я могу вам помочь.
источник
Позвольте мне добавить источник, который я только что обнаружил, найденный здесь .
Он имеет много исторических данных о запасах в формате CSV и был собран Энди Павло, который, согласно его домашней странице, является «доцентом кафедры информатики в Университете Карнеги-Меллона».
источник
Mathematica в настоящее время также предлагает доступ к текущим и историческим ценам на акции, см. Http://reference.wolfram.com/mathematica/ref/FinancialData.html , если у вас есть его копия.
источник
day
Вы можете использовать Yahoo для получения ежедневных данных (гораздо более управляемый набор данных), но вы должны структурировать URL-адреса. Посмотри это ссылку . Вы не делаете много маленьких запросов, вы делаете меньше больших запросов. Многие бесплатные программы используют это, чтобы они не закрывали вас.
РЕДАКТИРОВАТЬ: Этот парень делает это, может быть, вы можете посмотреть на звонки, которые делает его программное обеспечение.
источник
Yahoo - самый простой способ получить предварительные бесплатные данные. Ссылка, описанная в ответе eckesicle, может быть легко использована в коде Python, но сначала вам понадобятся все тикеры. Я бы использовал NYSE для этого примера, но это можно использовать и для разных бирж.
Я использовал эту вики-страницу для загрузки всех тикеров компании с помощью следующего скрипта (я не очень талантливый Pythonist, извините, если этот код не очень эффективен):
Для загрузки каждого тикера я использовал другой похожий скрипт:
Обратите внимание, что основным недостатком этого метода является то, что разные данные доступны для разных компаний. Компании, у которых нет данных, существующих в запрошенные даты (недавно перечисленные), получат 404 страницы.
Также имейте в виду, что этот метод хорош только для предварительных данных - если вы действительно хотите протестировать свой алгоритм, вы должны заплатить немного и использовать надежного поставщика данных, такого как CSIData или других
источник
Почему бы не смоделировать поддельный фондовый рынок с помощью Brownian Motion?
Много ресурсов для этого. Легко реализовать.
http://introcs.cs.princeton.edu/java/98simulation/
источник
Я использую eodData.com. Это довольно прилично по цене. За 30 долларов в месяц вы получаете 30 дней по 1,5 и 60 минутным барам для всех американских бирж и 1 год данных EOD для большинства других.
источник
Я бы сканировал finance.google.com (для цитат) - или finance.yahoo.com.
Обе они вернут html-страницы для большинства бирж по всему миру, включая исторические. Затем нужно просто разобрать HTML, чтобы извлечь то, что вам нужно.
Я делал это в прошлом, с большим успехом. В качестве альтернативы, если вы не возражаете против использования Perl - есть несколько модулей на CPAN, которые сделали эту работу за вас - т.е. извлекли цитаты из Google / Yahoo.
Для получения дополнительной информации см. История цитат
источник
Мой бывший проект собирался использовать свободно загружаемые данные из EODData .
источник
Взгляните на API данных Mergent Historical Securities Data - http://www.mergent.com/servius
источник