Tipos de datos históricos integrados en qteasy
Los tipos de datos son un concepto central de qteasy: información utilizada en una estrategia comercial, como datos históricos de mercado o series macroeconómicas. La información no es lo mismo que los datos sin procesar. En versiones anteriores, qteasy equiparaba los tipos de datos con las columnas de la tabla DataSource, lo cual era inadecuado porque:
Algunos campos sin formato por sí solos tienen poco significado y deben combinarse con otros datos.
Algunos campos codifican múltiples tipos de información que se pueden extraer desde diferentes ángulos.
El significado de la información es dinámico: los mismos datos se pueden interpretar de manera diferente.
Equiparar información con datos es imprudente: lógicamente, los datos son sólo un portador de información.
En la nueva definición qteasy, un tipo de datos es información extraída de datos almacenados complejos. Algunas se pueden leer directamente de las tablas, por ejemplo:
Precio de apertura de acciones, leído directamente desde la tabla de precios.
Algunos datos deben ensamblarse a partir de varias tablas, por ejemplo:
El precio de las acciones ajustado requiere datos de precios, factores de ajuste y cálculos.
A veces una columna produce información diferente, por ejemplo:
El cierre anterior y el cambio diario son información diferente de la misma tabla de precios.
qteasy redefine los tipos de datos como la información que necesitamos, con API simples para extraerlos rápidamente, admitir tipos personalizados y representar gráficamente, comparar y analizar resultados.
Cada tipo de datos se implementa como una clase para facilitar la personalización. qteasy también incluye numerosos tipos integrados que cubren muchas tablas para que los datos descargados sean totalmente utilizables.
Lógicamente, definir un tipo de datos requiere:
Fuente de datos: ¿qué tablas y columnas proporcionan esta información?
Adquisición: ¿cómo se extrae la información?
Muchos tipos integrados deben definirse de forma simple y paramétrica; el modelo de clase permanece lo suficientemente pequeño para definiciones basadas en parámetros.
Uso y salida: los tipos de datos exponen dos API unificadas:
API1: data_type.get(start, end, frequency): datos de intervalo independientes de símbolos en una frecuencia, salida tipo serie.
API2: data_type.get(shares, start, end, frequency): datos de intervalo por acción en una frecuencia.
Una tercera API: data_type.get(shares, start, end, frequency, **kwargs)
Los tipos integrados y personalizados comparten el mismo formato de devolución.
Las categorías de adquisición dependen de cómo se leen y producen los datos: lecturas directas frente a tablas de composición, consultas de varias tablas, como precios ajustados, etc. Los distintos patrones necesitan un manejo distinto.
Haciendo caso omiso de los tipos matemáticos puros de campos múltiples (excepto el precio ajustado), los tipos de adquisición incluyen:
acquisition_type controla la salida simbolizada versus no simbolizada y los diseños de Período versus Marca de tiempo:
Los diseños de salida admitidos se fijan en el momento de la definición del tipo de datos
- “basics”:
basics— datos de referencia independientes del tiempo; kwargs: una tabla y una columna- “direct”:
direct: lee una tabla/columna en un intervalo y frecuencia- “adjustment”:
adjustment: lea A y B de dos tablas y ajuste A con B (por ejemplo, precio ajustado)- “relations”:
relations— salida relacional entre A y B (eq/ne/gt/or/nor, etc.)- “operation”:
operation— aritmética entre A y B (+/-/*//)- “event_status”:
event_status: completa el estado de las ventanas de impacto del evento (suspensión, cambio de nombre, etc.)- “event_multi_stat”:
event_multi_stat: múltiples estados en ventanas de eventos (por ejemplo, lista de administración)- “event_signal”:
event_signal— señales en fechas de eventos (límite arriba/abajo, listados, dividendos, etc.)- “composition”:
composition: filtrar tablas de composición y filas/columnas dinámicas; además de tipos procesales especiales- “compound”:
compound: combina varios campos en una sola marca de tiempo (por ejemplo, estados financieros)
Output Type
- “symbolised”:
Datos de período simbolizados: tipo DataFrame, filas = períodos de tiempo, columnas = códigos compartidos
- “un-symbolised”:
Datos de período no simbolizados: tipo serie, filas = períodos de tiempo, columna única
El diseño de clases es paramétrico: los parámetros fijan el método de adquisición y las tablas de destino.
Un método público se distribuye por tipo de adquisición, lee tablas de destino, limpia y devuelve datos.
Los metadatos de tipo pueden codificar la semántica de campos, p. open utilizable en el último ciclo pero close no
Se puede anular un método de enlace para una lógica de adquisición personalizada
Muchos tipos integrados se crean mediante una tabla de asignación desde los ID de tipo hasta los parámetros clave.
1, DATA_TYPE_MAP:
DATA_TYPE_MAP asigna cada ID de tipo de datos a su tabla de almacenamiento (ID única y ubicación por tipo).
Columnas de asignación de tabla de datos: htype_name (clave): nombre del tipo de datos
freq (tecla): frecuencia disponible — min/d/w/m/q
asset_type (clave): E, IDX, FT, FD, OPT, THS, SW, etc.
description: descripción detallada para la búsqueda
acquisition_type: método de adquisición
table_name: nombre de la tabla de almacenamiento
column: nombre de la columna en la tabla
«»»