标签: kdb

KDB 小数容差如何影响“in”运算符?

假设我有一个范围:

a: (0.005*til 13) - 0.03
-0.03 -0.025 -0.02 -0.015 -0.01 -0.005 0 0.005 0.01 0.015 0.02 0.025 0.03
Run Code Online (Sandbox Code Playgroud)

当我这样做时,-0.01 in a我得到了0b,这是我没有预料到的。当我这样做时,-0.015 in a我得到了1b

更奇怪的是,当我直接索引时:

-0.01 = a 4
Run Code Online (Sandbox Code Playgroud)

我明白了1b

这里发生了什么事?

kdb

1
推荐指数
1
解决办法
98
查看次数

如何将“第二个”组件与 KDB 中的日期时间隔离?

假设我有一个 KDB 日期时间。如何隔离它的“第二”部分:

2022.02.01D14:30:12.391424612
Run Code Online (Sandbox Code Playgroud)

那会是吗12

我已经尝试过了t.second,但这会返回一个时间而不是整数。

kdb

1
推荐指数
1
解决办法
147
查看次数

kdb+ 导入后无法使用 csv 数据

我正在尝试加载 csv 数据来测试我编写的一些 kdb+ q 函数。将数据加载到表并将一行翻转到字典中后,引用的数据中出现意外的逗号。

我创建了一个非常简单的 csv 文件,名为 testdata.txt:

a,b,c,d,e,f,g
1,2,3,4,5,6,7
10,11,12,13,14,15,16
Run Code Online (Sandbox Code Playgroud)

我像这样加载 csv:

td: ("JJJJJJJ";1#",") 0: `:data/testdata.txt
Run Code Online (Sandbox Code Playgroud)

结果:

a  b  c  d  e  f  g 
--------------------
1  2  3  4  5  6  7 
10 11 12 13 14 15 16

Run Code Online (Sandbox Code Playgroud)

然后我提取一行并将其翻转到字典中:

tdic: flip 1#td
Run Code Online (Sandbox Code Playgroud)

到目前为止,一切都很好:

a| 1
b| 2
c| 3
d| 4
e| 5
f| 6
g| 7

Run Code Online (Sandbox Code Playgroud)

然后我尝试引用字典中的一项,并且在该值之前有一个逗号。

q)tdic `a
,1
Run Code Online (Sandbox Code Playgroud)

由于逗号,我的数据无法用于任何测试目的,至少如果我将其翻转到字典中。我很确定我做错了什么,因为我没有在任何地方看到这个问题的记录。

csv kdb

1
推荐指数
1
解决办法
74
查看次数

从KDB中的混合类型行中选择值

我们用类型C(即字符数组)定义了我们的KDB表.我们插入的第一个值有一个String类型.第二个值的类型为int(即i).现在,当我们尝试使用条件查询KDB时,where like="value"它不起作用.因为我们在一列中有混合类型,我们如何where根据此列查询数据并过滤它(在子句中使用)?

kdb q-lang

0
推荐指数
1
解决办法
745
查看次数

KDB字符串连接与动态查询的符号列表

在此链接中,有一个关于如何包含动态参数的示例.d,在KDB选择查询中:

h: hopen`:myhost01:8012 // open connection
d: 2016.02.15 // define date var
symList: `GBPUSD`EURUSD
h raze "select from MarketDepth where date=", string d, ", sym in `GBPUSD`EURUSD" // run query with parameter d
Run Code Online (Sandbox Code Playgroud)

d是类型date,并且易于字符串连接以生成动态查询.

如果我想symList通过转换为字符串添加为动态参数:

raze "select from MarketDepth where date=", string d, ", sym in ", string symList 
Run Code Online (Sandbox Code Playgroud)

连接的字符串变为:select from MarketDepth where date=2016.02.15, sym in GBPUSDEURUSD,换句话说,字符串连接会丢失反引号,因此查询不会运行.我怎么解决这个问题?

pS:我知道功能查询但是在失败2小时后,我已经放弃了.

select kdb q-lang

0
推荐指数
1
解决办法
4440
查看次数

搜索有*的字符串

我有一个包含符号的表*.

q)sl:([] s:(`$"g*g";`$"b*l";`$"bx"))
q)sl
s
---
g*g
b*l
bx
Run Code Online (Sandbox Code Playgroud)

如何在搜索时转义*(通配符号),我想搜索包含*普通字符的所有符号?

例如,这个返回包含'b'的两行,我只想让它返回'b*l'

q)select from sl where s like "b*"
s
---
b*l
bx
Run Code Online (Sandbox Code Playgroud)

kdb

0
推荐指数
1
解决办法
101
查看次数

KDB +:如何使用不同类型的另一个值更新表中的值

metarelevantOverrides如下:

security j
startDate d
endDate d
dataItem s
val f
Run Code Online (Sandbox Code Playgroud)

我有一个更新查询:

 relevantOverrides:update val:163390j from relevantOverrides where security = 18767
Run Code Online (Sandbox Code Playgroud)

val列有一个float类型,但我需要将更新后的值作为整数插入.

types kdb

0
推荐指数
1
解决办法
352
查看次数

KDB:如何将DateTime转换为格式化字符串?

我想在KDB中创建一个函数,它可以根据用户输入的字符串格式将datetime对象转换为字符串.有没有办法在KDB中这样做?

在Python中,它将是这样的:

format = "%m-%d-%Y_%H%M%S"
def f(format, dt):
  return dt.strftime(format)
Run Code Online (Sandbox Code Playgroud)

string format datetime kdb

0
推荐指数
1
解决办法
224
查看次数

检查给定日期是否是该月的最后一天

假设我有一个给定的日期d:

d:2019.02.20
Run Code Online (Sandbox Code Playgroud)

如何写一个函数f,从而fTrue,如果d是这个月的最后一天,False否则?

例:

f[d]             / Should return 0b
f[2019.02.28]    / Should return 1b
f[2019.01.31]    / Should return 1b
Run Code Online (Sandbox Code Playgroud)

kdb

0
推荐指数
1
解决办法
135
查看次数

在选择查询中,根据q kdb中的if -else if条件设置列值

我们有一个表t:

t:([] sym:`GOOG`IBM`APPL; px:10 20 30; size:1000 2000 3000)
Run Code Online (Sandbox Code Playgroud)

现在,我们要根据函数中提供的条件选择在输出中分配一列。

{[m]select sym, px, size, eb:?[`ab=m;`cd;`ef] from t where size>1000}[`ab] / This works fine providing proper value to eb in output(if/else)
Run Code Online (Sandbox Code Playgroud)

但是我的要求是基于(if / else if)将eb的值设置如下,尝试了?,$,但是没有用

{[m]select sym, px, size, eb:?[`ab=m;`cd;`yz=m;`ef] from t where size>1000}[`ab] / It fails with type error 
Run Code Online (Sandbox Code Playgroud)

要求(须藤代码):

if (m==ab) { return cd};
else if (m==yz) {return ef};
Run Code Online (Sandbox Code Playgroud)

kdb

0
推荐指数
1
解决办法
304
查看次数

标签 统计

kdb ×10

q-lang ×2

csv ×1

datetime ×1

format ×1

select ×1

string ×1

types ×1