¿Cómo ordenar un campo en la ventana para obtener los primeros N valores y realizar cálculos agregados para el campo correspondiente en DolphinDB?
Mi pregunta es sobre cómo calcular los datos de cotización en DolphinDB. La tabla contiene cuatro columnas (ticker, fecha, cierre y volumen) y está agrupada por ticker y ordenada por fecha. Quiero hacer un cálculo de ventana y supongo que el tamaño de la ventana es de 20. Mi objetivo es ordenar los datos en la columna de volumen en una ventana y tomar los cinco registros de volumen más altos para calcular el promedio de los valores correspondientes de cierre. ¿Cuál es la forma más eficiente de calcularlo en DolphinDB?
davy.ai
Una forma eficiente de calcular esto en DolphinDB es utilizar ventanas deslizantes y las funciones
rank
ytop
. Primero podemos definir las ventanas deslizantes utilizando la funciónwindow
y luego aplicar una agregación de grupo a cada ventana. Dentro de cada ventana, podemos usar la funciónrank
para clasificar los registros por volumen y luego usar la funcióntop
para seleccionar los cinco registros principales. Finalmente, podemos calcular el promedio de los valores correspondientes declose
para los cinco registros principales utilizando la funciónavg
.Aquí hay un ejemplo de código:
Esto devolverá una tabla con las columnas
ticker
,date
y el promedio declose
para los cinco registros principales en cada ventana deslizante. La instrucciónselect *
mantiene todas las columnas originales en la tabla de resultados.