在DolphinDB中快速实现因子计算

已有pandas代码,计算累积bid和ask量比:

ask = df["av1"]
bid = df["bv1"]

p = df["mp"].iloc[0]
for i in range(2,11):    
     ask += np.exp(-10*(i-1)/p)*df["av"+str(i)]
     bid += np.exp(-10*(i-1)/p)*df["bv"+str(i)]

vol_diff = 0.5*np.log(bid/ask)

想快速用到dolphindb中,并且用dophonDB的计算引擎来并行计算,请问有什么改动最小的办法。

阅读 2k
1 个回答

这些因子可以翻译成DolphinDB database的代码,然后在内置的流数据框架中完成。

def factorVolDiff(t){
  w = exp(-10 * 0..9/t.mp[0])
  return select 0.5*log(rowSum([bv1,bv2,bv3,bv4,bv5,bv6,bv7,bv8,bv9,bv10]*w)/rowSum([av1,av2,av3,av4,av5,av6,av7,av8,av9,av10]*w)) as volDiff from t

 } 

上面这个写法是直接在DolphinDB数据库内使用的。

https://github.com/dolphindb/Orca/blob/master/tutorial_cn/factor.md这个例子对比了orca和pandas的实现方法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进