KDB+的IDE使用——A股数据测试

2022-05-25 00:00:00 代码 文件 导入 所示 如图

前言

这一栏中,给大家介绍一个关于kdb+数据库的IDE,叫qStudio和sqlDashboards,这两个属于同一家公司(timestored公司)的软件(当然没有仔细去研究这个软件和kx公司是什么关系,我感觉是两家公司)。这两个软件使用起来非常的方便,因为一直在CMD命令行中来确实很麻烦。

股票走势

一、下载与安装

首先我们进入到timestored的官网http://www.timestored.com/,然后在Products的栏目下下载,具体如图1-1与图1-2所示。


图1-1 timestored的官网
图1-2 qStudio下载

可以把QStudio和sqlDashboards都下载安装上,Windows系统和macOS系统都有,自己下载自己对应的系统即可。安装也非常简单,Windows系统直接点开exe文件,macOS系统直接点击jar文件直接安装,这里就不再赘述了。

二、软件界面介绍

安装完成后界面打开软件后界面如图1-3所示。

图1-3 qStudio软件界面

然后介绍一下图1-3中标注的5个部分都是一些什么作用。

1是常用的工具栏,我们常用的操作都是从这里开始。
2是连接的数据库,也就是我们前面介绍的server端。这里我连接的是本地我打开的5042端口(这里非常重要,一定要仔细看一下前面我介绍的I/O操作,曾经我在这里折腾了一个多周,各种重装系统,请教各类大神,给官方发邮件都没有搞定,后自己看了I/O操作后一行代码搞定了),后面我会着重介绍如何连接的。
3是我们常用的代码窗口,这样就跟在记事本或者我们常用的Visual Studion或者PyCharm相似,就是代码窗口。
4是显示我们执行代码后显示一些结果的子窗口,里面有5个子窗口,分别是执行的结果。
5是显示一些执行的结果,我们可以根据自己的需要来查看。个“结果”是显示当前执行的代码所得到的结果;第二个“图表”是对当前的结果进行一个用图表显示的方式(但不是每个结果都有图来显示);第三个“历史”是记录我们每次执行的一个记录,会标注执行的代码命令,结果和执行是否成功;第四个“程式”是记录一些变量等值;第五个“Console”就和我们CMD窗口是一样的了。

三、使用方式使用方式

1. 数据库的连接

首先单击工具栏的“服务器”,然后单击“添加服务器...”,然后弹出如图1-4的界面。

图1-4 如何添加服务器

这里服务器是连接的服务器方式,是本地,还是远程。我这里使用的就是连接本地的一个服务器,所以直接填的localhost,服务器端口,这个很重要,是你kdb+启动的时候打开的一个对外端口,所以不能乱填。因此我们步先在CMD中来打开一个端口(具体操作可以阅读前面介绍的I/O操作),具体如图1-5所示。

图1-5 CMD中打开一个端口

打开之后我们就可以继续添加服务器了,然后图1-4中的服务器端口就填写您打开的对应的端口,我这里打开的是5042,因此我就填写的5042,后面的Server Type没得选,只有Kdb,Login这里直接空着,因为没有设置账号密码,后面对应的都可以空着。然后单击“Test”来测试一下是否连接成功。成功后的结果如图1-6所示。后单机“添加”按钮。

图1-6 连接测试

这时在我们的服务器树中就会显示刚刚添加的一个服务器。

我们单击右键就可以对添加的服务器进行一个操作,如图1-7所示。

图1-7 服务器的设置

localhost:5042前面有个小插头表示与我们的服务器端断开了连接,当我们去CMD命令行中打开一个服务器端口,单击图1-7中的“Refresh localhost:5042”就可以连接上了,这时这个小插头就消失了。

2. 导入csv文件

我们可以将直接将csv文件导入到qStudio中,这个非常方便,我有一个测试文件,大概1.7G的csv文件,包含了A股的数据,大概将近10000000条记录,是2015年1月1日到2019年1月1日的数据,我之前直接通过从CMD中直接导入是不行的,因为太大了。但是通过qStudio就非常的方便。下面就演示一下如何导入csv文件。

首先单击工具栏的“工具”选项,然后单击“Load CSV Data”,如图1-8所示。

图1-8 导入CSV文件

然后选择自己要导入的文件即可,这里我导入的是一个叫stock.csv的文件。然后单击“Import”按钮,如图1-9所示。

图1-9选择要导入的CSV文件

单击“Import”按钮后,会弹出图1-10所示内容,我们可以在这个窗口进行相应的设置,如字符集,从第几行开始导入,是否包含行的字段名称,分隔符是什么,导入的服务器,导入后表的名称(这里我的名称有问题,不能包含下划线)。然后可以在看到导入的CSV文件的一个预览。后我们单击“Load”按钮就开始导入了。

图1-10导入设置

等待一会儿后就导入成功了,如图1-11所示,单击“确定”即可。可以看到这里一共导入了大概960万条数据。

图1-11导入成功提示

2. 查询操作

首先是执行一行代码我们直接把光标放在所要执行的那一行,然后按CTRL+ENTER就是执行当前光标所在行的代码。当然我们也可以查看工具栏的“查询”来查看如何执行。具体如图1-12所示。

图1-12 查询模式
1 \c 100 300    /调整窗口显示大小
2 Astock        /查看导入的CSV文件
3 \t Astock:`TRADE_DT xdesc Astock
4 Astock_db:select from Astock where (`$1#'string S_INFO_WINDCODE) within `0`9    /选择Astock表中S_INFO_WINDCODE字段中以0-9开头的股票名称
5 \t select "D"$string TRADE_DT,S_DQ_CLOSE from Astock_db where S_INFO_WINDCODE=`930723.CSI    /查询结果就只用了5毫秒
6 Astock_db:select S_INFO_WINDCODE,TRADE_DT,CRNCY_CODE,S_DQ_PRECLOSE,S_DQ_OPEN,S_DQ_HIGH,S_DQ_LOW,S_DQ_CLOSE,S_DQ_CHANGE,S_DQ_PCTCHANGE,S_DQ_VOLUME,S_DQ_AMOUNT from Astock_db
7 select "D"$string TRADE_DT,S_DQ_CLOSE from Astock_db where S_INFO_WINDCODE=`930723.CSI
8 `:/data/Astock_db/ set .Q.en[`:/data;] Astock_db

相关文章