""" 股票名称映射数据库 包含常见A股股票的名称到代码的映射 """ from typing import Optional # 常见A股股票名称映射(按行业分类) STOCK_NAME_MAP = { # 白酒 "贵州茅台": "600519", "茅台": "600519", "五粮液": "000858", "泸州老窖": "000568", "山西汾酒": "600809", "洋河股份": "002304", # 银行 "工商银行": "601398", "工行": "601398", "建设银行": "601939", "建行": "601939", "农业银行": "601288", "农行": "601288", "中国银行": "601988", "中行": "601988", "交通银行": "601328", "交行": "601328", "招商银行": "600036", "招行": "600036", "兴业银行": "601166", "浦发银行": "600000", "民生银行": "600016", "光大银行": "601818", "平安银行": "000001", "宁波银行": "002142", # 保险 "中国平安": "601318", "平安": "601318", "中国人寿": "601628", "中国太保": "601601", "新华保险": "601336", # 证券 "中信证券": "600030", "中信": "600030", "海通证券": "600837", "国泰君安": "601211", "华泰证券": "601688", "广发证券": "000776", "招商证券": "600999", "东方证券": "600958", # 科技 "中兴通讯": "000063", "中兴": "000063", "立讯精密": "002475", "京东方A": "000725", "京东方": "000725", "TCL科技": "000100", "海康威视": "002415", "大华股份": "002236", "科大讯飞": "002230", "讯飞": "002230", "紫光国微": "002049", "中芯国际": "688981", "韦尔股份": "603501", # 新能源汽车 "比亚迪": "002594", "宁德时代": "300750", "宁德": "300750", "长城汽车": "601633", "长城": "601633", "上汽集团": "600104", "上汽": "600104", "广汽集团": "601238", "广汽": "601238", "吉利汽车": "00175", # 港股 "理想汽车": "02015", # 港股 "小鹏汽车": "09868", # 港股 "蔚来": "09866", # 港股 # 医药 "恒瑞医药": "600276", "恒瑞": "600276", "药明康德": "603259", "迈瑞医疗": "300760", "迈瑞": "300760", "片仔癀": "600436", "云南白药": "000538", "白药": "000538", "爱尔眼科": "300015", "智飞生物": "300122", # 消费 "伊利股份": "600887", "伊利": "600887", "海天味业": "603288", "海天": "603288", "格力电器": "000651", "格力": "000651", "美的集团": "000333", "美的": "000333", "海尔智家": "600690", "海尔": "600690", "老板电器": "002508", # 地产 "万科A": "000002", "万科": "000002", "保利发展": "600048", "保利": "600048", "招商蛇口": "001979", "金地集团": "600383", "金地": "600383", # 能源 "中国石油": "601857", "中石油": "601857", "中国石化": "600028", "中石化": "600028", "中国神华": "601088", "神华": "601088", "陕西煤业": "601225", "长江电力": "600900", "三峡能源": "600905", # 通信 "中国移动": "600941", "移动": "600941", "中国电信": "601728", "电信": "601728", "中国联通": "600050", "联通": "600050", "中国卫通": "601698", "卫通": "601698", # 航空航天 "中国国航": "601111", "国航": "601111", "南方航空": "600029", "南航": "600029", "东方航空": "600115", "东航": "600115", "中国卫星": "600118", "航天科技": "000901", # 钢铁 "宝钢股份": "600019", "宝钢": "600019", "河钢股份": "000709", "河钢": "000709", "鞍钢股份": "000898", "鞍钢": "000898", # 有色金属 "紫金矿业": "601899", "紫金": "601899", "中国铝业": "601600", "中铝": "601600", "江西铜业": "600362", "江铜": "600362", "洛阳钼业": "603993", # 化工 "万华化学": "600309", "万华": "600309", "华鲁恒升": "600426", "恒力石化": "600346", "荣盛石化": "002493", # 电力设备 "隆基绿能": "601012", "隆基": "601012", "阳光电源": "300274", "通威股份": "600438", "通威": "600438", "特变电工": "600089", # 军工 "中航沈飞": "600760", "沈飞": "600760", "中航西飞": "000768", "西飞": "000768", "中国船舶": "600150", "中船": "600150", "航发动力": "600893", "航天发展": "000547", # 互联网 "腾讯控股": "00700", # 港股 "腾讯": "00700", "阿里巴巴": "09988", # 港股 "阿里": "09988", "美团": "03690", # 港股 "京东": "09618", # 港股 "拼多多": "PDD", # 美股 "百度": "09888", # 港股 "网易": "09999", # 港股 "小米集团": "01810", # 港股 "小米": "01810", # 指数 "上证指数": "000001", "上证": "000001", "沪指": "000001", "深证成指": "399001", "深成指": "399001", "创业板指": "399006", "创业板": "399006", "科创50": "000688", "沪深300": "000300", "中证500": "000905", "中证1000": "000852", } def search_stock_by_name(name: str) -> Optional[str]: """ 根据股票名称搜索代码 Args: name: 股票名称或简称 Returns: 股票代码或None """ # 精确匹配 if name in STOCK_NAME_MAP: return STOCK_NAME_MAP[name] # 模糊匹配(包含关系) for stock_name, code in STOCK_NAME_MAP.items(): if name in stock_name or stock_name in name: return code return None def get_stock_name(code: str) -> Optional[str]: """ 根据代码获取股票名称 Args: code: 股票代码 Returns: 股票名称或None """ for name, stock_code in STOCK_NAME_MAP.items(): if stock_code == code: return name return None