数据库与文件的股票市场过滤器



我有股市数据。每个文件都以公司命名,并包含基本属性,如OHLCV, Date等。

我想创建一个扫描仪,例如:

Get a list of stock where open>50,,market_cap祝辞100000

这将返回指定给定条件的公司列表。

现在的问题是:我应该使用database还是将数据保留为csv文件。

查询方法:

我应该做几张表?每个公司一张桌子好吗?我的回答是肯定的,然后我会遵循这个策略,例如,当我想要一份拥有open price>我必须从每个表中查询最新的行。在这种情况下,使用date-wise表不是更好吗?如何决定?

文件

我创建了包含公司部门名称的新文件。因此,每个文件都以一个扇区命名,例如IT。文件IT.csv将包含属于该部门的所有公司的名称。

我必须实现上述两种情况,但我不能决定更好的方法。我应该考虑哪些因素?

对于这种类型的查询,最好有一个数据库,否则每次要提取数据时都要编写文件爬虫。

如果您将所有项目放在一个表中,并为公司添加一列,您将具有运行全局查询的优势(例如,查找连续3天为正的公司,查找在某一天排名前10位的公司,等等)。

您还可以考虑向表中添加哪些索引以加快提取速度。

您的数据似乎非常适合使用关系数据库。它具有预定义的行和列,并且数据不是二进制格式的。

我不确定什么是"扫描仪"。但是您给出的示例查询非常适合SQL语句。

建模的常用方法是将属于逻辑实体类型的数据存储在单个表中。在您的例子中,您可能有:

stock_events
-------------
id (primary key)
event_date (datetime)
stock_symbol (string)
open_price (decimal)
market_cap (decimal)
....

你的查询可以写成:

select * 
from stock_events
where open_price > 50
and   market_cap > 50000
and event_date = ?

您的挑战将变成索引创建—您的查询可能是临时的,因此很难提前优化。您还可能需要将一只股票与自己或其他股票进行长期比较的查询。

为此,您需要学习相当数量的SQL。

另一种方法是使用R或Python的大数据工具(pandas)等工具来分析这些数据。这样做的好处是,你可以从很多已经存在的例子(例如Kaggle)中学习,但是学习曲线可能会很陡。

相关内容

  • 没有找到相关文章

最新更新