2. Adquirir y gestionar datos

Puede adquirir y gestionar una gran cantidad de datos históricos utilizando qteasy. Los datos históricos que qteasy puede gestionar cubren acciones, fondos, índices, futuros, etc., incluidos datos de precios, indicadores técnicos, macroeconomía, informes financieros de empresas, macrofinanzas, etc.

Todos los datos se pueden obtener a través de la interfaz tushare. Después de descargarlo al local, puede administrarlo y llamarlo a través de la interfaz qteasy.

Buscando datos históricos compatibles

Utilice qt.find_history_data() to search across all known historical data types by name, Chinese description, or wildcard, and return either a list of data_id values compatible with get_history_data() o un resultado de DataFrame estructurado según sea necesario, lo que facilita la exploración de los campos de datos disponibles.

qteasy.find_history_data(s: str, match_description: bool = False, fuzzy: bool = False, freq: Optional[str] = None, asset_type: Optional[str] = None, match_threshold: float = 0.85, table: Optional[Union[str, list[str]]] = None, as_data_frame: bool = False) Union[list[str], DataFrame][fuente]

Según la cadena de entrada, busque o combine tipos de datos históricos y muestre información detallada sobre los datos históricos. Admite búsqueda difusa, comodines, búsqueda/coincidencia de tipos de datos históricos utilizando caracteres ingleses o chinos y devolución de resultados más estructurados en forma de DataFrame.

Parámetros:
  • s (str) – Una cadena utilizada para buscar o hacer coincidir tipos de datos históricos

  • match_description (bool, Default: False) – Si se debe realizar una coincidencia aproximada con la descripción de los datos. Si la cadena proporcionada contiene caracteres que no son ASCII, se establecerá automáticamente en Verdadero - Falso: coincide solo con el nombre del tipo de datos - Verdadero: coincide tanto con el nombre del tipo de datos como con la descripción de los datos

  • fuzzy (bool, Default: False) – Ya sea para hacer una coincidencia aproximada de los nombres de los datos. Si la cadena proporcionada contiene caracteres no ASCII o caracteres comodín */?, se establecerá automáticamente en Verdadero - Falso: coincidencia exacta en el nombre de los datos - Verdadero: coincidencia aproximada en el nombre de los datos o la descripción de los datos

  • freq (str, Default: None) – La frecuencia de los datos, si se proporcionan, solo coincide con la frecuencia de los datos. Puede ingresar una sola frecuencia o múltiples frecuencias separadas por comas

  • asset_type (str, Default: None) – El tipo de activo, si se proporciona, solo coincide con el tipo de datos del activo. Puede ingresar un solo tipo de activo o varios tipos de activos separados por comas

  • match_threshold (float, default 0.85) – Umbral de grado de coincidencia; los elementos con un grado de coincidencia que exceda este umbral se considerarán coincidentes

  • table (str or list of str, Default: None) – Filtro de nombre de tabla de datos. Si se proporciona, solo coincida con los tipos de datos de estas tablas; puede ser un único nombre de tabla o una cadena separada por comas

  • as_data_frame (bool, Default: False) –

    • Falso: devuelve una lista compatible con versiones anteriores de valores data_id e imprime información sobre los tipos de datos coincidentes.

    • Verdadero: devuelve un DataFrame que contiene información detallada sobre los resultados coincidentes, sin forzar la dependencia de la salida impresa.

Devuelve:

  • data_id (list[str]) – Cuando as_data_frame es False, la lista de valores data_id para los tipos de datos coincidentes; se puede utilizar para descargar datos a través de qt.get_history_data()

  • pandas.DataFrame – Cuando as_data_frame es True, devuelve un DataFrame. Cada fila corresponde a un tipo de datos coincidente y contiene al menos las siguientes columnas:

    • nombre: nombre del tipo de datos

    • descripción: descripción china del tipo de datos

    • frecuencia: frecuencia

    • activo_tipo: tipo de activo

    • table_name: nombre de la tabla de datos subyacente

    • columna: nombre del campo de datos correspondiente

Ejemplos

>>> import qteasy as qt
>>> qt.find_history_data('pe')
matched following history data,
use "qt.get_history_data()" to load these historical data by its name:
------------------------------------------------------------------------
           freq asset             table                            desc
data_id
initial_pe    d     E         new_share                  新股上市信息 - 发行市盈率
pe            d   IDX   index_indicator                    指数技术指标 - 市盈率
pe            d     E   stock_indicator  股票技术指标 - 市盈率(总市值/净利润, 亏损的PE为空)
pe_2          d     E  stock_indicator2                  股票技术指标 - 动态市盈率
========================================================================
>>> qt.find_history_data('ep*')
matched following history data,
use "qt.get_history_data()" to load these historical data by its data_id:
------------------------------------------------------------------------
              freq asset      table                 desc
data_id
eps_last_year    q     E    express  上市公司业绩快报 - 去年同期每股收益
eps              q     E  financial    上市公司财务指标 - 基本每股收益
========================================================================
>>> qt.find_history_data('每股收益')
matched following history data,
use "qt.get_history_data()" to load these historical data by its data_id:
------------------------------------------------------------------------
                freq asset      table                 desc
data_id
basic_eps              q     E     income           上市公司利润表 - 基本每股收益
diluted_eps            q     E     income           上市公司利润表 - 稀释每股收益
express_diluted_eps    q     E    express     上市公司业绩快报 - 每股收益(摊薄)(元)
yoy_eps                q     E    express    上市公司业绩快报 - 同比增长率:基本每股收益
eps_last_year          q     E    express        上市公司业绩快报 - 去年同期每股收益
eps                    q     E  financial          上市公司财务指标 - 基本每股收益
dt_eps                 q     E  financial          上市公司财务指标 - 稀释每股收益
diluted2_eps           q     E  financial        上市公司财务指标 - 期末摊薄每股收益
q_eps                  q     E  financial       上市公司财务指标 - 每股收益(单季度)
basic_eps_yoy          q     E  financial  上市公司财务指标 - 基本每股收益同比增长率(%)
dt_eps_yoy             q     E  financial  上市公司财务指标 - 稀释每股收益同比增长率(%)
========================================================================
Muestra:

TypeError – La entrada s no es una cadena, o freq/asset_type/table no es una cadena ni una lista

Descargar datos históricos

Con qt.refill_data_source(), puede descargar datos por lotes para tablas o propósitos específicos desde una API de datos financieros remota (admite filtrado por tipo de datos, frecuencia, tipo de activo, etc.) y completar la limpieza y escritura en el DataSource local; La actualización de las tablas dependientes y el calendario comercial se maneja automáticamente internamente. Para conocer el flujo de trabajo específico y las combinaciones de parámetros recomendadas, consulte la documentación de la serie Manage_data.

qteasy.refill_data_source(tables, *, channel=None, data_source=None, dtypes=None, freqs=None, asset_types=None, refresh_trade_calendar=False, refill_dependent_tables=True, symbols=None, start_date=None, end_date=None, list_arg_filter=None, reversed_par_seq=False, parallel=True, process_count=None, chunk_size=100, download_batch_size=0, download_batch_interval=0, merge_type='update', log=False) None[fuente]

Descargue datos en lotes desde el canal API del proveedor de datos de red, límpielos y complételos en la fuente de datos local

Parámetros:
  • tables (str or list of str, default: None) – Nombre de la tabla de datos, debe ser la tabla de datos definida en la base de datos, utilizada para especificar la tabla de datos que se descargará. Puede proporcionar el nombre de la tabla de datos, como «stock_daily, stock_weekly», o puede indicar el propósito de la tabla de datos, como «datos, básicos».

  • data_source (DataSource, Default None) – DataSource para completar con datos. Si no hay ninguno, complete la fuente de datos en QT_DATA_SOURCE

  • channel (str, optional, Default 'tushare') – Canal de adquisición de datos, API de datos financieros, admite las siguientes opciones: - “tushare”: obtenga datos financieros de la API de Tushare, solicite el permiso correspondiente y los puntos usted mismo - “akshare”: obtenga datos financieros de la API de AKshare - “eastmoney”: obtenga datos financieros de Eastmoney

  • tables – Nombre de la tabla de datos, debe ser la tabla de datos definida en la base de datos, utilizada para especificar la tabla de datos que se descargará

  • dtypes (str or list of str, default: None) – El tipo de datos que se descargará y que se utilizará para filtrar aún más la tabla de datos debe ser el tipo de datos definido en la base de datos.

  • freqs (str or list of str, default: None) – La frecuencia de los datos que se descargarán, utilizada para filtrar aún más la tabla de datos, debe ser la frecuencia de los datos definida en la base de datos.

  • asset_types (str or list of str, default: None) – El tipo de activo que se descargará, utilizado para filtrar aún más la tabla de datos, debe ser el tipo de activo definido en la base de datos.

  • refresh_trade_calendar (Bool, Default False) – Si es Verdadero, se descargará la tabla trade_calendar.

  • refill_dependent_tables (Bool, Default True, New in v1.4.3) – Si se establece en Falso, ignore la tabla de dependencias, lo que puede provocar un error en la descarga de datos.

  • start_date (str YYYYMMDD) – Limite el rango de tiempo de descarga de datos. Si se proporciona la fecha de inicio/fecha de finalización, solo se descargarán los datos dentro de este período de tiempo.

  • end_date (str YYYYMMDD) – Limite el rango de tiempo de descarga de datos. Si se proporciona la fecha de inicio/fecha de finalización, solo se descargarán los datos dentro de este período de tiempo.

  • list_arg_filter (str or list of str, default: None 注意,不是所有情况下filter_arg参数都有效) – Parámetros de filtro utilizados para restringir las descargas. Algunas tablas de datos proporcionan parámetros filtrables en forma de lista; por ejemplo, la tabla stock_basic tiene un parámetro de filtro «exchange» con opciones “SSE”, “SZSE”, “BSE”. Puede utilizar este parámetro para limitar el alcance de la descarga. Si filter_arg es Ninguno, se descargarán todos los datos. Por ejemplo, al descargar datos de la tabla stock_basic, todas las siguientes entradas son válidas: - Descargue “SZSE” solo acciones que cotizan en la Bolsa de Valores de Shenzhen - [“SSE”, “SZSE”] - “SSE, SZSE” las dos formas anteriores son equivalentes; descargar acciones que cotizan en las Bolsas de Valores de Shanghai y Shenzhen

  • symbols (str or list of str, default: None) – Códigos de acciones utilizados para descargar datos. Si se dan símbolos, solo se descargarán los datos de estos códigos bursátiles

  • reversed_par_seq (Bool, Default False) – Si es Verdadero, descarga los datos en orden inverso. Falso: descarga los datos en orden normal.

  • parallel (Bool, Default True) – Si es Verdadero, habilita la descarga de datos multiproceso. Falso: deshabilita la descarga multiproceso.

  • process_count (int) – Número de subprocesos abiertos simultáneamente cuando la descarga de subprocesos múltiples está habilitada; el valor predeterminado es el número de núcleos de CPU del dispositivo

  • chunk_size (int) – Número de datos que se acumularán antes de guardarlos en local, chunk_size es el tamaño del lote, el valor predeterminado es 100

  • download_batch_size (int, default 0) – Número de datos a descargar antes de pausar, este parámetro solo es válido cuando paralelo = Falso. Si es 0, sin pausa, descarga todos los datos a la vez

  • download_batch_interval (int, default 0) – Número de segundos para hacer una pausa antes de continuar descargando datos, este parámetro solo es válido cuando paralelo = Falso. Si <=0, no hay pausa, inicie inmediatamente el siguiente lote de descarga de datos

  • merge_type (str, Default 'update') – El método de combinación al escribir datos en la fuente de datos admite las siguientes opciones: - “actualizar”: actualizar datos, si ya existen, actualizar datos - “ignorar”: ignorar datos, si ya existen, descartar datos descargados

  • log (Bool, Default False) – Si es Verdadero, registre el registro de descarga de datos

Tipo del valor devuelto:

None

Ejemplos

>>> import qteasy as qt
>>> qt.refill_data_source(tables='stock_basic')

Después de descargar los datos históricos al local, puede verificar, administrar y llamar a estos datos.

Verificar datos locales

qteasy.get_table_info(table_name, data_source=None, verbose=True) dict[fuente]

Recupere e imprima información sobre una tabla de datos en la fuente de datos, incluido el volumen de datos, el uso de espacio en disco, el nombre de la clave principal, el contenido y los nombres, tipos de datos y descripciones de las columnas de datos.

Parámetros:
  • table_name (str) – Nombre de la tabla de datos a consultar

  • data_source (DataSource) – La fuente de datos para obtener la información de la tabla de datos, predeterminada Ninguna, en este momento obtenga la información QT_DATA_SOURCE

  • verbose (bool, Default: True,) – Si es Verdadero, imprima la lista completa de nombres y tipos de columnas de datos

Devuelve:

data_struct – Información estructurada sobre la tabla de datos: {

nombre de la tabla: nombre de la tabla de datos table_exists: bool, si la tabla de datos existe table_size: int/str, espacio en disco ocupado por la tabla de datos, humano Si es Verdadero, devuelve una cadena fácil de leer table_rows: int/str, número de filas en la tabla de datos, humano Si es Verdadero, devuelve una cadena fácil de leer clave_primaria1: cadena, nombre de la primera clave primaria de la tabla de datos pk_count1: int, número de registros de la primera clave primaria de la tabla de datos pk_min1: obj, registro inicial de la clave primaria 1 de la tabla de datos pk_max1: obj, registro final de la clave primaria 2 de la tabla de datos Primary_key2: str, nombre de la segunda clave primaria de la tabla de datos pk_count2: int, número de registros de la segunda clave primaria de la tabla de datos pk_min2: obj, registro inicial de la clave primaria 2 de la tabla de datos pk_max2: obj, registro final de la clave primaria 2 de la tabla de datos

}

Tipo del valor devuelto:

dict

Ejemplos

>>> get_table_info('STOCK_BASIC')
<stock_basic>, 1.5MB/5K records on disc
primary keys:
-----------------------------------
1:  ts_code:
    <unknown> entries
    starts: 000001.SZ, end: 873527.BJ
columns of table:
------------------------------------
        columns       dtypes remarks
0       ts_code   varchar(9)    证券代码
1        symbol   varchar(6)    股票代码
2          name  varchar(20)    股票名称
3          area  varchar(10)      地域
4      industry  varchar(10)    所属行业
5      fullname  varchar(50)    股票全称
6        enname  varchar(80)    英文全称
7       cnspell  varchar(40)    拼音缩写
8        market   varchar(6)    市场类型
9      exchange   varchar(6)   交易所代码
10    curr_type   varchar(6)    交易货币
11  list_status   varchar(4)    上市状态
12    list_date         date    上市日期
13  delist_date         date    退市日期
14        is_hs   varchar(2)  是否沪深港通

Adquirir la descripción general de los datos locales descargados.

qt.get_table_overview() and qt.get_data_overview() resume y muestra si cada tipo de tabla de datos en la fuente de datos local tiene actualmente datos, uso de espacio en disco, recuento de registros y rango de cobertura de tiempo, lo que los hace adecuados como punto de entrada para verificar la preparación de los datos.

qteasy.get_table_overview(data_source=None, tables=None, include_sys_tables=False) DataFrame[fuente]

Mostrar la descripción general de datos de la fuente de datos predeterminada o la fuente de datos especificada

Parámetros:
  • data_source (Object) – Un objeto data_source, el valor predeterminado es Ninguno. Si no hay ninguno, muestra la descripción general de la fuente de datos predeterminada.

  • tables (str or list of str, Default: None) – Si se proporciona, muestra la descripción general de la tabla de datos; si no hay ninguno, muestra la descripción general de todas las tablas de datos.

  • include_sys_tables (bool, Default: False) – Si es Verdadero, muestra la descripción general de las tablas de datos del sistema.

Tipo del valor devuelto:

pd.DataFrame

Notas

Ejemplo de uso ver get_data_overview()

qteasy.get_data_overview(data_source=None, tables=None, include_sys_tables=False) DataFrame[fuente]

Muestra la descripción general de datos de la fuente de datos, equivalente a get_table_overview()

La información incluye el volumen de datos de todas las tablas de datos, el espacio ocupado en disco, el nombre de la clave principal, el contenido, etc.

Parámetros:
  • data_source (Object) – Un objeto data_source, el valor predeterminado es Ninguno. Si no hay ninguno, muestra la descripción general de la fuente de datos predeterminada.

  • tables (str or list of str, Default: None) – Si se proporciona, muestra la descripción general de la tabla de datos; si no hay ninguno, muestra la descripción general de todas las tablas de datos.

  • include_sys_tables (bool, Default: False) – Si es Verdadero, muestra la descripción general de las tablas de datos del sistema.

Devuelve:

  • pd.DataFrame

  • Devuelve un DataFrame que contiene la información general de la tabla de datos

Ejemplos

>>> import qteasy as qt
>>> qt.get_data_overview()  # 获取当前默认数据源的数据总览
Analyzing local data source tables... depending on size of tables, it may take a few minutes
[########################################]62/62-100.0%  Analyzing completed!
db:mysql://localhost@3306/ts_db
Following tables contain local data, to view complete list, print returned DataFrame
                 Has_data Size_on_disk Record_count Record_start  Record_end
table
trade_calendar     True        2.5MB         73K     1990-10-12   2023-12-31
stock_basic        True        1.5MB          5K           None         None
stock_names        True        1.5MB         14K     1990-12-10   2023-07-17
stock_company      True       18.5MB          3K           None         None
stk_managers       True      150.4MB        126K     2020-01-01   2022-07-27
index_basic        True        3.5MB         10K           None         None
fund_basic         True        4.5MB         17K           None         None
future_basic       True        1.5MB          7K           None         None
opt_basic          True       15.5MB         44K           None         None
stock_1min         True      42.83GB      273.0M       20220318     20230710
stock_5min         True      34.33GB      233.2M       20090105     20230710
stock_15min        True      14.45GB      141.2M       20090105     20230710
stock_30min        True       7.78GB       77.1M       20090105     20230710
stock_hourly       True       4.22GB       42.0M       20090105     20230710
stock_daily        True       1.49GB       11.6M     1990-12-19   2023-07-17
stock_weekly       True      231.9MB        2.6M     1990-12-21   2023-07-14
stock_monthly      True       50.6MB        635K     1990-12-31   2023-06-30
index_1min         True       4.25GB       27.6M       20220318     20230712
index_5min         True       6.18GB       47.2M       20090105     20230712
index_15min        True       2.61GB       26.1M       20090105     20230712
index_30min        True      884.0MB       12.9M       20090105     20230712
index_hourly       True      536.0MB        7.6M       20090105     20230712
index_daily        True      309.0MB        3.7M     1990-12-19   2023-07-10
index_weekly       True       61.6MB        674K     1991-07-05   2023-07-14
index_monthly      True       13.5MB        158K     1991-07-31   2023-06-30
fund_1min          True       5.46GB       55.8M       20220318     20230712
fund_5min          True       3.68GB       12.3M       20220318     20230712
fund_15min         True      835.9MB        3.9M       20220318     20230712
fund_30min         True      385.7MB        1.9M       20220318     20230712
fund_hourly        True      124.8MB        1.6M       20210104     20230629
fund_daily         True      129.7MB        1.6M     1998-04-07   2023-07-10
fund_nav           True      693.0MB       13.6M     2000-01-07   2023-07-07
fund_share         True       72.7MB        1.4M     1998-03-27   2023-07-14
fund_manager       True      109.7MB         37K     2000-02-22   2023-03-30
future_hourly      True         32KB           0           None         None
future_daily       True      190.8MB        2.0M     1995-04-17   2023-07-10
options_hourly     True         32KB           0           None         None
options_daily      True      436.0MB        4.6M     2015-02-09   2023-07-10
stock_adj_factor   True      897.0MB       11.8M     1990-12-19   2023-07-12
fund_adj_factor    True       74.6MB        1.8M     1998-04-07   2023-07-12
stock_indicator    True       2.06GB       11.8M     1999-01-01   2023-07-17
stock_indicator2   True      734.8MB        4.1M     2017-06-14   2023-07-10
index_indicator    True        4.5MB         45K     2004-01-02   2023-07-10
index_weight       True      748.0MB        8.7M     2005-04-08   2023-07-14
income             True       59.7MB        213K     1990-12-31   2023-06-30
balance            True       97.8MB        218K     1989-12-31   2023-06-30
cashflow           True       69.7MB        181K     1998-12-31   2023-06-30
financial          True      289.0MB        203K     1989-12-31   2023-06-30
forecast           True       32.6MB         98K     1998-12-31   2024-03-31
express            True        3.5MB         23K     2004-12-31   2023-06-30
shibor             True         16KB         212           None         None

Utilizar los datos descargados - Datos Básicos

qt.get_basic_info() and qt.get_stock_info() provide entry points for querying basic information on stocks/funds/indices, etc. by code or name. They can be used together with filter_stock_codes() and filter_stocks() para crear un grupo de activos o realizar un filtrado previo.

qteasy.get_basic_info(code_or_name: str, asset_types=None, match_full_name=False, printout=True, verbose=False)[fuente]

Equivalente a get_stock_info(); busca información básica sobre acciones, fondos, índices o futuros y opciones en función de la entrada.

Parámetros:
  • code_or_name (str) – Código o nombre de seguridad: - Si es un código de seguridad puede incluir un sufijo o no. Con un sufijo, realice una búsqueda exacta; sin sufijo, realice una coincidencia global. - Si es un nombre de seguridad, puede utilizar patrones comodín para una búsqueda aproximada o realizar una búsqueda aproximada por nombre. - Si coincide exactamente un código de seguridad, devolverá un diccionario que contiene información relacionada con ese código de seguridad.

  • asset_types (str, list of str, optional) – Tipo de seguridad. Acepta una lista o una cadena separada por comas, incluidos los tipos de activos reconocidos: - Acciones electrónicas - Índices IDX - Fondos FD - Futuros FT - Opciones OPT

  • match_full_name (bool, default False) – Si es Verdadero, coincida con el nombre completo de la acción o fondo; el valor predeterminado es Falso. Si el nombre completo coincide, tarda más

  • printout (bool, default True) – Si es verdadero, imprima los resultados coincidentes.

  • verbose (bool, default False) – Cuando se casan demasiados valores (más de cinco), si se debe mostrar la información completa - Falso (predeterminado): solo muestra las coincidencias de mayor relevancia - Verdadero: muestra todos los resultados coincidentes

Devuelve:

stock_basic: cuando solo se encuentra una coincidencia, devuelve un diccionario que contiene la información básica encontrada. La información varía según el tipo de valor: - Acciones: nombre de la empresa, región, industria, nombre completo, estado de cotización, fecha de cotización - Índice: nombre del índice, nombre completo, emisor, categoría, fecha de emisión - Fondo: nombre del fondo, administrador, custodio, tipo de fondo, fecha de emisión, monto de la emisión, tipo de inversión, categoría - Futuros: nombre de los futuros - Opciones: nombre de las opciones

Tipo del valor devuelto:

dict

Ejemplos

>>> get_basic_info('000001.SZ')
found 1 matches, matched codes are {'E': {'000001.SZ': '平安银行'}, 'count': 1}
More information for asset type E:
------------------------------------------
ts_code       000001.SZ
name               平安银行
area                 深圳
industry             银行
fullname     平安银行股份有限公司
list_status           L
list_date    1991-04-03
-------------------------------------------
>>> get_basic_info('000001')
found 4 matches, matched codes are {'E': {'000001.SZ': '平安银行'}, 'IDX': {'000001.CZC': '农期指数', '000001.SH': '上证指数'}, 'FD': {'000001.OF': '华夏成长'}, 'count': 4}
More information for asset type E:
------------------------------------------
ts_code       000001.SZ
name               平安银行
area                 深圳
industry             银行
fullname     平安银行股份有限公司
list_status           L
list_date    1991-04-03
-------------------------------------------
More information for asset type IDX:
------------------------------------------
ts_code   000001.CZC   000001.SH
name            农期指数        上证指数
fullname        农期指数      上证综合指数
publisher    郑州商品交易所        中证公司
category        商品指数        综合指数
list_date       None  1991-07-15
-------------------------------------------
More information for asset type FD:
------------------------------------------
ts_code        000001.OF
name                华夏成长
management          华夏基金
custodian         中国建设银行
fund_type            混合型
issue_date    2001-11-28
issue_amount     32.3683
invest_type          成长型
type              契约型开放式
-------------------------------------------
>>> get_basic_info('平安银行')
found 4 matches, matched codes are {'E': {'000001.SZ': '平安银行', '600928.SH': '西安银行'}, 'IDX': {'802613.SI': '平安银行养老新兴投资指数'}, 'FD': {'700001.OF': '平安行业先锋'}, 'count': 4}
More information for asset type E:
------------------------------------------
ts_code       000001.SZ   600928.SH
name               平安银行        西安银行
area                 深圳          陕西
industry             银行          银行
fullname     平安银行股份有限公司  西安银行股份有限公司
list_status           L           L
list_date    1991-04-03  2019-03-01
-------------------------------------------
More information for asset type IDX:
------------------------------------------
ts_code       802613.SI
name       平安银行养老新兴投资指数
fullname   平安银行养老新兴投资指数
publisher          申万研究
category           价值指数
list_date    2017-01-03
-------------------------------------------
More information for asset type FD:
------------------------------------------
ts_code        700001.OF
name              平安行业先锋
management          平安基金
custodian           中国银行
fund_type            混合型
issue_date    2011-08-15
issue_amount     31.9816
invest_type          混合型
type              契约型开放式
-------------------------------------------
>>> get_basic_info('贵州钢绳', match_full_name=False)
No match found! To get better result, you can
- pass "match_full_name=True" to match full names of stocks and funds
>>> get_basic_info('贵州钢绳', match_full_name=True)
found 1 matches, matched codes are {'E': {'600992.SH': '贵绳股份'}, 'count': 1}
More information for asset type E:
------------------------------------------
ts_code       600992.SH
name               贵绳股份
area                 贵州
industry            钢加工
fullname     贵州钢绳股份有限公司
list_status           L
list_date    2004-05-14
-------------------------------------------
qteasy.get_stock_info(code_or_name: str, asset_types=None, match_full_name=False, printout=True, verbose=False)[fuente]
Igual que get_basic_info()

Busque la información básica de acciones, fondos, índices, futuros u opciones basándose en la información de entrada.

Parámetros:
  • code_or_name (str) – Código bursátil o nombre, si es código bursátil puede contener sufijos o no. Cuando contiene sufijos se busca con precisión. Cuando no contiene sufijos, se coincide globalmente. Si es un nombre de acción, puede contener una búsqueda difusa con comodines o una búsqueda difusa por nombre. Si se encuentra una coincidencia exacta para un código de acciones, devuelva un diccionario que contenga la información relevante del código de acciones.

  • asset_types (str or list of str, optional) – Tipo de seguridad. Acepta una lista o una cadena separada por comas, incluidos los tipos de activos reconocidos: - Acciones electrónicas - Índices IDX - Fondos FD - Futuros FT - Opciones OPT

  • match_full_name (bool, default False) – Si es Verdadero, coincida con el nombre completo de la acción o fondo; el valor predeterminado es Falso. Si el nombre completo coincide, tarda más

  • printout (bool, default True) – Si es verdadero, imprima los resultados coincidentes.

  • verbose (bool, default False) – Cuando se casan demasiados valores (más de cinco), si se debe mostrar la información completa - Falso (predeterminado): solo muestra las coincidencias de mayor relevancia - Verdadero: muestra todos los resultados coincidentes

Devuelve:

stock_info: cuando solo se encuentra una coincidencia, devuelve un dictado que contiene la información básica encontrada. La información varía según el tipo de seguridad: - Información de stock: nombre de la empresa, región, industria, nombre completo, estado de cotización, fecha de cotización - Información del índice: nombre del índice, nombre completo, emisor, categoría, fecha de emisión - Fondo:

Tipo del valor devuelto:

dict

Notas

Ejemplo de uso ver: get_basic_info()

qteasy.filter_stock_codes(date: str = 'today', **kwargs) list[fuente]

Filtre acciones según los parámetros de entrada y llame a filter_stocks para devolver una lista de códigos de acciones

Parámetros:
  • date (date-like str) – Filtrar la fecha de cotización de la acción. Se excluirán las acciones cotizadas después de esta fecha:

  • kwargs (str or list of str) – Puede filtrar acciones a través de los siguientes parámetros. Se pueden ingresar múltiples condiciones de filtrado al mismo tiempo y solo se filtrarán las acciones que cumplan con los requisitos.

Tipo del valor devuelto:

list, 股票代码清单

Ver también

filter_stocks

qteasy.filter_stocks(date: str = 'today', **kwargs) DataFrame[fuente]

Filtre acciones según los parámetros de entrada y devuelva un DataFrame que contenga códigos de acciones e información relacionada

Parámetros:
  • date (date-like str) – Filtrar la fecha de cotización de la acción. Se excluirán las acciones cotizadas después de esta fecha:

  • kwargs (str or list of str) – Puede filtrar acciones a través de los siguientes parámetros. Se pueden ingresar múltiples condiciones de filtrado al mismo tiempo, y solo se filtrarán las acciones que cumplan con los requisitos - índice: filtrar por índice, se excluirán las acciones no incluidas en el índice especificado - industria: industria de la empresa, solo se seleccionarán las industrias que cotizan en bolsa - área: provincia donde se encuentra la empresa, solo se seleccionarán acciones de las provincias que cotizan en bolsa - mercado: mercado, dividido en tablero principal, GEM, etc. - bolsa: Bolsa, incluidas la Bolsa de Valores de Shanghai y la Bolsa de Valores de Shenzhen

Devuelve:

DataFrame

Tipo del valor devuelto:

筛选出来的股票的基本信息

Ejemplos

>>> # 筛选出2019年1月1日以后的上证300指数成分股
>>> filter_stocks(date='2019-01-01', index='000300.SH')
       symbol   name area industry market  list_date exchange
ts_code
000001.SZ  000001   平安银行   深圳       银行     主板 1991-04-03     SZSE
000002.SZ  000002    万科A   深圳     全国地产     主板 1991-01-29     SZSE
000063.SZ  000063   中兴通讯   深圳     通信设备     主板 1997-11-18     SZSE
000069.SZ  000069   华侨城A   深圳     全国地产     主板 1997-09-10     SZSE
000100.SZ  000100  TCL科技   广东      元器件     主板 2004-01-30     SZSE
           ...    ...  ...      ...    ...        ...      ...
600732.SH  600732   爱旭股份   上海     电气设备     主板 1996-08-16      SSE
600754.SH  600754   锦江酒店   上海     酒店餐饮     主板 1996-10-11      SSE
600875.SH  600875   东方电气   四川     电气设备     主板 1995-10-10      SSE
601699.SH  601699   潞安环能   山西     煤炭开采     主板 2006-09-22      SSE
688223.SH  688223   晶科能源   江西     电气设备    科创板 2022-01-26      SSE
[440 rows x 7 columns]
>>> # 筛选出2019年1月1日以后上市的上海银行业的股票
>>> filter_stocks(date='2019-01-01', industry='银行', area='上海')
           name area industry market  list_date exchange
ts_code
600000.SH  浦发银行   上海       银行     主板 1999-11-10      SSE
601229.SH  上海银行   上海       银行     主板 2016-11-16      SSE
601328.SH  交通银行   上海       银行     主板 2007-05-15      SSE

Utilice los datos descargados - Obtenga precios o indicadores técnicos

Puntos de entrada de recuperación de datos: para el análisis diario, el trabajo estratégico y la preparación de visualización, prefiera ⟦CÓDIGO0⟧⟦CÓDIGO1⟧⟦CÓDIGO2⟧⟦CÓDIGO3⟧⟦CÓDIGO4⟧⟦CÓDIGO5⟧⟦CÓDIGO 6⟧⟦CÓDIGO7⟧⟦CÓDIGO8⟧⟦CÓDIGO9⟧⟦CÓDIGO10⟧⟦CÓDIGO11⟧⟦CÓDIGO12⟧.

qteasy.get_history_data(htypes=None, *, htype_names=None, data_types=None, data_source=None, shares=None, symbols=None, start=None, end=None, freq=None, rows=None, asset_type=None, adj=None, as_data_frame=None, group_by=None, **kwargs)[fuente]

Dados los instrumentos, tipos de datos y frecuencia especificados, obtenga datos históricos de la fuente de datos local y reúnalos en una estructura que pueda ser utilizada directamente por la estrategia.

Puede especificar los tipos de datos requeridos a través de ⟦CÓDIGO0⟧⟦CÓDIGO1⟧⟦CÓDIGO2⟧⟦CÓDIGO3⟧⟦CÓDIGO4⟧⟦CÓDIGO5⟧⟦CÓDIGO 6⟧⟦CÓDIGO7⟧⟦CÓDIGO8⟧⟦CÓDIGO9⟧⟦CÓDIGO10⟧⟦CÓDIGO11⟧⟦CÓDIGO12⟧, la función devuelve un HistoryPanel o un dictado de DataFrames agrupados por instrumento/tipo de datos. Para uso avanzado como inferencia de tipos de datos, conversión de frecuencia y trade_time_only, consulte las secciones relevantes en la documentación «Recuperación de datos históricos get_history_data».

Parámetros:
  • htype_names (str or list of str, optional) – Colección de nombres de datos históricos para recuperar; puede ser una cadena separada por comas (por ejemplo, 'open, high, low, close') or a list (e.g., ['open', 'high', 'low', 'close']). If empty, the system will infer available htypes based on parameters such as freq / asset_type.

  • htypes (list of DataType, optional, deprecated) – Lista de objetos de tipo de datos históricos; la semántica es similar a la interfaz htype_names. Prefer the new htype_names / data_types.

  • data_types (list of DataType, optional) – El conjunto de tipos de datos históricos a obtener debe ser un objeto de tipo de datos legal. Si se proporciona este parámetro, se ignorarán htype_names; de lo contrario, se crearán posibles htypes en función del parámetro htype_names.

  • data_source (DataSource, optional) – Fuente de datos para obtener datos históricos.

  • shares (str or list of str, optional) – Colección de códigos de seguridad; puede ser una cadena separada por comas (por ejemplo, '000001.SZ, 000002.SZ') or a list (e.g., ['000001.SZ', '000002.SZ']).

  • symbols (str or list of str, optional) – Colección de códigos de seguridad; puede ser una cadena separada por comas (por ejemplo, '000001, 000002') or a list (e.g., ['000001', '000002']).

  • start (str, optional) – AAAAMMDD HH:MM:SS formato fecha/hora, fecha/hora de inicio de los datos históricos que se obtendrán (si están disponibles)

  • end (str, optional) – AAAAMMDD HH:MM:SS formato fecha/hora, fecha/hora de finalización de los datos históricos que se obtendrán (si están disponibles)

  • rows (int, default 10) – Número de filas de datos históricos a obtener. Si se especifican inicio y fin, este parámetro se ignora y el rango de tiempo de los datos obtenidos es [inicio, fin]. Si no se especifican el inicio y el final, se obtendrán las filas de datos más recientes de la tabla de datos. Usar fila para obtener datos es mucho más lento que usar fecha

  • freq (str, optional) – Frecuencia; admite intervalos de minutos como ⟦CÓDIGO0⟧⟦CÓDIGO1⟧⟦CÓDIGO2⟧⟦CÓDIGO3⟧⟦CÓDIGO4⟧⟦CÓDIGO5⟧⟦CÓDIGO6⟧⟦CÓDIGO7 ⟧⟦CÓDIGO8⟧⟦CÓDIGO9⟧⟦CÓDIGO10⟧⟦CÓDIGO11⟧⟦CÓDIGO12⟧⟦CÓDIGO13⟧⟦CÓDIGO14⟧ (por ejemplo, candelabros).

  • asset_type (str or list of str, optional) – Filtro de tipo de activo; puede ser una cadena separada por comas (p. ej. ⟦CÓDIGO0⟧⟦CÓDIGO1⟧⟦CÓDIGO2⟧⟦CÓDIGO3⟧⟦CÓDIGO4⟧⟦CÓDIGO5⟧⟦CÓDIGO 6⟧⟦CÓDIGO7⟧⟦CÓDIGO8⟧⟦CÓDIGO9⟧⟦CÓDIGO10⟧⟦CÓDIGO11⟧⟦CÓDIGO12⟧, etc.

  • adj (str, optional, deprecated) – Opciones de ajuste obsoletas (⟦CÓDIGO0⟧⟦CÓDIGO1⟧⟦CÓDIGO2⟧⟦CÓDIGO3⟧⟦CÓDIGO4⟧⟦CÓDIGO5⟧⟦CÓDIGO6⟧⟦CÓDIGO7 ⟧⟦CÓDIGO8⟧⟦CÓDIGO9⟧⟦CÓDIGO10⟧⟦CÓDIGO11⟧⟦CÓDIGO12⟧⟦CÓDIGO13⟧⟦CÓDIGO14⟧).

  • as_data_frame (bool, default True) – Devuelve HistoryPanel when True; returns a dictionary of DataFrame when False.

  • group_by (str, default 'shares') – Clave de agrupación al devolver un dictado de DataFrames; comúnmente 'shares'/'share'/'s' or 'htypes'/'htype'/'h'.

  • **kwargs – Parámetros adicionales pasados ​​a la recuperación de datos subyacente/conversión de frecuencia (por ejemplo, drop_nan, resample_method, etc.). For detailed available values and semantics, see the documentation “Historical Data Retrieval get_history_data” and the infer_data_types notas.

Devuelve:

  • HistoryPanel: cuando as_data_frame es falso, devuelve un objeto HistoryPanel que contiene todos los datos solicitados.

  • dict of pandas.DataFrame – Cuando as_data_frame is True, returns a dict of DataFrames grouped by group_by.

Ejemplos

>>> import qteasy as qt
# 给出历史数据类型和证券代码,起止时间,可以获取该时间段内该股票的历史数据
>>> qt.get_history_data(htype_names='open, high, low, close, vol', shares='000001.SZ', start='20191225', end='20200110')
{'000001.SZ':
             open   high    low  close         vol
2019-12-25  16.45  16.56  16.24  16.30   414917.98
2019-12-26  16.34  16.48  16.32  16.47   372033.86
2019-12-27  16.53  16.93  16.43  16.63  1042574.72
2019-12-30  16.46  16.63  16.10  16.57   976970.31
2019-12-31  16.57  16.63  16.31  16.45   704442.25
2020-01-02  16.65  16.95  16.55  16.87  1530231.87
2020-01-03  16.94  17.31  16.92  17.18  1116194.81
2020-01-06  17.01  17.34  16.91  17.07   862083.50
2020-01-07  17.13  17.28  16.95  17.15   728607.56
2020-01-08  17.00  17.05  16.63  16.66   847824.12
2020-01-09  16.81  16.93  16.53  16.79  1031636.65
2020-01-10  16.79  16.81  16.52  16.69   585548.45
}
>>> # 除了股票的价格数据以外,也可以获取基金、指数的价格数据,如下面的代码获取000300.SH的指数价格
>>> qt.get_history_data(htype_names='close', shares='000300.SH', start='20191225', end='20200105')
{'000300.SH':
              close
2019-12-25  3990.87
2019-12-26  4025.99
2019-12-27  4022.03
2019-12-30  4081.63
2019-12-31  4096.58
2020-01-02  4152.24
2020-01-03  4144.96
}
>>> # 以及基金的净值数据
>>> qt.get_history_data(htype_names='unit_nav, accum_nav', shares='000001.OF', start='20191225', end='20200105')
{'000001.OF':
            unit_nav  accum_nav
2019-12-25     1.086      3.547
2019-12-26     1.096      3.557
2019-12-27     1.091      3.552
2019-12-30     1.100      3.561
2019-12-31     1.105      3.566
2020-01-02     1.123      3.584
2020-01-03     1.127      3.588
}
>>> # 不光价格数据,其他类型的数据也可以同时获取:
>>> qt.get_history_data(htype_names='close, pe, pb', shares='000001.SZ', start='20191225', end='20200105')
{'000001.SZ':
            close       pe      pb
2019-12-25  16.30  12.7454  1.1798
2019-12-26  16.47  12.8784  1.1921
2019-12-27  16.63  13.0035  1.2036
2019-12-30  16.57  12.9566  1.1993
2019-12-31  16.45  12.8627  1.1906
2020-01-02  16.87  13.1911  1.2210
2020-01-03  17.18  13.4335  1.2434
}
>>> # 可以同时混合获取多只股票、指数、多种数据类型的数据,如果某些数据类型缺失,会用NaN填充,注意000001.SZ是股票平安银行,000001.SH是上证指数
>>> qt.get_history_data(htype_names='close, pe, pb, total_mv, eps', shares='000001.SZ, 000001.SH', start='20191225', end='20200105')
{'000001.SZ':
            close       pe      pb      total_mv   eps
2019-12-25  16.30  12.7454  1.1798  3.163165e+07   NaN
2019-12-26  16.47  12.8784  1.1921  3.196155e+07   NaN
2019-12-27  16.63  13.0035  1.2036  3.227204e+07   NaN
2019-12-30  16.57  12.9566  1.1993  3.215561e+07   NaN
2019-12-31  16.45  12.8627  1.1906  3.192274e+07  1.54
2020-01-02  16.87  13.1911  1.2210  3.273778e+07  1.54
2020-01-03  17.18  13.4335  1.2434  3.333937e+07  1.54,
'000001.SH':
              close     pe    pb      total_mv  eps
2019-12-25  2981.88  13.74  1.38  3.987686e+13  NaN
2019-12-26  3007.35  13.85  1.39  4.020871e+13  NaN
2019-12-27  3005.04  13.85  1.39  4.019086e+13  NaN
2019-12-30  3040.02  14.00  1.40  4.064796e+13  NaN
2019-12-31  3050.12  14.05  1.41  4.079249e+13  NaN
2020-01-02  3085.20  14.22  1.42  4.128453e+13  NaN
2020-01-03  3083.79  14.22  1.42  4.127933e+13  NaN
}
>>> # 通过设置freq参数,可以获取不同频率的K线数据,如设置freq='H'可以获取1小时频率的数据
>>> qt.get_history_data(htype_names='open:b, high:b, low:b, close:b', shares='000001.SZ', start='20191229', end='20200106', freq='H', asset_type='E')
 {'000001.SZ':
                           open        high         low       close
2019-12-30 10:00:00  1796.92174  1796.92174  1796.92174  1796.92174
2019-12-30 11:00:00  1790.37160  1800.19681  1758.71259  1786.00484
2019-12-30 14:00:00  1811.11371  1813.29709  1795.83005  1806.74695
2019-12-30 15:00:00  1805.65526  1808.93033  1793.64667  1808.93033
2019-12-31 10:00:00  1808.93033  1808.93033  1808.93033  1808.93033
2019-12-31 11:00:00  1806.74695  1806.74695  1780.54639  1788.18822
2019-12-31 14:00:00  1786.00484  1788.18822  1781.63808  1786.00484
2019-12-31 15:00:00  1786.00484  1796.92174  1783.82146  1795.83005
2020-01-02 10:00:00  1817.66385  1817.66385  1817.66385  1817.66385
2020-01-02 11:00:00  1819.84723  1848.23117  1807.83864  1840.58934
2020-01-02 14:00:00  1842.77272  1847.13948  1828.58075  1843.86441
2020-01-02 15:00:00  1843.86441  1844.95610  1836.22258  1841.68103
2020-01-03 10:00:00  1849.32286  1849.32286  1849.32286  1849.32286
2020-01-03 11:00:00  1849.32286  1879.89018  1849.32286  1877.70680
2020-01-03 14:00:00  1863.51483  1889.71539  1863.51483  1884.25694
2020-01-03 15:00:00  1884.25694  1884.25694  1872.24835  1875.52342
}
>>> # 可以设置b_days_only参数来将价格填充到非交易日,形成完整的日期序列
>>> qt.get_history_data(htype_names='open, high, low, close, vol', shares='000001.SZ', start='20191225', end='20200105', b_days_only=False)
{'000001.SZ':
              open   high    low  close         vol
 2019-12-25  16.45  16.56  16.24  16.30   414917.98
 2019-12-26  16.34  16.48  16.32  16.47   372033.86
 2019-12-27  16.53  16.93  16.43  16.63  1042574.72
 2019-12-28  16.53  16.93  16.43  16.63  1042574.72
 2019-12-29  16.53  16.93  16.43  16.63  1042574.72
 2019-12-30  16.46  16.63  16.10  16.57   976970.31
 2019-12-31  16.57  16.63  16.31  16.45   704442.25
 2020-01-01  16.57  16.63  16.31  16.45   704442.25
 2020-01-02  16.65  16.95  16.55  16.87  1530231.87
 2020-01-03  16.94  17.31  16.92  17.18  1116194.81
 2020-01-04  16.94  17.31  16.92  17.18  1116194.81
 2020-01-05  16.94  17.31  16.92  17.18  1116194.81
 }
>>> # 使用特殊的htypes,可以获取特定的数据,如指数权重数据,下面的代码获取000001.SZ在HS300指数重的权重数据,单位为百分比
>>> qt.get_history_data(htype_names='wt_id:000300.SH', shares='000001.SZ, 000002.SZ', start='20191225', end='20200105')
{'000001.SZ':
            wt_idx:000300.SH
2020-01-02        1.1714
2020-01-03        1.1714,
'000002.SZ':
            wt_idx:000300.SH
2020-01-02        1.3595
2020-01-03        1.3595
}