He comprado datos para liquidaciones EOD de precios de opciones para futuros USA para uso personal. No necesito acceso de múltiples usuarios ni acceso en tiempo real. No soy un programador experto pero uso C# y R con bastante regularidad. Cada futuro (digamos SPX) tendrá varias "cadenas" de opciones cada día. Si una sola fecha de la serie temporal fuera el 25 de mayo de 2016, podríamos tener 3 cadenas cotizando . Por ejemplo, SPM16 (vencimiento de junio), SPU16 (septiembre), SPZ16 (diciembre) Cada cadena constará de muchos precios de ejercicio asociados. Digamos 50 precios de ejercicio por cadena (yo los llamo StrikeRecords). Cada precio de ejercicio tendrá una opción de compra y de venta asociada. A estos registros individuales de compra y venta los llamo SettlementRecords.
Iba a intentar utilizar un método de sistema de archivos que drobertson había sugerido en este hilo:
Creación desde cero de una base de datos de series temporales de datos financieros
Me ha parecido muy útil, ya que no estoy demasiado familiarizado con las bases de datos y creo que acabaré dedicando más tiempo a aprender PostgreSQL que a estudiar los datos.
Mencionó una estructura de archivos para datos de acciones EOD algo en el espacio de futuros que podría parecerse a esto:
\FutureEOD {YYYY}{Inicial}_symbol.json
Los datos del SPX para 2016 serían
\FutureEOD\2016\S_SPX.json
Algo como esta estructura de sistema de archivos podría funcionar, pero tendría muchas opciones de símbolos / huelgas contenidas dentro de este único archivo 2016 para SPX.
Me preguntaba si este sistema de archivos sería mejor sin /{YYYY} y dividido en símbolos de opciones. Un archivo separado para cada cadena ordenados por liquidación DateTime? Algo así como
\FutureEOD\S\SPX_SPM16.csv
\FutureEOD\S\SPX_SPU16.csv
\FutureEOD\S\SPX_SPZ16.csv
Cada uno de estos archivos contendría todas las huelgas de cada cadena durante todos los días de existencia del contrato (~2 años). Yo iba a utilizar un SortedList para manejar los datos en la memoria y para obtener ordenados de nuevo en el TimeSeries ordenados.
¿Voy por mal camino?
Además, ¿tiene sentido tratar de almacenar en archivos planos como CSV en lugar de JSON? ¿Alguna otra estructura de archivos mejor para la velocidad de lectura con C#?
¿Alguien ha intentado almacenar los datos de las opciones EOD en el sistema de archivos? Cualquier consejo es muy apreciado.
Gracias