1 votos

¿Obtener una lista de todos los días de negociación?

Tengo un gran conjunto de datos (tomado de Kaggle: https://www.kaggle.com/borismarjanovic/price-volume-data-for-all-us-stocks-etfs/ ), y me gustaría completar los datos que faltan.

Para ello puedo (1) iterar a través de todos los datos y obtener un conjunto de fechas en las que se negoció al menos una acción, o (2) obtener una lista de referencia con las fechas en las que se negoció.

Me gustaría saber de dónde puedo obtener los datos para la opción (2). ¿Alguna ayuda?

3voto

sfuqua Puntos 1796

QuantLib proporciona calendarios para determinados países y bolsas, véase aquí .

Las fechas pueden entonces ser intersectadas usando algo como NumPy's np.intersect1d por ejemplo numpy.intersect1d(cal_dates, numpy.array(db_etfs.loc[:, 'date'])) .

1voto

Timothy Carter Puntos 7079

El recurso recomendado por @AlexAbrahams es decente pero aquí hay otro enfoque (creo que mejor) que resuelve tanto (1) como (2):

#!/usr/bin/env python
# Call from the `Data` directory

import glob
import pandas as pd
import datetime

# Get all traded dates, with possible repetition
dates = []
for f in glob.glob('*/*.us.txt'):
    dates += df['Date'].tolist()

# Remove repetitions
dates = set(dates)

# Optional: Convert to `datetime`
dates = map(lambda s: datetime.datetime.strptime(s, '%Y-%m-%d').date(),
            dates)

# Optional: Sort
dates = sorted(dates)

Dos razones para considerar hacerlo de esta manera:

  1. No necesita una dependencia externa, y muy grande, de QuantLib .

  2. En la producción, puede haber razones prácticas, estructurales o sistemáticas por las que no se puede operar en los días que están en Quantlib pero no en sus datos . Por ejemplo, la red en la que se encuentran sus servidores puede estar caída, lo que le hace perder datos en esas fechas. A veces, esta pérdida está relacionada con eventos de gran volatilidad, por ejemplo, un disyuntor que se dispara en la bolsa y provoca un fallo en su propio software. No tiene sentido imputar los datos del calendario de operaciones "como si" hubieras podido operar en esas fechas porque hay una razón muy repetible por la que no habrías podido hacerlo. Tus propios datos son los que mejor captan estos matices, a diferencia de una biblioteca de terceros.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X