fintie.stock.utils 源代码

# -*- coding: utf-8 -*-
# This file is part of fintie.

# Copyright (C) 2018-present qytz <hhhhhf@foxmail.com>
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.


FILTER_DICT = {
    "ASTOCKS": {"SH": "^SH6", "SZ": "^SZ00|^SZ30"},  # A股
    "BSTOCKS": {"SH": "^SH9", "SZ": "^SZ2"},  # B股
    "INDEX": {"SH": "^SH00", "SZ": "^SZ399"},  # 指数
    "ETF": {"SH": "^SH51", "SZ": "^SZ15|^SZ16"},
    "CB": {"SH": "^SH100|^SH110|^SSH112|^SH113", "SZ": "^SZ12"},  # 可转债
    "ALL": {"SH": "^SH", "SZ": "^SZ"},
}


[文档]def filter_by_symbol(df, symbol_type="ALL", market="ALL"): """根据 symbol 过滤返回符合条件的数据 df 至少应包含 symbol 列,该列类型为字符串,内容规则如下: * SHxxxxxx 上海股票交易所代码 * SZxxxxxx 深圳股票交易所代码 symbol_type: ASTOCKS/BSTOCKS/INDEX/ETF/CB/ALL * ASTOCKS: A股股票 * BSTOCKS: B股股票 * INDEX: 指数 * ETF: ETF基金 * CB: CONVERTIBLE BONDS,可转债 market: SZ/SH/ALL * SZ: 深圳股票交易所 * SH: 上海股票交易所 * ALL: 所有 股票代码 * 上海证券交易所 ======== ========= 首位代码 产品定义 ======== ========= 0 国债/指数 00 上证指数、沪深300指数、中证指数 1 债券 2 回购 3 期货 4 备用 5 基金/权证 6 A股 7 非交易业务(发行、权益分配) 8 备用 9 B股 ======== ========= * 深圳证券交易所 ======== ========= 首位代码 产品定义 ======== ========= 00 A股证券 002~004 中小板 1 债券 2 B股 30 创业板证券 39 综合指数、成份指数 ======== ========= """ if symbol_type == "ALL" and market == "ALL": return df if symbol_type not in FILTER_DICT: symbol_type = "ALL" if market in FILTER_DICT[symbol_type]: pat = FILTER_DICT[symbol_type][market] else: pat = "|".join(FILTER_DICT[symbol_type].values()) return df[df.symbol.str.contains(pat)]