El problema que usted describe no es trivial. Principalmente porque una vez que se han resuelto para todos los casos conocidos que alguien va a encontrar una manera de hacer algo diferente y el desorden de tu sistema.
Aquí están algunos de los enfoques que he visto algo utilizado con éxito. No voy a reclamar que le dará una cobertura completa de cada caso, pero se le puede dar algunas ideas para empezar.
La primera sugerencia es no usar el símbolo de la acción como la IDENTIFICACIÓN principal de una empresa. Usted quiere tener su propio formulario de datos de IDENTIFICACIÓN para cada empresa que lidiar con. Esto podría estar vinculado con un sistema de traducción de y a partir de su IDENTIFICACIÓN y posible símbolos. Este sistema tendrá que ser conscientes de la simbología utilizada por diferentes fuentes de datos y el símbolo de los cambios a lo largo del tiempo.
Esto se refiere a la suposición falsa de que un símbolo de la acción nunca cambia y es consistente entre las fuentes de datos. Esto le da un mejor control sobre el ticker de cambios, los cambios en hojas de color rosa y muchas otras situaciones. Es muy fácil confundir un símbolo de cambio para una empresa obtener retirado de la lista si no hacen un seguimiento de la empresa por separado del símbolo.
Mi siguiente sugerencia es siempre mantener un conjunto de datos en BRUTO para trabajar. Este sería el precio real como aparece en ese momento en el tiempo. Ajustados conjuntos de datos pueden ser un gran trabajo, pero es muy fácil pasar por alto lo que los eventos que realmente significa cuando usted tiene pre-horneados en los datos. Como un ejemplo rápido, un sistema de comercio que funciona en acciones con dividendos no se preocupan por el dividendo como un factor en el comercio, pero el dividendo evento puede tener un significativo impacto de impuestos dependiendo del momento de la salida. Es difícil en pre-ajustados conjuntos de datos para detectar las situaciones.
La siguiente parte es contar con un sistema de almacenamiento y recuperación de eventos en su sistema de análisis. La forma en que mi grupo se acercó a esta era tener un conjunto de datos de las acciones de la compañía ligada a la IDENTIFICACIÓN de la compañía y la fecha-hora del evento. Esto podría incluir información descriptiva sobre el evento, sino también de un adjunto de acción.
Fueron las acciones simplificada descripción programática de lo que pasó con el stock en ese momento en el tiempo. La acción contenían las instrucciones que el programa podría utilizar para modificar el actual holdings. Esto podría incluir los desembolsos de efectivo, divisiones, símbolo de los cambios, etc... de Cada instrucción le dijo al programa qué hacer en esa situación específica.
Como una respuesta específica a su exclusión de la lista de la pregunta, tendríamos una acción que específicamente señala la exclusión de la lista y tenemos nuestro sistema de análisis de tomar medidas sobre el comercio sobre la base de esa situación. Estos deben ser separadas de otras situaciones similares, tales como el comercio sostiene que puede o no conducir a bajas.
El sistema tendría una consulta para ver los datos de un rango de fecha y compararlo con acciones durante ese tiempo y ajustar todo lo basa en la necesidad específica. Esta sería entonces la salida del análisis del conjunto de datos y las anotaciones sobre los eventos necesarios para el análisis.
Edit - me estoy dando detalles para ayudar con la siguiente pregunta.
Aquí es un ejemplo simplificado de la estructura de datos utilizada;
Las empresas están en una tabla y se denota por un ID específico. Cada empresa tiene una relación de uno a varios a StockSeries(Cada uno con un IDENTIFICADOR único). También hay una tabla de utilidad que traduce los datos de origen de los símbolos a un determinado StockSeries basado en el momento en que se hace referencia. Esto puede ser usado de forma bidireccional para las búsquedas.
Cada StockSeries tiene un sistema de datos de series de tiempo vinculados a ella. (tenga en cuenta que Nosotros no usamos una base de datos para esto, pero eso es irrelevante.)
Cada Empresa tiene una relación de uno a varios con una tabla de Eventos que tiene Descriptivo, Cualitativo, y de eventos básicos específicos de información Cuantitativa acerca de eventos corporativos. Esto nos permite agrupar y categorizar los eventos, pero no es usado específicamente para actuar sobre los datos.
Cada evento tiene una relación de uno a varios con una tabla de Acciones. Cada Acción es una programáticas específicas de acción a tomar en cualquier comercio de existencias para un determinado StockSeries.
Ejemplo;
Acción {DateTime: XXXXX, SeriesID:12345, Acción: SplitShares, Valor: .5}
Acción {DateTime: XXXXX, SeriesID:12345, Acción: DisburseCash, Valor .25}
La forma en que se configura esto significa que usted necesita prestar atención a lo que la serie se aplica la acción, pero también nos permite ver lo que está pasando en el nivel de empresa.
Honestamente, esta es una enorme simplificación. Como construir un sistema como este se encuentra el caso tras caso de que no encaja o requiere algún manejo especial.
He descrito todo en términos de estructura de base de datos debido a que su pregunta parecía a inferir que es la forma en que estás pensando, pero mucho de esto se hizo sin una base de datos oficial. Usted debe encontrar el sistema de gestión de datos que funciona mejor para usted.
Si usted tiene preguntas específicas puedo compartir lo que he hecho en el pasado. Estoy seguro de que otros tendrán buenas sugerencias también.