#sql #quantitative-finance #dolphindb
Вопрос:
Например, мне нужно рассчитать коэффициент Alpha147. Сценарий показан следующим образом:
def alpha147SQL(vector) { ... } input = select tradingdate, symbol, closeprice from loadTable("dfs://xxxx", "level2") where tradingdate = 2020.01.02 alpha147DDBSql = select alpha147SQL(closeprice) from input context by symbol
Комментарии:
1. Если вы используете SQL для вычисления чего-то тяжелого, то вам, вероятно, не следует этого делать. Найдите способы использования реальных языков программирования, таких как C/C /Java/Python
Ответ №1:
Вы можете использовать таблицу разделов в памяти для параллельного выполнения вычислений. Код для оптимизации показан ниже:
def alpha147SQL(vector) { ... } input = select tradingdate, symbol, closeprice from loadTable("dfs://shenwan", "level2") where tradingdate = 2020.01.02 db = database("", HASH, [SYMBOL, 20]) pt = db.createPartitionedTable(input, "input", `symbol) pt.append!(input) timer(10) { pnodeRun(clearAllCache) } timer alpha147DDBSql = select alpha147SQL(closeprice) from pt context by symbol