джерело історичних даних про запаси [закрито]


239

Я намагаюся зробити симулятор фондового ринку (можливо, врешті-решт переростаючи в передбачувальний ШІ), але у мене виникають проблеми з пошуком даних для використання. Я шукаю (сподіваюсь, безкоштовне) джерело історичних даних фондового ринку.

В ідеалі, це було б дуже тонко деталізованим (секунда або хвилинний інтервал) набором даних із ціною та обсягом кожного символу в NASDAQ та NYSE (і, можливо, в інших, якщо я буду пригодним). Хтось знає джерело такої інформації?

Я знайшов це запитання, яке вказує на те, що Yahoo пропонує історичні дані у форматі CSV, але мені не вдалося дізнатись, як отримати їх під час короткого огляду пов’язаного сайту.

Мені також не подобається ідея завантаження фрагментів даних у файли CSV ... Я думаю, Yahoo засмутиться і закриє мене після перших кількох тисяч запитів.

Я також виявив ще одне питання, який змусив мене думати, що я потрапив у джекпот, але, на жаль, здається, що сайт OpenTick закрив свої двері ... занадто погано, оскільки я думаю, що вони були саме такими, які я хотів.

Я також міг би використовувати дані, які є просто відкритими / закритими ціною та обсягом кожного символу щодня, але я вважаю за краще всі дані, якщо зможу їх отримати. Будь-які інші пропозиції?


4
@rmeador, Yahoo не відключить вас незалежно від кількості запитів, але Google відключить вас. Я міг завантажити близько 4 Гб історичних цін EOD з Yahoo приблизно за 5-6 годин, не вимикаючись. Це приблизно 7000 акцій з усіма їхніми історичними цінами EOD з моменту приходу на ринок. Дивіться мою відповідь для отримання додаткової інформації та зразкового вихідного коду.
Кирило

Я відчуваю, що дані ЗНО недостатньо інформативні. Якщо ви хочете відзначити котирування та торги, я вважаю, що polygon.io є найдешевшим.
Квінтон Пайк

Відповіді:


226

Дозвольте додати свої 2 ¢, моя робота - отримати хороші та чисті дані для хедж-фонду, я бачив досить багато каналів даних та історичних постачальників даних. В основному це стосується даних про запаси в США.

Для початку, якщо у вас є гроші, не заважайте завантажувати дані з Yahoo, отримуйте дані про кінець дня прямо з даних CSI , саме тут Yahoo отримує свої дані EOD та AFAIK. У них є API, де ви можете витягти дані в будь-який формат, який ви хочете. Я думаю, щорічна підписка на дані становить кілька доларів США.

Основна проблема із завантаженням даних із безкоштовного сервісу полягає в тому, що ви отримуєте лише запаси, які все ще існують, це називається Survivorship Bias і може дати неправильні результати, якщо ви подивитеся на багато акцій, оскільки ви включите лише ті, які зробили його таким далеко не ті, які були зняті з переліку.

Для того, щоб пограти з деякими внутрішніми даними, я б заглянув у IQFeed , вони надають кілька API для отримання історичних даних, хоча вони в основному є спорядженням для каналів у режимі реального часу. Але тут є досить багато варіантів, деякі брокери навіть надають завантаження історичних даних через свої API, тому просто виберіть отруту.

Але зазвичай усі ці дані не дуже чисті, як тільки ви дійсно почнете тестування назад, ви побачите, що певні запаси відсутні або з'являються у вигляді двох різних символів, або розбиття акцій належним чином не враховано тощо. І тоді ви розумієте, що історичні дані дані про дивіденди також потрібні, і тому ви починаєте працювати в колах, виправляючи дані разом із 100 різних джерел даних тощо. Отже, для початку з подачею даних зі знижкою буде зроблено, але як тільки ви запустите більш вичерпні бекстейди, у вас можуть виникнути проблеми залежно від того, що ви робите. Якщо ви просто подивіться, скажімо, на запаси S&P 500, це не буде стільки проблемою, і "дешева" подача в день.

Те, що ви не знайдете, - це безкоштовні внутрішньоденні дані. Я маю на увазі, що ви можете знайти кілька прикладів, я впевнений, що десь 5 років MSFT відмічають дані про галочки, але це не дасть вам дуже далеко.

Тоді, якщо вам потрібні справжні речі (книга замовлення II рівня, усі тики, як вони відбулися на всіх біржах), один «доступний», але відмінний варіант - Nanex . Вони фактично доставлять вам накопичувач із терабайтними даними. Якщо я добре пам’ятаю, це близько $ 3k-4K на рік даних. Але повірте, як тільки ви зрозумієте, як важко отримати хороші дані в день, ви не подумаєте, що це зовсім багато грошей.

Не перешкоджати вам, але отримувати хороші дані важко, настільки важко, адже багато хедж-фондів і банків витрачають сотні тисяч доларів на місяць, щоб отримати дані, яким вони можуть довіряти. Знову ж таки, ви можете десь почати, а потім піти звідти, але добре це побачити трохи в контексті.


Редагувати: Відповідь вище - з мого власного досвіду. Це написання від Caltech про доступні канали даних дасть більше інформації, і особливо рекомендує QuantQuote .


18
+1 за вказівку на 3 рівні даних (hist, intra, level II) та для проникливих коментарів до відповідей інших (повнота, чистота, розмір пам’яті, набір даних ...)
Peter Host

2
CSI - це чудово, але, лише FYI, акції, що перебувають у списку, тепер є преміальною послугою, більше не включеною в базові пакети. Просто FYI.
Олі

1
CSI - це чудово, але ціна дорога. Якщо ви користуєтеся несправедливою перевагою, ви зобов'язані застосовувати їх. Нудно використовувати його щодня для оновлення історії. Якщо ви хочете завантажити з http або ftp за допомогою CSI, ви повинні платити близько 200 € на місяць. Вибачте, але це занадто дорого.
davidxxx

@davidh, CSI Unfair Advantage має API ActiveX, куди ви можете автоматично експортувати всі дані своєї підписки. Щоб написати надійний інструмент для експортера, потрібно близько одного дня ... Якщо ви знаєте про більш дешеву альтернативу з такою ж якістю, як CSI, сміливо публікуйте альтернативу!
lukebuehler

Зверніть увагу на QuantQuote: вони переглядають / обробляють ваше замовлення протягом 48 годин після покупки. У випадку, якщо ви думали, що у вас буде негайний доступ.
fionbio

94

ЦЕ ВІДПОВІДЬ НІКОЛЬШЕ НЕ РОЗПОЛУЧИТИ, ЯК ХАРОШЕННЯ 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

По суті:

sn = TICKER
a = fromMonth-1
b = fromDay (two digits)
c = fromYear
d = toMonth-1
e = toDay (two digits)
f = toYear
g = d for day, m for month, y for yearly

Повний список параметрів:

a   Ask
a2  Average Daily Volume
a5  Ask Size
b   Bid
b2  Ask (Real-time)
b3  Bid (Real-time)
b4  Book Value
b6  Bid Size
c   Change & Percent Change
c1  Change
c3  Commission
c6  Change (Real-time)
c8  After Hours Change (Real-time)
d   Dividend/Share
d1  Last Trade Date
d2  Trade Date
e   Earnings/Share
e1  Error Indication (returned for symbol changed / invalid)
e7  EPS Estimate Current Year
e8  EPS Estimate Next Year
e9  EPS Estimate Next Quarter
f6  Float Shares
g   Day's Low
h   Day's High
j   52-week Low
k   52-week High
g1  Holdings Gain Percent
g3  Annualized Gain
g4  Holdings Gain
g5  Holdings Gain Percent (Real-time)
g6  Holdings Gain (Real-time)
i   More Info
i5  Order Book (Real-time)
j1  Market Capitalization
j3  Market Cap (Real-time)
j4  EBITDA
j5  Change From 52-week Low
j6  Percent Change From 52-week Low
k1  Last Trade (Real-time) With Time
k2  Change Percent (Real-time)
k3  Last Trade Size
k4  Change From 52-week High
k5  Percent Change From 52-week High
l   Last Trade (With Time)
l1  Last Trade (Price Only)
l2  High Limit
l3  Low Limit
m   Day's Range
m2  Day's Range (Real-time)
m3  50-day Moving Average
m4  200-day Moving Average
m5  Change From 200-day Moving Average
m6  Percent Change From 200-day Moving Average
m7  Change From 50-day Moving Average
m8  Percent Change From 50-day Moving Average
n   Name
n4  Notes
o   Open
p   Previous Close
p1  Price Paid
p2  Change in Percent
p5  Price/Sales
p6  Price/Book
q   Ex-Dividend Date
r   P/E Ratio
r1  Dividend Pay Date
r2  P/E Ratio (Real-time)
r5  PEG Ratio
r6  Price/EPS Estimate Current Year
r7  Price/EPS Estimate Next Year
s   Symbol
s1  Shares Owned
s7  Short Ratio
t1  Last Trade Time
t6  Trade Links
t7  Ticker Trend
t8  1 yr Target Price
v   Volume
v1  Holdings Value
v7  Holdings Value (Real-time)
w   52-week Range
w1  Day's Value Change
w4  Day's Value Change (Real-time)
x   Stock Exchange
y   Dividend Yield

На цій сторінці є таблиця спеціальних тегів, які можна використовувати в URL-адресі.
user443854

9
Велика проблема з отриманням даних від Yahoo або будь-якого іншого сервісу в Інтернеті полягає в тому, що ви не отримуєте списки акцій, тому ви швидко наткнетеся на упередженість виживання. Краще наступні поради Еріка Х. або моя порада та йдіть прямо до CSI.
lukebuehler

На цій сторінці використовувались спеціальні теги таблиці, які можна використовувати в URL-адресі ... "Yahoo стверджує, що ваше використання та розповсюдження інструменту та вмісту, розміщеного на ..., є порушенням розділів 6, 12 та 18 Умови надання послуг (серед інших положень) спричиняють недобросовісну конкуренцію та спонукають інших порушувати Умови надання послуг ... Втручаючись у ці договірні та ділові відносини, ви потенційно завдаєте шкоди можливості інших користувачів отримувати переваги послуг, що надаються на сайті Yahoo Finance ". Великі пальці вниз на Yahoo
Мустафа Джордж

Я додав решту комутаторів із своїх нотаток, які були знайдені на цій веб-сторінці. Представлення цих даних, схоже, не порушує знайдений тут ToS: policy.yahoo.com/us/en/yahoo/terms/product-atos/apiforydn/… Yahoo, мабуть, був засмучений щодо інструменту даних Excel, який також був доступний на цьому сайті.
Фредрік Е

2
Ця стрічка даних більше не є.
MichaelICE

47

Я знаю, що ви хотіли "безкоштовно", але я б серйозно розглядав можливість отримання даних з csidata.com приблизно за $ 300 на рік, якби я був на вас.

Це те, що Yahoo використовує для надання своїх даних.

Він поставляється з гідним API, і дані (наскільки я можу сказати) дуже чисті.

Ви отримуєте 10-річну історію, коли ви підписуєтеся, а потім вночі оновлюєтесь.

Вони також піклуються про всілякі неприємні речі, такі як розколи та дивіденди. Якщо ви ще не виявили радості, пов’язаної з очищенням даних, ви не зрозумієте, наскільки це вам потрібно, доти, доки ваш АТС (Автоматизована система торгівлі) не подумає, що деякі акції дійсно дешеві, лише тому, що він розколовся 2 : 1, і ви не помітили.


1
які мови підтримуються своїм API?
user443854

1
у них є API ActiveX, до якого ви можете зателефонувати за допомогою коду c ++ або C # або будь-якого іншого у Windows, щоб отримати дані.
lukebuehler

1
Цікаво. Чим розробка розподілу та дивідендів відрізняється від Yahoo?
Метью Лок

1
@MatthewLock Я на це не на 100%, але я думаю, що Yahoo використовує іншого постачальника даних про "корпоративні події", а потім просто використовує необроблені дані CSI, відрегульовані корпоративними подіями. Ця трохи стара стаття дає деяке розуміння: amibroker.org/userkb/2007/09/23/yahoos-data-providers
lukebuehler

2
CSI - це чудово, але, лише FYI, акції, що перебувають у списку, тепер є преміальною послугою, більше не включеною в базові пакети. Просто FYI.
Олі

16

Набір даних кожного символу NASDAQ і NYSE на інтервалі секунди або хвилини буде масовим .

Скажімо, на обох біржах перелічено 4000 компаній (це, мабуть, дуже низько, оскільки існує понад 3200 компаній в NASDAQ перелічено ). Для даних на другому інтервалі, якщо припустити, що в день припадає 6,5 торгових годин, це дасть вам 23400 точок даних на день на компанію, або приблизно 93 600 000 точок даних за цей день. Якщо припустити 200 торгових днів на рік, це близько 18 720 000 000 точок даних лише за один рік.

Можливо, ви хочете спочатку почати з меншого набору?


2
Я працював при припущенні, що більшість компаній не торгуються щосекунди, тому кількість точок даних буде значно меншою. можливо, це погане припущення. все-таки я прогнозував близько 10 ГБ на рік ...
rmeador

Через пару місяців дані про запаси приблизно на 10 символів надійшли на 3 DVD-дисках. Дані також стискали текст.
Алан

1
@rmeador це правда, але також деякі акції мають набагато більше щоденного обсягу, ніж секунди в день, це означає, що вони торгують не один раз на секунду - і не всі торги гарантуються за однаковою ціною. Тож вам доведеться вирішити, чи вас цікавить ціна з інтервалом, або в торгівлі
мат b

2
Якщо ви хочете, щоб вся справа, наприклад, котирування II рівня всіх бірж і т. Д., Це кілька ТБ на рік у високому стисненому форматі (близько 5 ГБ на день торгівлі). Якщо ви зберігаєте лише хвилинні дані, їх дійсно мало, приблизно 10 ГБ за 10 років усіх запасів ...
lukebuehler

16

Вступ:
Від Yahoo ви можете отримати EOD (кінець дня) історичні ціни або ціни в режимі реального часу. Ціни EOD для завантаження надзвичайно прості. Пояснення щодо отримання даних та прикладів коду C # див. У моєму блозі .

Я зараз пишу "двигун" подачі даних у режимі реального часу, який завантажує та зберігає ціни в реальному часі в базі даних. Двигун спочатку зможе завантажувати історичні ціни з Yahoo та Interactive Brokers, і він зможе зберігати дані у вашій базі даних: MS SQL, MySQL, SQLite тощо. Це відкрите джерело, але я публікую докладніше інформація про мій блог, коли я наближаюсь до його випуску (протягом декількох днів).

Інший варіант - трейдер затемнення ... він дозволяє записувати історичні дані з деталізацією лише за 1 хвилину і зберігає ціни локально у текстовому файлі. В основному він завантажує дані в режимі реального часу з Yahoo із затримкою на 15 хвилин. Оскільки я хотів більш надійного рішення і працюю над великим шкільним проектом, для якого нам потрібні дані, я вирішив написати власний механізм подачі даних (про який я згадував вище).

Приклад коду:
Ось зразок коду C #, який демонструє, як завантажувати дані в режимі реального часу:

public void Start()
{
    string url = "http://finance.yahoo.com/d/quotes.csv?s=MSFT+GOOG&f=snl1d1t1ohgdr";
    //Get page showing the table with the chosen indices
    HttpWebRequest request = null;
    IDatabase database =
        DatabaseFactory.CreateDatabase(
        DatabaseFactory.DatabaseType.SQLite);

    //csv content
    try
    {
        while (true)
        {
            using (Stream file = File.Create("quotes.csv"))
            {
                request = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
                request.Timeout = 30000;
                using (var response = (HttpWebResponse)request.GetResponse())
                using (Stream input = response.GetResponseStream())
                {
                    CopyStream(input, file);
                }
            }
            Console.WriteLine("------------------------------------------------");
            database.InsertData(Directory.GetCurrentDirectory() + "/quotes.csv");

            File.Delete("quotes.csv");
            Thread.Sleep(10000); // 10 seconds
        }
    }
    catch (Exception exc)
    {
        Console.WriteLine(exc.ToString());
        Console.ReadKey();
    }
}

База даних:
На базі бази даних я використовую OleDbз'єднання з файлом CSV для заповнення, DataSetа потім я оновлюю фактичну базу даних через DataSet, це в основному дає можливість зіставити всі стовпці з файлу CSV, поверненого з Yahoo безпосередньо до вашої бази даних ( якщо ваша база даних не підтримує пакетні вставки даних CSV, наприклад, SQLite). Інакше вставлення даних - це однолінійний ... просто пакетне вставлення CSV у вашу базу даних.

Детальніше про форматування URL-адреси ви можете прочитати тут: http://www.gummy-stuff.org/Yahoo-data.htm


епічні, я б хотів, щоб я знайшов це раніше.
ojblass

Це фактично надає дані в реальному часі, як ви запропонували? На сторінці у нього є цей параметр "k1", але востаннє я перевіряв, він все ще має деяку затримку.
Антоній

@Antony більшу частину часу відбувається якась затримка, тому це просто залежить від того, наскільки ви терпимі до затримок. Yahoo каже, що вони надають дані в режимі реального часу, але це, звичайно, не для всіх тих, хто поступив. Тікери, які не є в реальному часі, затримуються до 15 хвилин. Навіть якщо ви отримаєте спільно розташований сервер на біржі, НАЙДОЛІ буде "деяка затримка" . То яку затримку ви готові терпіти?
Кирило

Це не надійно. Скажіть, чому це не працює зараз, наприклад: real-chart.finance.yahoo.com/… використовується з finance.yahoo.com/q/…
mmm

9

NASDAQ пропонує 10 років історичних даних EOD для кожного символу

http://www.nasdaq.com/aspx/historical_quotes.aspx?symbol=AAPL&selected=AAPL

Ви можете автоматизувати процес завантаження цих даних.


Гарне джерело. Вони змінили систему запитів, тому тепер усі запити обробляються JS (наприклад, nasdaq.com/symbol/aapl/historical ). Чи є спосіб автоматизувати це?
Антон Тарасенко

Так, це можливо автоматизувати. Вам потрібно скористатися таким сніфером, як Telerik, і подивитися, як отримуються дані (через POST). Поки ви надсилаєте змінні публікації правильно, ви повинні отримати дані.
Nick_F

1
Це все ще доступно? Чи містять у ній дані про добу?
Лі

8

Для вільних даних про зміщення виживших людей єдине надійне джерело, яке я знайшов, - QuantQuote ( http://quantquote.com )

Дані надходять за хвилину, секунду чи роздільну здатність галочок, посилаючись на їхні історичні дані про запаси .

Зверху була пропозиція щодо кібота. Я б здійснив швидкий пошук в Google, перш ніж купувати їх, ви знайдете безліч публікацій на кшталт цієї з попередженнями про проблеми якості kibot. Це також говорить про те, що їхні нібито ухилення від виживання у вільному випадку sp500 мають лише 570 символів протягом 14 років. Це майже неможливо, SP500 змінюється на 1-2 символи на місяць ....


3
kibot має лише 3 безкоштовні символи. решту треба заплатити! він просто робить рекламу
підстрибуючи

Безкоштовні щоденні дані Quantquote недокументовані: у файлах csv немає заголовків стовпців і жодного документа.
user443854

є документація, формат, в основному, такий же, як їх набори даних хвилинної роздільної здатності.
user788171

Quantquote.com має багато помилок у даних
Івелін

Вони пропонують безкоштовні мінімальні дані для IBM з 1998 року. Це було досить добре для мене. Мені знадобився лише один символ для перевірки стиснення: kibot.com/buy.aspx
Сергій Родіонов,

7

На жаль, безкоштовні історичні дані, важко знайти. Тепер, коли опентік мертвий, я не знаю жодного іншого постачальника.

У попереднє життя я працював над хедж-фондом, який мав автоматизовану систему торгівлі, і ми рясно використовували історичні дані.

Ми використовували TickData для нашого джерела. Їх ціни були прийнятними, а дані мали роздільну здатність другої частини.


6

Ми придбали 12 років внутрішньоденних даних у Kibot.com і дуже задоволені якістю.

Що стосується вимог щодо зберігання даних: 12-річна 1-хвилинна інформація для всіх акцій США (понад 8000 символів) становить близько 100 Гб.

З тиковим тиком даних ситуація мало відрізняється. Якщо ви записуєте лише час та продажі, це буде приблизно 30 ГБ даних на місяць для всіх акцій США. Якщо ви хочете зберігати зміни ставки / запитання разом із транзакціями, ви можете розраховувати близько 150 Гб на місяць.

Я сподіваюся, що це допомагає. Будь ласка, дайте мені знати, чи є ще щось, з чим я можу вам допомогти.


1
Все ще задоволений KiBot @ boe100?
JaredBroad

@ boe100 Чи мають скориговані та невідрегульовані ціни? Чи є у них бети і дельти?
user443854

Доступні як скориговані, так і невідрегульовані дані. Можна оновлювати свої дані за допомогою API HTTP або завантажувати нові архіви з FTP-сервера щодня. Не бета або дельта не обчислюються.
boe100

@ boe100 Ви могли б поділитися своїми даними?
Томаш Ващик

2
@Tomasz haha, ваш коментар зробив мій день: D
Корнеліу Мафтулеак

6

Дозвольте додати джерело, яке я щойно відкрив, знайдене тут .

Він має багато історичних даних про запаси у форматі csv, і його зібрав Енді Павло, який, за його домашньою сторінкою, є "доцентом кафедри комп'ютерних наук в університеті Карнегі Меллона".


Це чудово для тих, хто просто хоче зіпсуватись із достатньо великим набором історичних даних про фондові ринки.
Ciaran Gallagher

1
Веб-сторінка вниз ...
Brethlosze


5

Mathematica nowoadays також пропонує доступ як до поточних, так і до історичних цін на акції, дивіться http://reference.wolfram.com/mathematica/ref/FinancialData.html , якщо у вас є його копія.


5
найменший крок часуday
kirill_igum

га дякую за те, що повідомили мені - це справді не так вже й чудово ...
Том Венселєрс

4

Ви можете використовувати yahoo для отримання щоденних даних (набагато більш керований набір даних), але вам доведеться структурувати URL-адреси. Дивіться це посилання . Ви не робите багато маленьких запитів, ви робите кілька великих запитів. Багато вільного програмного забезпечення використовує це, щоб вони не закривали вас.

EDIT: Цей хлопець це робить, можливо, ви можете подивитися на дзвінки, які здійснює його програмне забезпечення.


спочатку я подумав, що це посилання виглядає багатообіцяючим, але я не можу знайти спосіб визначення історичних даних ... схоже, це все в режимі реального часу. Я щось пропускаю?
rmeador

ти правий. Я додав ще одне посилання когось із програмним забезпеченням, яке робить історичні речі, тому я знаю, що це можливо. Можливо, подивіться на дзвінки, які робить його програмне забезпечення.
jimconstable

4

Yahoo - найпростіший варіант отримання попередніх безкоштовних даних. Посилання, описане у відповіді eckesicle, може бути легко використане в коді python, але спочатку потрібні всі галочки. Я б використовував NYSE для цього прикладу, але це також може використовуватися для різних бірж.

Я скористався цією вікі-сторінкою для завантаження всіх фірмових тикерів із наступним сценарієм (я не дуже талановитий Pythonist, вибачте, якщо цей код не дуже ефективний):

import string
import urllib2
from bs4 import BeautifulSoup

global f

def download_page(url):
    aurl = urllib2.urlopen(url)
    soup = BeautifulSoup(aurl.read())

    print url

    for row in soup('table')[1]('tr'):
        tds = row('td')
        if (len(tds) > 0):
            f.write(tds[1].string + '\n')


f = open('stock_names.txt', 'w')

url_part1 = 'http://en.wikipedia.org/wiki/Companies_listed_on_the_New_York_Stock_Exchange_'
url = url_part1 + '(0-9)'
download_page(url)

for letter in string.uppercase[:26]:
    url_part2 = letter
    url = url_part1 + '(' + letter + ')'

    download_page(url)

f.close()

Для завантаження кожного галочки я використав ще один досить схожий сценарій:

import string
import urllib2
from bs4 import BeautifulSoup


global f

url_part1 = 'http://ichart.finance.yahoo.com/table.csv?s='
url_part2 = '&d=0&e=28&f=2010&g=d&a=3&b=12&c=1996&ignore=.csv'

print "Starting"

f = open('stock_names.txt', 'r')
file_content = f.readlines()
count = 1;
print "About %d tickers will be downloaded" % len(file_content)

for ticker in file_content:
    ticker = ticker.strip()
    url = url_part1 + ticker + url_part2
    
    try:
        # This will cause exception on a 404
        response = urllib2.urlopen(url)

        print "Downloading ticker %s (%d out of %d)" % (ticker, count, len(file_content))

        count = count + 1
        history_file = open('C:\\Users\\Nitay\\Desktop\\Historical Data\\' + ticker + '.csv', 'w')
        history_file.write(response.read())
        history_file.close()

    except Exception, e:
        pass

f.close()

Зауважте, що головним недоліком цього методу є те, що для різних компаній доступні різні дані - Компанії, які не мають даних у потрібні дати (нещодавно перелічені), отримають 404 сторінки.

Також майте на увазі, що цей метод корисний лише для попередніх даних. Якщо ви дійсно хочете перевірити свій алгоритм, вам слід трохи заплатити і використовувати надійного постачальника даних, наприклад CSIData або інших


Введення глобальної декларації у глобальний простір імен є непотрібним, хоча все-таки хороша реакція.
Люк Тейлор

1
Служба вниз ...
Brethlosze

3

Чому б не моделювати підроблений фондовий ринок за допомогою Brownian Motion?

Багато ресурсів для цього. Легкий у виконанні.

http://introcs.cs.princeton.edu/java/98simulation/


1
:-) щоб зробити його більш реальним, вам потрібно створити дробовий броунівський рух, і навіть це не зовсім реально, для найбільш реалістичних підроблених ринкових даних вам потрібно мати також фрактальний часовий вимір ... голки, щоб сказати це стає досить складним. Краще просто купуйте реальні дані ринку ...
lukebuehler

Це також не допомагає, що рух акцій не є нормальним :)
Павло Мілованов

3

Я використовую eodData.com. Його досить пристойні ціни. За 30 доларів на місяць ви отримуєте 30 днів 1,5 та 60 хвилин барів для всіх бірж США та 1 рік даних EOD для більшості інших.


2

Я б сканував finance.google.com (для пропозицій) - або finance.yahoo.com.

Обидва вони повернуть HTML-сторінки для більшості обмінів по всьому світу, включаючи історичні. Тоді, це просто питання розбору HTML, щоб витягти те, що вам потрібно.

Я робив це в минулому, з великим успіхом. Крім того, якщо ви не заперечуєте з використанням Perl - на CPAN є кілька модулів, які зробили цю роботу за вас - тобто витяг цитат з Google / Yahoo.

Докладніше див. Історія цитування


+1 для ворогів з модулями Perl, вони отримують дані дуже просто
Меттью Блокування


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.