gpt4 book ai didi

sql - 用于组织历史股票数据的数据库模式

转载 作者:IT王子 更新时间:2023-10-29 06:17:22 24 4
gpt4 key购买 nike

我正在创建一个数据库模式来存储历史股票数据。我目前有一个架构,如下所示。

我的要求是存储多个股票代码的“条数据”(日期、开盘价、高价、低价、收盘量)。每个符号也可能有多个时间范围(例如 Google Weekly bars 和 Google Daily bars)。

我当前的模式将大部分数据放在 OHLCV 表中。我远不是数据库专家,我很好奇这是否太天真了。非常欢迎建设性的意见。

CREATE TABLE Exchange (exchange TEXT UNIQUE NOT NULL);

CREATE TABLE Symbol (symbol TEXT UNIQUE NOT NULL, exchangeID INTEGER NOT NULL);

CREATE TABLE Timeframe (timeframe TEXT NOT NULL, symbolID INTEGER NOT NULL);

CREATE TABLE OHLCV (date TEXT NOT NULL CHECK (date LIKE '____-__-__ __:__:__'),
open REAL NOT NULL,
high REAL NOT NULL,
low REAL NOT NULL,
close REAL NOT NULL,
volume INTEGER NOT NULL,
timeframeID INTEGER NOT NULL);

这意味着我的查询目前是这样的:查找给定交易品种/时间范围的时间范围 ID,然后在时间范围 ID 匹配的 OHLCV 表上进行选择。

最佳答案

我们试图找到一种适合长期存储大量数据的数据库结构。下面的解决方案是 6 年多经验的结果。它现在可以完美地用于我们的定量分析。

我们已经能够在 SQL Server 中使用此方案存储数百 GB 的日内和每日数据:

 Symbol -  char 6
Date - date
Time - time
Open - decimal 18, 4
High - decimal 18, 4
Low - decimal 18, 4
Close - decimal 18, 4
Volume - int

所有交易工具都存储在一个表中。我们还有一个关于符号、日期和时间列的聚集索引。

对于每日数据,我们有一个单独的表,不使用时间列。卷数据类型也是 bigint 而不是 int。

性能?我们可以在几毫秒内从服务器中获取数据。请记住,数据库大小接近 1 TB。

我们从 Kibot 网站购买了所有历史市场数据:http://www.kibot.com/

关于sql - 用于组织历史股票数据的数据库模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1523576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com