历史股票数据来源

rme*_*dor 238 simulation finance artificial-intelligence stocks

我正在尝试制作股票市场模拟器(可能最终会成长为预测AI),但我无法找到要使用的数据.我正在寻找一个(希望是免费的)历史股市数据来源.

理想情况下,它将是一个非常细粒度(第二或每分钟间隔)的数据集,其中包含纳斯达克和纽约证券交易所(如果我喜欢冒险)的每个符号的价格和数量.有谁知道这些信息的来源?

我发现这个问题表明雅虎提供了CSV格式的历史数据,但我一直无法找到如何粗略地检查链接的网站.

我也不喜欢在CSV文件中逐个下载数据的想法...我想雅虎会在最初的几千个请求之后感到不安并关闭我.

我还发现了另一个让我觉得自己中了大奖的问题,但不幸的是,OpenTick网站似乎已经关门了......太糟糕了,因为我觉得它们正是我想要的.

我也可以使用每天只打开/关闭价格和每个符号的数量的数据,但如果我能得到它,我更喜欢所有的数据.还有其他建议吗?

luk*_*ler 223

让我加上我的2美分,这是我的工作,为对冲基金获得良好和干净的数据,我见过很多数据源和历史数据提供商.这主要是关于美国股票数据.

首先,如果你有一些钱不打扰从雅虎下载数据,直接从CSI数据获得日终数据,这是雅虎获得他们的EOD数据以及AFAIK.他们有一个API,您可以在其中将数据提取到您想要的任何格式.我认为每年的数据订阅价格只有100美元.

从免费服务下载数据的主要问题是你只能获得仍然存在的股票,这就是所谓的生存偏差,如果你看看很多股票就会给你错误的结果,因为你只会包含那些让它成功的股票远远没有被除名的那些.

为了解决一些日内数据,我会研究IQFeed,它们提供了几个API来提取历史数据,尽管它们主要是实时源的装备.但是这里有很多选择,一些经纪人甚至通过他们的API提供历史数据下载,所以只需选择你的毒药.

但通常所有这些数据都不是很干净,一旦你真的开始测试,你会发现某些股票缺失或者显示为两个不同的符号,或者股票拆分没有得到适当考虑等等.然后你意识到这一点股息数据也是必需的,因此您开始在圈子中运行,从100个不同的数据源修补数据等等.因此,从"折扣"数据源开始,但是只要您运行更全面的回溯测试,您可能会遇到问题,具体取决于您的操作.如果你只是看看,标准普尔500股票,这不会是一个问题,而且"便宜"的日内交易将会有所作为.

你找不到的是免费的日内数据.我的意思是你可能会找到一些例子,我确信有5年的MSFT滴答数据会浮动,但这不会让你走得太远.

然后,如果你需要真正的东西(二级订单,所有滴答,因为它们在所有交易所发生),一个"负担得起",但很好的选择是Nanex.它们实际上会向您发送带有数TB数据的驱动器.如果我记得每年约3万美元4K的数据.相信我,一旦你了解获得好的日内数据是多么困难,你根本不会认为这是非常多的钱.

不劝阻你,但要获得良好的数据是很难的,所以很难在事实上,许多对冲基金和银行花费几十万美元一个月拿到他们可以信任的数据.再一次,你可以从某个地方开始,然后从那里开始,但在上下文中看到它有点好.


编辑:上面的答案来自我自己的经验.这篇来自Caltech的关于可用数据馈送的文章将提供更多见解,特别推荐QuantQuote.

  • +1用于指出3个级别的数据(hist,intra,level II)以及对其他人的答案(完整性,清洁度,存储大小,数据集......)的深刻见解 (18认同)
  • CSI很棒但是,仅供参考,退市股票现在是一项优质服务,不再包括在基本套餐中.仅供参考. (2认同)

小智 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
Run Code Online (Sandbox Code Playgroud)

完整的参数列表:

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
Run Code Online (Sandbox Code Playgroud)

  • 从雅虎或任何在线服务获取数据的一个大问题是,您没有获得退市股票,因此您将很快陷入生存偏见.更好地了解Eric H.或我的建议,直接去CSI. (9认同)
  • This data feed is no more. (2认同)

Eri*_* H. 45

我知道你想要"免费",但如果我是你,我会认真考虑从csidata.com获取大约300美元/年的数据.

这是雅虎用来提供数据的方式.

它带有一个不错的API,数据(据我所知)非常干净.

当您订阅时,您将获得10年的历史记录,之后每晚都会进行更新.

他们还为你处理各种令人讨厌的事情,比如分裂和分红.如果你还没有发现数据清理的快乐,你就不会意识到你需要多少,直到你的ATS(自动交易系统)第一次认为某些股票真的很便宜,只是因为它分裂2 :1,你没注意到.

  • CSI很棒但是,仅供参考,退市股票现在是一项优质服务,不再包括在基本套餐中.仅供参考. (2认同)

mat*_*t b 16

纳斯达克和纽约证券交易所在第二或每分钟间隔的每个符号的数据集将是巨大的.

假设两家交易所共有4000家公司上市(由于纳斯达克上市公司超过3200家,这可能是非常低的一面).对于第二个时间间隔的数据,假设一天中有6.5个交易小时,那么每个公司每天可以获得23400个数据点,或者一天中总共有93,600,000个数据点.假设一年有200个交易日,那一年只有18,720,000,000个数据点.

也许你想先从较小的一套开始?

  • 我的假设是大多数公司不会每秒都进行交易,因此数据点的数量会明显减少.也许这是一个糟糕的假设.仍然,我预测每年10英镑的数量级... (2认同)
  • 如果你想要整个事情,例如,所有交易所的二级报价等等,一年内以一个suuuuper压缩格式(每个交易日大约5GB)一些TB.如果你只存储微小的数据真的很少,10年内所有股票大约10GB ... (2认同)

Kir*_*ril 16

简介:
从雅虎,您可以获得EOD(一天结束)历史价格或实时价格.EOD价格下载非常简单.有关如何获取数据和C#代码示例的说明,请参阅我的博客.

我正在编写一个实时数据馈送"引擎",可以将实时价格下载并存储在数据库中.该引擎最初将能够从Yahoo和Interactive Brokers下载历史价格,它将能够将数据存储在您选择的数据库中:MS SQL,MySQL,SQLite等.它是开源的,但我会发布更多当我接近发布它时,我的博客上的信息(在几天内).

另一个选择是eclipse trader ...它允许您以低至1分钟的粒度记录历史数据,并将价格本地存储在文本文件中.它基本上会从雅虎下载实时数据,延迟时间为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();
    }
}
Run Code Online (Sandbox Code Playgroud)

数据库:
在数据库方面,我使用OleDb连接到CSV文件来填充a DataSet然后我通过DataSet它更新我的实际数据库,它基本上可以将从Yahoo返回的CSV文件中的所有列直接匹配到您的数据库(如果您的数据库不支持批量插入CSV数据,例如SQLite).否则,插入数据是一行的......只需将CSV批量插入数据库即可.

您可以在此处阅读有关网址格式的更多信息:http://www.gummy-stuff.org/Yahoo-data.htm


Nav*_*avi 9

纳斯达克为每个符号提供10年的历史EOD数据

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

您可以自动执行下载此数据的过程.


use*_*171 8

对于幸存者偏向免费数据,我发现唯一可靠的来源是QuantQuote(http://quantquote.com)

数据以分钟,秒或刻度分辨率显示,链接到其历史股票数据.

上面提到了kibot的建议.我会做一个快速谷歌搜索从他们在购买前,你会发现很多帖子这样有关kibot数据质量问题的警告.它也说明了他们所谓的生存偏见自由sp500在14年内只有570个符号.这几乎是不可能的,每1-2个符号SP500变化月份 ....

  • kibot只有3个免费符号.其余的都要支付!他正在做广告 (3认同)

Ala*_*lan 7

不幸的是,很难获得免费的历史股票数据.既然opentick死了,我也不知道任何其他提供者.

在之前的一生中,我为一个拥有自动交易系统的对冲基金工作,我们大量使用了历史数据.

我们使用TickData作为源代码.他们的价格合理,数据有次低分辨率.


boe*_*100 6

我们从Kibot.com购买了12年的日内数据,并对质量非常满意.

至于存储要求:所有美国股票(超过8000个符号)的12年1分钟数据约为100GB.

通过滴答滴答数据情况略有不同.如果您仅记录时间和销售额,那么对于所有美国股票而言,这将是每月约30GB的数据.如果您想要将出价/询价更改与交易一起存储,您每月可以预期大约150GB.

我希望这有帮助.如果还有什么我可以帮到您,请告诉我.

  • @Tomasz哈哈,你的评论是我的一天:D (2认同)

Noa*_*oam 6

让我添加一个我刚发现的来源,在这里找到.

它有许多csv格式的历史股票数据,由Andy Pavlo收集,他的主页是"Carnegie Mellon大学计算机科学系助理教授".


Tom*_*ers 5

现在,Mathematica还可以访问当前和历史股票价格 ,如果您碰巧有副本,请参阅 http://reference.wolfram.com/mathematica/ref/FinancialData.html.

  • 最小的时间步长是"天" (5认同)