如何在python中定义一个dolphindb脚本编写的因子

请问,如何在python中定义一个dolphindb脚本编写的因子并调用呢

请先 登录 后评论

1 个回答

peter

最简单直接的方式是通过run方法执行脚本。

defAlpha101="""

def WQAlpha100(vol, high, low, close, indclass){

    tmprank = rowRank(((close - low - (high - close)) / (high - low) * vol), percent=true)

    ind1 = byRow(contextby{demean, , indclass.row(0)}, tmprank)

    ind2 = byRow(contextby{demean, , indclass.row(0)}, ind1)

    adv20 = mavg(vol, 20)

    argmin = mimin(close, 30)

    rank1 = rowRank(adv20, percent=true)

    rank2 = rowRank(argmin, percent=true)

    x = mcorr(close, rank1, 5) - rank2

    ind3 = byRow(contextby{demean, , indclass.row(0)}, x)

    return -(each(div, 1.5 * ind2, sum(abs(ind2))) - each(div, ind3, sum(abs(ind3))))*(vol \ adv20)

}

"""

s.run(defAlpha100)

s.run("WQAlpha100(vol, high, low, close, indclass)")

后续项目团队如果想做脚本的工程化管理,有两种思路

1. 使用module封装

2. 将脚本存放在数据库中,并封装调用接口,如callScripts(String host, int  port, String functionID, Object... args)

请先 登录 后评论