Próbuję stworzyć symulator giełdy (być może w końcu przerodzi się w przewidującą sztuczną inteligencję), ale mam problem ze znalezieniem danych do wykorzystania. Szukam (mam nadzieję, że za darmo) źródła historycznych danych giełdowych.
Idealnie byłby to bardzo drobiazgowy (drugi lub minutowy) zestaw danych z ceną i wolumenem każdego symbolu na NASDAQ i NYSE (i być może innych, jeśli mam ochotę na przygodę). Czy ktoś zna źródło takich informacji?
Znalazłem to pytanie, które wskazuje, że Yahoo oferuje dane historyczne w formacie CSV, ale nie byłem w stanie dowiedzieć się, jak je uzyskać w pobieżnej analizie połączonej witryny.
Nie podoba mi się również pomysł pobierania fragmentarycznych danych z plików CSV ... Wyobrażam sobie, że Yahoo byłby zdenerwowany i wyłączałby mnie po pierwszych kilku tysiącach żądań.
Odkryłem również inne pytanie, które sprawiło, że pomyślałem, że trafiłem w dziesiątkę, ale niestety strona OpenTick wydaje się być zamknięta ... szkoda, ponieważ uważam, że były dokładnie tym, czego chciałem.
Mógłbym również codziennie używać danych, które po prostu otwierają / zamykają cenę i objętość każdego symbolu, ale wolę wszystkie dane, jeśli mogę je zdobyć. Jakieś inne sugestie?
Odpowiedzi:
Pozwólcie, że dodam moje 2 centy, moim zadaniem jest pozyskiwanie dobrych i czystych danych dla funduszu hedgingowego, widziałem całkiem sporo źródeł danych i dostawców danych historycznych. Dotyczy to głównie danych o amerykańskich akcjach.
Na początek, jeśli masz trochę pieniędzy, nie przejmuj się pobieraniem danych z Yahoo, pobierz dane na koniec dnia bezpośrednio z danych CSI , to tutaj Yahoo pobiera również swoje dane EOD AFAIK. Posiadają interfejs API, w którym można wyodrębnić dane do dowolnego formatu. Myślę, że roczna subskrypcja danych to kilka 100 dolarów.
Główny problem z pobieraniem danych z bezpłatnej usługi polega na tym, że dostajesz tylko zapasy, które nadal istnieją, nazywa się to uprzedzeniem przetrwania i może dać złe wyniki, jeśli spojrzysz na wiele zapasów, ponieważ uwzględnisz tylko te, które sprawiły, że tak daleko, a nie te, które zostały usunięte z listy.
Do zabawy z niektórymi danymi śróddziennymi zajrzałbym do IQFeed , zapewniają one kilka interfejsów API do wydobywania danych historycznych, chociaż są one głównie zestawem do kanałów w czasie rzeczywistym. Ale tutaj jest sporo opcji, niektórzy brokerzy zapewniają nawet pobieranie danych historycznych za pośrednictwem swoich interfejsów API, więc po prostu wybierz swoją truciznę.
ALE zwykle wszystkie te dane nie są bardzo czyste, gdy naprawdę zaczniesz testowanie z powrotem, zobaczysz, że niektórych zapasów brakuje lub pojawiają się jako dwa różne symbole, lub podziały zapasów nie są odpowiednio rozliczane itp. I wtedy zdajesz sobie sprawę, że historyczne dane dywidendy są również potrzebne, więc zaczynasz biegać w kręgach, łatając dane ze 100 różnych źródeł danych i tak dalej. Zacznijmy od pliku danych z rabatem, ale jak tylko przeprowadzisz bardziej kompleksowe testy wsteczne, możesz napotkać problemy w zależności od tego, co robisz. Jeśli spojrzymy na, powiedzmy, akcje S&P 500, nie będzie to jednak problemem i zrobi to „tania” transmisja śróddzienna.
To, czego nie znajdziesz, to bezpłatne dane śróddzienne. Mam na myśli, że możesz znaleźć kilka przykładów, jestem pewien, że pływa około 5 lat danych tykania MSFT, ale to nie zaprowadzi cię daleko.
Następnie, jeśli potrzebujesz prawdziwych rzeczy (księga zamówień poziomu II, wszystkie tiki, jakie miały miejsce na wszystkich giełdach), jeden „niedrogi”, ale doskonałą opcją jest Nanex . Dostarczą ci dysk z terabajtami danych. Jeśli dobrze pamiętam, to około 3k-4K $ danych rocznie. Ale zaufaj mi, gdy zrozumiesz, jak trudno jest uzyskać dobre dane śróddzienne, nie będziesz myśleć, że to w ogóle bardzo dużo pieniędzy.
Trudno nie zniechęcić, ale zdobyć dobre dane, tak trudne, że wiele funduszy hedgingowych i banków wydaje setki tysięcy dolarów miesięcznie, aby uzyskać dane, którym mogą zaufać. Znowu możesz zacząć gdzieś, a potem stamtąd iść, ale dobrze jest zobaczyć to trochę w kontekście.
Edycja: Powyższa odpowiedź pochodzi z mojego własnego doświadczenia. Ten artykuł Caltech na temat dostępnych plików danych da więcej informacji, a szczególnie zaleca QuantQuote .
źródło
ODPOWIEDŹ JUŻ NIE JEST DŁUŻSZA, JEŻELI WYKONANO PASZĘ YAHOO
Stosując powyższe podejście CSV Yahoo, możesz również uzyskać dane historyczne! Możesz odtworzyć następujący przykład:
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
Głównie:
Pełna lista parametrów:
źródło
Wiem, że chciałeś „za darmo”, ale poważnie zastanowiłbym się nad uzyskaniem danych z csidata.com za około 300 USD rocznie, gdybym był tobą.
Właśnie tego używa Yahoo do dostarczania swoich danych.
Ma przyzwoity interfejs API, a dane są (o ile wiem) bardzo czyste.
Otrzymujesz 10 lat historii, kiedy subskrybujesz, a następnie co wieczór aktualizujesz.
Zajmują się także dla Ciebie wszelkimi nieprzyjemnymi rzeczami, takimi jak podziały i dywidendy. Jeśli jeszcze nie odkryłeś radości związanej z czyszczeniem danych, nie zdasz sobie sprawy, ile tego potrzebujesz, dopóki pierwszy raz ATS (Automated Trading System) nie uzna, że niektóre zapasy są naprawdę naprawdę tanie, tylko dlatego, że dzielą 2 : 1 i nie zauważyłeś.
źródło
Zbiór danych każdego symbolu na NASDAQ i NYSE w odstępie sekundowym lub minutowym będzie ogromny .
Załóżmy, że na obu giełdach jest w sumie 4000 firm (prawdopodobnie jest to bardzo niska strona, ponieważ na NASDAQ jest zarejestrowanych ponad 3200 firm ). W przypadku danych w drugim przedziale, przy założeniu, że istnieje 6,5 godziny handlu dziennie, co dałoby 23400 punktów danych dziennie na firmę lub łącznie około 93.600.000 punktów danych za ten jeden dzień. Zakładając 200 dni handlowych w ciągu roku, to około 18 720 000 000 punktów danych w ciągu zaledwie jednego roku.
Może najpierw chcesz zacząć od mniejszego zestawu?
źródło
Wprowadzenie:
z yahoo można uzyskać historyczne ceny EOD (na koniec dnia) lub ceny w czasie rzeczywistym. Ceny EOD są niezwykle proste do pobrania. Zobacz mój blog, aby uzyskać wyjaśnienia na temat uzyskiwania danych i przykłady kodu C #.
Jestem w trakcie pisania „silnika” kanału danych w czasie rzeczywistym, który pobiera i przechowuje ceny w czasie rzeczywistym w bazie danych. Silnik początkowo będzie mógł pobierać historyczne ceny od Yahoo i Interactive Brokers i będzie mógł przechowywać dane w wybranej przez Ciebie bazie danych: MS SQL, MySQL, SQLite itp. Jest to oprogramowanie typu open source, ale opublikuję więcej informacje na moim blogu, gdy zbliżę się do wydania (w ciągu kilku dni).
Inną opcją jest trader eclipse ... pozwala on rejestrować dane historyczne z ziarnistością już od 1 minuty i przechowuje ceny lokalnie w pliku tekstowym. Zasadniczo pobiera dane w czasie rzeczywistym z Yahoo z 15-minutowym opóźnieniem. Ponieważ chciałem bardziej niezawodnego rozwiązania i pracuję nad dużym szkolnym projektem, do którego potrzebujemy danych, postanowiłem napisać własny silnik przesyłania danych (o którym wspomniałem powyżej).
Przykładowy kod:
Oto przykładowy kod C #, który pokazuje, jak pobierać dane w czasie rzeczywistym:
Baza danych:
po stronie bazy danych używam
OleDb
połączenia z plikiem CSV w celu wypełnienia a,DataSet
a następnie aktualizuję moją rzeczywistą bazę danych za pomocąDataSet
, w zasadzie umożliwia dopasowanie wszystkich kolumn z pliku CSV zwróconego z Yahoo bezpośrednio do bazy danych ( jeśli twoja baza danych nie obsługuje wstawiania wsadowego danych CSV, np. SQLite). W przeciwnym razie wstawianie danych jest jedno-liniowe ... wystarczy wsadowo wstawić CSV do bazy danych.Możesz przeczytać więcej o formatowaniu adresu URL tutaj: http://www.gummy-stuff.org/Yahoo-data.htm
źródło
NASDAQ oferuje 10 lat historycznych danych EOD dla każdego symbolu
http://www.nasdaq.com/aspx/historical_quotes.aspx?symbol=AAPL&selected=AAPL
Możesz zautomatyzować proces pobierania tych danych.
źródło
Jeśli chodzi o dane wolne od uprzedzeń, jedynym wiarygodnym źródłem, które znalazłem, jest QuantQuote ( http://quantquote.com )
Dane są podawane w rozdzielczości minutowej, sekundowej lub podziałki, link do ich historycznych danych giełdowych .
Powyżej była sugestia dla kibota. Zrobiłbym szybkie wyszukiwanie w Google przed zakupem od nich, znajdziesz wiele takich postów z ostrzeżeniami o problemach z jakością danych Kibot. Mówi także, że ich przypuszczalnie przeżycie wolne od sp500 ma tylko 570 symboli przez 14 lat. To prawie niemożliwe, sp500 zmienia się o 1-2 symbole miesięcznie ....
źródło
Niestety trudno jest uzyskać historyczne dane giełdowe, które są bezpłatne. Teraz, kiedy opentick nie żyje, nie znam żadnego innego dostawcy.
W poprzednim życiu pracowałem dla funduszu hedgingowego, który miał zautomatyzowany system transakcyjny, i obficie korzystaliśmy z danych historycznych.
Jako źródła wykorzystaliśmy TickData. Ich ceny były rozsądne, a dane miały rozdzielczość poniżej sekundy.
źródło
Kupiliśmy 12 lat danych w ciągu dnia z Kibot.com i jesteśmy bardzo zadowoleni z jakości.
Jeśli chodzi o wymagania dotyczące przechowywania: 12 lat 1-minutowych danych dla wszystkich akcji amerykańskich (ponad 8000 symboli) wynosi około 100 GB.
Z danymi tykającymi po tykaniu sytuacja jest trochę inna. Jeśli rejestrujesz tylko czas i sprzedaż, będzie to około 30 GB danych miesięcznie dla wszystkich akcji w USA. Jeśli chcesz przechowywać zmiany ofert / zapytań wraz z transakcjami, możesz spodziewać się około 150 GB miesięcznie.
Mam nadzieję, że to pomoże. Daj mi znać, jeśli mogę jeszcze w czymś pomóc.
źródło
Pozwól mi dodać źródło, które właśnie odkryłem, które znalazłem tutaj .
Ma wiele historycznych danych giełdowych w formacie csv i został zebrany przez Andy Pavlo, który według jego strony głównej jest „profesorem nadzwyczajnym na Wydziale Informatyki Uniwersytetu Carnegie Mellon”.
źródło
Obecnie Mathematica oferuje również dostęp do bieżących i historycznych cen akcji, patrz http://reference.wolfram.com/mathematica/ref/FinancialData.html , jeśli zdarzy się, że masz jego kopię.
źródło
day
Możesz użyć yahoo, aby uzyskać codzienne dane (znacznie łatwiejszy do zarządzania zestaw danych), ale musisz uporządkować adresy URL. Zobacz ten link . Nie wysyłasz wielu małych żądań, a mniej dużych. Wiele darmowego oprogramowania korzysta z tego, więc nie powinny cię zamykać.
EDYCJA: Ten facet to robi, może rzucisz okiem na wywołania jego oprogramowania.
źródło
Yahoo to najprostsza opcja uzyskania wstępnych bezpłatnych danych. Link opisany w odpowiedzi eckesicle może być łatwo wykorzystany w kodzie Pythona, ale najpierw potrzebujesz wszystkich pasków. W tym przykładzie użyłbym NYSE, ale można go również użyć do różnych wymian.
Użyłem tej strony wiki do pobrania wszystkich pasków firmowych za pomocą następującego skryptu (nie jestem bardzo utalentowanym Pythonistą, przepraszam, jeśli ten kod nie jest zbyt wydajny):
Do pobrania każdego z pasków użyłem innego dość podobnego skryptu:
Zauważ, że główną wadą tej metody jest to, że różne dane są dostępne dla różnych firm - Firmy, które nie mają danych w wymaganych terminach (nowo wymienione) otrzymają stronę 404.
Pamiętaj również, że ta metoda jest przydatna tylko w przypadku wstępnych danych - jeśli naprawdę chcesz przetestować swój algorytm, powinieneś zapłacić trochę i skorzystać z zaufanego dostawcy danych, takiego jak CSIData lub inni
źródło
Dlaczego nie modelować fałszywej giełdy za pomocą Brownian Motion?
Dużo zasobów do tego. Łatwy do wdrożenia.
http://introcs.cs.princeton.edu/java/98simulation/
źródło
Korzystam z eodData.com. Jest całkiem przyzwoity cenowo. Za 30 dolarów miesięcznie dostajesz 30 dni 1,5 i 60 minutowych pasków dla wszystkich amerykańskich giełd i 1 rok danych EOD dla większości innych.
źródło
Zindeksowałbym finanse.google.com (dla cytatów) - lub finanse.yahoo.com.
Oba zwrócą strony HTML dla większości wymian na całym świecie, w tym historycznych. Następnie wystarczy przeanalizować kod HTML, aby wyodrębnić to, czego potrzebujesz.
Robiłem to w przeszłości, z wielkim sukcesem. Alternatywnie, jeśli nie masz nic przeciwko korzystaniu z Perla - istnieje kilka modułów CPAN, które wykonały tę pracę za Ciebie - tj. Wyodrębnianie ofert z Google / Yahoo.
Aby uzyskać więcej informacji, zobacz Historia wyceny
źródło
Mój poprzedni projekt zamierzał wykorzystywać dane do pobrania z EODData .
źródło
Spójrz na API Mergent Historical Securities Data - http://www.mergent.com/servius
źródło