11. HistoryPanel y la capa auxiliar opcional “FactorResearch” (conclusiones de la evaluación)
Este documento responde al elemento de evaluación en la hoja de ruta: ¿Necesitamos agregar otra capa de abstracción de API liviana además de HistoryPanel (nombre de trabajo FactorResearch), dedicada a calcular IC/IR, rendimientos de cartera de cuantiles, curvas largas y cortas, etc.?
11.1. 1. 当前能力边界(已满足的部分)
Las siguientes capacidades ya están cubiertas por HistoryPanel y las API relacionadas; no es necesario reinventar la rueda:
Generación de columnas de factores:
assign,__setitem__,returns,kline,apply_ta, etc.;Transformaciones transversales:
rank,zscore(method='cs'|'ts');Carteras generales y puntos de referencia:
portfolio(igual ponderación/ponderado,groups,benchmark);Visualización de resultados orientados a la investigación:
cum_return,normalizeymask=;Visualización:
ploty resaltado de máscara (M,L);Integración con herramientas de medición/análisis:
to_df_dict, o remodele manualmente a formato largo y luego use pandas/statsmodels (consulte el Tutorial 2.5 §11).
Para el objetivo de “investigación de factores ligeros + validación aproximada”, lo anterior ya constituye una base completa.
11.2. 2. 若增加 FactorResearch 层,能解决什么?
Los envoltorios típicos pueden incluir:
Dada una columna de factor y una columna de retorno (o etiqueta), salida CI por período, IC media/IR;
Un NAV o serie de rentabilidad de una cartera cuantil (clasificada por sección transversal);
Una serie temporal de una cartera larga-corta (arriba menos abajo).
Todo esto se puede implementar en unas pocas docenas de líneas en el lado del usuario o en un módulo independiente utilizando rank / portfolio / values + pandas existentes; el valor del ajuste radica en API estables, convenciones de parámetros unificadas y menos errores de copiar y pegar.
11.3. 3. 结论(短期不引入类库级 FactorResearch)
Conclusión: en la etapa actual, no forzaremos la adición de una clase/submódulo FactorResearch al núcleo qteasy o encima de HistoryPanel.
Breve justificación:
Responsabilidades claras:
HistoryPanelya está posicionado como un contenedor de investigación 3D con alineación/remuestreo explícito; IC/IR, carteras cuantiles, etc. son “recetas de análisis” con convenciones de flujo de trabajo de investigación mucho más sólidas. Se adaptan mejor a tutoriales independientes, ejemplos o un paquete opcional futuro, para evitar la sobrecarga de la API de HP.Evite expectativas equivocadas: nombrarlo como un módulo independiente puede hacer que los usuarios piensen fácilmente que el marco ya incluye “pruebas de factores de grado de publicación” (por ejemplo, pruebas múltiples, división de muestras, errores estándar de HAC), mientras que en realidad los usuarios aún necesitan hacer inferencias en el lado de los modelos de estadísticas, etc.
Relación con la “biblioteca de factores incorporada” de mediano plazo: si se implementa la biblioteca de factores incorporada (M2.1) en la hoja de ruta de nivel superior, un enfoque más natural sería definición de factores + registro + integración con FactorSorter/backtesting; La estratificación/IC por lotes pueden ser funciones de utilidad opcionales en torno a la biblioteca de factores, en lugar de métodos de instancia HistoryPanel.
Costo de mantenimiento: IC necesita convenciones para la ventana de retorno a plazo, suspensiones de operaciones, eliminaciones de listas, ponderaciones (ponderadas por valor versus ponderadas por igual), etc. Hay muchas combinaciones de parámetros; Sin un contrato de datos unificado, los costos de soporte pueden aumentar fácilmente.
11.4. 4. 若未来引入,建议形态(备忘)
Si la demanda de la comunidad es clara, recomiende un módulo independiente (por ejemplo, qteasy.research.factor_stats o un proyecto qteasy-research externo), en lugar de métodos HistoryPanel:
Entradas:
HistoryPaneloDataFrame+ nombre de columna + períodos prospectivos;Salidas:
DataFrame/Series(opcionalmente retrazado como suplemento);Documentos: indique claramente que no es un reemplazo para Backtester, y que no tiene Fama–MacBeth / Newey–West integrado (aún se exporta a modelos de estadísticas).
En ese punto, debería venir con contratos TDD y ValueError en inglés, de acuerdo con el estilo de prueba existente de HP.
11.5. 5. 与教程的关系
Para conocer el flujo de trabajo práctico, siga los apartados 9 a 11 del Tutorial 2.5: Uso de HistoryPanel para operar y analizar datos históricos; Este documento de diseño solo registra conclusiones de la evaluación a nivel de arquitectura y no agrega ninguna superficie API de lectura obligada para los usuarios.