1.量化第一步,搭建属于自己的金融数据库!

数据是一切量化研究的前提。 做量化没有数据,就相当于做饭时没有食材。

很多时候,我们需要从大量的数据中寻找规律,并从中开发出策略。如果我们每次使用的时候,都从网上去找数据,一方面效率低下,另一方面短时间大量的数据请求也很有可能招致封禁。

因此,搭建属于自己的金融数据库,势在必行!

很多人没有经验,会不自觉地产生畏难情绪,其实这个事情远没有大家想象的那么复杂。在这一系列文章中,我会一步一步地教会大家如何搭建好属于自己的金融数据库

这个过程中可能有些技能你从来没有接触过,比如编程。但是没关系,我之后会将过程中所有需要的代码打包提供出来,也可以提供一些咨询服务。我也在准备录制一系列视频教程,方便零基础的朋友更直观地学习每一个步骤。

接下来我先简单帮大家串一下,搭建自用金融数据库的核心步骤有哪些。

一、部署数据库服务

在这里插入图片描述

我们的数据需要有一个载体,就像储存水的时候需要一个容器一样。

根据老Q的经验,上手成本最低的方法主要有两类,一是用本地文件的形式来存储数据,二是使用关系型数据库来存储数据。

通过本地文件来进行大数据研究是一种效率非常低下的形式,数据的更新维护成本也相对较高,因此我比较推荐第二种。

那么部署一个关系型数据库需要什么条件呢?首先,我们需要有一台设备, 这个设备可以是你的个人电脑,可以是一台服务器,也可以是一台支持Docker服务的NAS。

这些方案都有什么优劣呢?

方案优势劣势
个人电脑成本较低,可以直接使用平时做量化研究的电脑来部署数据库。存储空间可能受限,且因为个人电脑一般不会随时随地开机并联网,因此数据并不是随时随地可用的。
服务器理论上云服务商的服务器甚至是数据库服务是最稳健的选择,平台稳定、工具完善。成本较高,访问速度受限于自己开通的服务器带宽以及家中网络的带宽。
NAS空间大、成本低。24小时运行,只要家中不断电断网,数据随时随地可用。性能一般较差,但大部分情况下也够用了。云服务商提供的数据库服务性能也就那样。
组合使用狡兔三窟,稳健,随时可用。成本高。

我自己的方案是组合使用,我在阿里云服务器、家中的个人服务器和NAS上都部署了数据库,并且配置了主从同步。这样的一个好处是我把同一份数据在三个地方存储了,一般来说总有一个地方可以用,同时都出问题的概率比较低。

我平时在家做投研时,主要使用家中的个人服务器,毕竟性能强劲且内网带宽基本不存在什么瓶颈问题。但是如果你是一个零基础的研究者,我建议选择个人电脑或者NAS(强烈推荐) ,两千左右就能买到一台性能还不错的支持Docker的NAS。

在选择了硬件之后,软件方面我建议大家直接选择开源免费的MySQL,群众基础好,文档资源丰富,搭建过程比较简单。

之后的章节里,我会手把手教大家如何在不同的设备上部署数据库服务。

二、找到可用的数据源

我罗列了一些常用的数据源,大家可以根据自己的实际情况来进行选择。我自己是以tushare和爬虫抓取为主、理杏仁为辅。在之后的章节里我会详细演示如何从这些平台获取数据。

数据源获取方式费用难度维护成本
券商网站爬虫免费
财经网站爬虫免费
tushare接口调用较低较低较低
理杏仁接口调用适中较低较低
量化平台
掘金/聚宽/米筐/优矿……
接口调用一般平台内使用免费,本地获取收费(昂贵)。
(掘金量化可以本地免费使用,但支持的数据有限。)
较低较低
财经数据库
Wind/iFind/iChoice
接口调用
金融终端下载
昂贵较低较低
量化交易工具
QMT/Ptrade
接口调用
终端内使用
券商开户免费,有门槛较低较低
官方统计网站爬虫/下载免费较低

三、创建数据库和数据表

对于初学者来说,想要数据库好用,最核心的地方就是设计好表结构和索引。

比如我们可能会有多个数据库分别存放股票、指数、外汇等资产相关的数据,同时在一个数据库下,我们还会在不同表里存储行情、财务、基本资料、技术指标等数据。

一般来说,我们为了提高数据的使用效率,会把常常一起使用且主键一致的数据放到一张表里,不常一起使用的数据则分开存放,避免冗余的存储和扫描。

这些技术细节还是等后续我们讲到的时候再展开聊,大家看不懂也没关系,我会直接提供好这些常用数据表的创建语句。

四、写入数据并定期更新

在这里插入图片描述

比较理想的情况是在最开始一次性灌入历史所有数据,然后再每天定时更新最新的数据。这种情况需要你有一台电脑能部署一些脚本。

不会编程的朋友也不必发愁,这些我都会逐一讲到,也会将全部脚本打包提供,到时候大家就按照老Q的教程配置好就行。


做完上述这些步骤以后,你就有了属于自己的好用的金融数据库了,接下来就可以愉快地玩耍了!关注后续更新,老Q手把手带你完成量化研究的准备工作!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/146800.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

运行 xxxxApplication 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。

一、问题描述 运行 xxxxApplication 时出错。命令行过长。 通过 JAR 清单或通过类路径文件缩短命令行,然后重新运行。 二、问题分析 在idea中,运行一个springboot项目,在使用大量的库和依赖的时候,会出现报错“命令行过长”&…

你了解system V的ipc底层如何设计的吗?消息队列互相通信的原理是什么呢?是否经常将信号量和信号混淆呢?——问题详解

前言:本节主要讲解消息队列, 信号量的相关知识。 ——博主主要是以能够理解为目的进行讲解, 所以对于接口的使用或者底层原理很少涉及。 主要的讲解思路就是先讨论消息队列的原理, 提一下接口。 然后讲解ipc的设计——这个设计一些…

构建未来企业的理论基石:业务能力建模指南的深度解析与战略实施框架

数字化转型已经成为全球企业的战略焦点,在这个过程中,如何有效地将复杂的业务需求、技术架构和市场变化结合,形成具备长期竞争力的企业能力框架,是企业成败的关键。《业务能力指南》提供了一套经过验证的理论体系,帮助…

【番茄成熟度数据集】12类names

【番茄成熟度数据集】12类 names: [half-ripe, ripe, rotten tomatoes, tomato fully ripe, tomato semi ripe, tomato unripe, tomato_half_ripe, tomato_overripe, tomato_ripe, tomato_rotten, tomato_unripe, unripe] 名称: [半熟的, 成熟的, 腐烂的西红柿, 西红柿完全成熟…

centos7离线安装MySQL8

下载Mysql安装包地址 https://dev.mysql.com/downloads/mysql/解压到指定目录 [rootlocalhost tools]# tar -xvf mysql-8.4.2-1.el7.x86_64.rpm-bundle.tar -C /root/training [rootlocalhost tools]# cd ../training/ [rootlocalhost training]# ll total 1027204 -rw-r--r-…

计算机毕业设计之:基于微信小程序的诗词智能学习系统(源码+文档+解答)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

Spring_AMQP

文章目录 一、SpringAMQP二、SpringAMQP应用2.1、消息发送2.2、消息接收 一、SpringAMQP SpringAMQP是基于RabbitMQ封装的一套模板,并且还利用SpringBoot对其实现了自动装配,使用起来非常方便。 SpringAmqp的官方地址。 SpringAMQP提供了三个功能&am…

PMP--二模--解题--51-60

文章目录 14.敏捷--术语表--完成的定义DoD--它是团队需要满足的所有标准的核对单,只有可交付成果满足该核对单才能视为准备就绪可供客户使用。51、 [单选] 在冲刺计划会议上,Scrum主管重申,如果在冲刺结束时敏捷项目团队正在构建的产品增量没…

Linux:进程(四)

目录 一、进程优先级 二、Linux调度与切换 1.背景 2.进程切换 3.Linux调度 一、进程优先级 背景:在计算机中,软硬件资源是有限的,而进程想要访问某一种资源,就得通过排队来保证访问资源的过程是有条不紊的。 Linux下对优先级…

华为HarmonyOS灵活高效的消息推送服务(Push Kit) - 1 简介

Push Kit(推送服务)是华为提供的消息推送平台,建立了从云端到终端的消息推送通道。所有HarmonyOS应用可通过集成Push Kit,实现向应用实时推送消息,使消息易见,构筑良好的用户关系,提升用户的感知…

Django 请求配置

http请求配置 请求流程 urls.py配置 from first_app import viewsurlpatterns [path(admin/, admin.site.urls),path(test/,views.first_test), ] views.py配置 from django.shortcuts import render,HttpResponse# Create your views here. def first_test(request):prin…

FLUX.1 ComfyUI:专属图像生成助手

FLUX.1 & ComfyUI:专属图像生成助手 FLUX.1 简介 FLUX.1 是由 黑森林实验室 (Black Forest Labs) 开发的一款高性能图像生成模型,分为以下三个版本: FLUX.1-pro (闭源): 最顶级的版本,具备极高的图像生成能力,支…

Python办公自动化教程(001):PDF内容提取

1、Pdfplumber介绍 pdfplumber的github地址: https://github.com/jsvine/pdfplumber/【介绍】:pdfplumber 是一个用于处理 PDF 文件的 Python 第三方库,它提供了一种方便的方式来提取 PDF 文件中的文本、表格和其他信息。【功能】&#xff…

2、StarGAN V2

2、StarGAN V2 StarGAN 论文链接:StarGAN StarGAN V2 论文链接:StarGAN V2 在介绍StarGAN V2之前,我们先对StarGAN有一定的了解,StarGAN V2只是在StarGAN的基础上做出了改进,基本的架构是没有变的,只是将…

SQL - 进阶语法(二)约束

1. SQL约束 约束用于约束表中的数据规则,如若存在违反行为,行为会被约束终止。 • NOT NULL 确保列不能有NULL值 如果添加一行新的数据,不能有null值,否则无法添加 新建表格 CREATE TABLE new_table( ID int NOT NULL, NAME …

尚品汇-自动化部署-Jenkins的安装与环境配置(五十六)

目录: 自动化持续集成 (1)环境准备 (2)初始化 Jenkins 插件和管理员用户 (3)工作流程 (4)配置 Jenkins 构建工具 自动化持续集成 互联网软件的开发和发布&#xf…

zynq中断

通用中断控制器的作用: 它是一个中央处理中心,用于管理来自处理器核心(PS)和外设(PL)的中断。它可以启用、禁用、屏蔽和设置中断源的优先级。 中断处理流程: 所有中断源首先被集中到控制器。控…

AI模型对比研究员创意

大语言模型可以接受训练,完成许多任务。其中最广为人知的用途之一是作为生成式人工智能:当收到提示或被问到问题时,它们可以生成文本作为答复。例如,公开的大语言模型 ChatGPT 可以根据用户输入生成文章、诗歌和其他文本形式。 任…

C语言题目之单身狗2

文章目录 一、题目二、思路三、代码实现 提示:以下是本篇文章正文内容,下面案例可供参考 一、题目 二、思路 第一步 在c语言题目之打印单身狗我们已经讲解了在一组数据中出现一个单身狗的情况,而本道题是出现两个单身狗的情况。根据一个数…

查询 B 站注册时间

有时候想看看自己玩 B 站多少年了,想知道自己什么时候注册的。 此外,据说注销 B 站账户的话也得提供详细注册日期。 ‍ 通过创作中心查看 登录网页版 B 站,点击右上角的创作中心,然后就能看到在 B 站多少天了: ​…