可以通过dolphindb中的format(X, format)函数把指定格式应用到给定对象。例如创建一个这样的表: t = table(1..100 as id, (1..100 + 2018.01.01) as date, rand(100.0, 100) as price, rand(10000, 100) as qty) 可以通过format对输出的内容进行格式转换: select id, date.format("MM/dd/yyyy") as date, price.format...
回答于 2021-06-24 15:09
交易回测在DolphinDB中的实现,可以参考:交易回测系列-技术信号回测上述案例可以通过下面的函数实现: defg maxDrawDown(price){ return max(1.0 - price\price.cummax()) } tb = table(rand(1 2 3 , 10) as id, rand(1.5, 10) as price) select maxDrawDown(price) as group_max_drawdown from tb group by i...
回答于 2021-06-24 14:59
上述需求的python的示例代码: import dolphindb as ddb import pandas as pd from threading import Event s = ddb.session() s.enableStreaming(8255) df_temp = pd.DataFrame(columns=['time', 'sym', 'price', 'id']) def handler(lst): global df_temp if len(lst): print("Receive data from ddb...
回答于 2021-06-24 14:54
可以结合DolphinDB内置的分区表磁盘空间统计函数,自定义一个查询某个分区表某一天数据所占的硬盘空间大小的函数: dbName = "compoDB" tableName = "pt" replicationFactor =2 day = 2017.08.08 def getDiskUsageOneDay(dbName, tableName, replicationFactor, day){ diskUsage = exec sum(diskUsage) from pnodeRun(ge...
回答于 2021-06-24 14:33
DolphinDB的流数据高可用采用的是Raft协议实现的,在资源开销方面可以简单地理解为采用高可用流表后,需要在Raft组内的每一个数据节点上都写一份持久化的流表数据,多开销的资源主要包含以下两部分: (1)从节点上共享流表占用的内存,最大占用量为创建高可用流表时指定的cacheLimit。 (2)从节点用于持久化流表数据到...
回答于 2021-06-24 13:35
DolphinDB1.30.6版本开始支持分布式表的update、delete和upsert!操作。 可以更新版本后,重新对分布式表完成上述update操作。
回答于 2021-06-24 13:01
解决方案1: 思路: step1 :把分布式表的数据取到内存表t step2:对内存表t进行delete的去重操作 step3:删除dfs表需要去重数据涉及的分区 step4:把去重后的内存表t重新写回分布式表 针对上述场景的代码可以这样写: def DeletDuplicateData(DBname, TBname, days){ for(day in days){ pt = loadTable(DBname,...
回答于 2021-06-24 12:53
对于分布式表的去重查询也可以这样写: select * from tb_kline where isDuplicated([DT, Code], FIRST)=false map
回答于 2021-06-24 10:43
可以使用isValid函数,示例代码如下: v[isValid(v)] 结果如下: 也可以使用dropna函数: dropna(v) 结果如下:
回答于 2021-05-11 14:58