abupy.MarketBu package

Submodules

abupy.MarketBu.ABuDataBase module

数据源基础模块

class abupy.MarketBu.ABuDataBase.BaseMarket(symbol)[源代码]

Bases: object

数据源基础市场基类

K_DEV_MODE_LIST = ['A0001', 'OPPOR9', 'OPPOR9', 'VIVOX5', 'VIVOX6', 'VIVOX6PLUS', 'VIVOX9', 'VIVOX9PLUS']
K_OS_VERSION_LIST = ['4.3', '4.2.2', '4.4.2', '5.1.1']
K_PHONE_SCREEN = [[1080, 1920]]
req_time()[源代码]

请求时间seconds模拟

class abupy.MarketBu.ABuDataBase.FuturesBaseMarket(symbol)[源代码]

Bases: abc.NewBase

基于期货类型的数据源抽象基类

kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

class abupy.MarketBu.ABuDataBase.StockBaseMarket(symbol)[源代码]

Bases: abc.NewBase

基于股票类型的数据源抽象基类

kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

minute(*args, **kwargs)[源代码]

分钟k线接口

class abupy.MarketBu.ABuDataBase.SupportMixin[源代码]

Bases: object

混入类,声明数据源支持的市场,以及检测是否支持市场

check_support(symbol=None, rs=True)[源代码]

检测参数symbol对象或者内部self._symbol是否被数据源支持 :param symbol: 外部可设置检测symbol对象,Symbol对象,EMarketTargetType对象或字符串对象 :param rs: 如果数据源不支持,是否抛出异常,默认抛出 :return: 返回是否支持 bool

class abupy.MarketBu.ABuDataBase.TCBaseMarket(symbol)[源代码]

Bases: abc.NewBase

基于比特币,莱特币等类型的数据源抽象基类

kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

minute(*args, **kwargs)[源代码]

比特币量化日内短线频繁,需要定制自己的日内策略

abupy.MarketBu.ABuDataCache module

对数据采集进行存储,读取,以及数据更新merge策略等实现模块

abupy.MarketBu.ABuDataCache.covert_hdf_to_csv()[源代码]

转换hdf5下的所有cache缓存至csv文件存贮格式

abupy.MarketBu.ABuDataCache.dump_kline_df(dump_df, symbol_key, date_key)[源代码]

封装不同存储模式,根据symbol_key,date_key存储dump_df金融时间序列 储存方法 symbol_key->date_key->dump_df

eg : usTSLA->usTSLA_20100214_20170214->tsla_df

参数:
  • dump_df – 需要存储的金融时间序列实体pd.DataFrame对象
  • symbol_key – str对象,eg. usTSLA
  • date_key – str对象,eg. usTSLA_20100214_20170214 包含了df的时间开始时间与结束时间,便于计算需要的数据段是否在此之间
abupy.MarketBu.ABuDataCache.load_all_kline(want_df=True, market=None, all_market=False)[源代码]

只针对hdf5模式下生效,根据参数want_df决定读取hdf5中所有的index symbol数据或者实体pd.DataFrame数据 :param want_df: 是要实体pd.DataFrame数据还是索引symbol数据 :param market: 默认None,如None则服从ABuEnv.g_market_target市场设置 :param all_market: 默认False, 如果True则不过滤市场,即忽略market参数指定的市场 :return:

abupy.MarketBu.ABuDataCache.load_kline_df(symbol_key)[源代码]

封装不同存储模式,根据symbol_key读取对应的本地缓存金融时间序列对象数据 :param symbol_key: str对象symbol :return: (金融时间序列pd.DataFrame对象,索引date_key中start请求日期int,索引date_key中end请求日期int)

abupy.MarketBu.ABuDataCache.load_kline_df_net(source, temp_symbol, n_folds, start, end, start_int, end_int, save)[源代码]

通过网络请求数据源,获取temp_symbol以及参数时间日期对应的金融时间序列pd.DataFrame对象 :param source: 数据源BaseMarket的子类,非实例化对象 :param temp_symbol: Symbol类对象 :param n_folds: 需要获取几年的回测数据,int :param start: 开始回测日期,str对象 :param end: 结束回测日期,str对象 :param start_int: 开始回测日期,int :param end_int: 结束回测日期,int :param save: 是否从网络成功获取数据后进行数据的保存

abupy.MarketBu.ABuDataCache.rm_data_from_symbol(symbol)[源代码]

删除特定symbol对应的本地缓存数据 :param symbol: Symbol对象 :return:

abupy.MarketBu.ABuDataCache.save_kline_df(df, temp_symbol, start_int, end_int)[源代码]

独立对外的保存kl数据接口 :param df: 需要存储的金融时间序列实体pd.DataFrame对象 :param temp_symbol: Symbbol对象 :param start_int: 请求的开始日期int :param end_int: 请求的结束日期int :return:

abupy.MarketBu.ABuDataFeed module

内置数据源示例实现模块:

所有数据接口仅供学习使用,以及最基本使用测试,如需进一步使用,请购买数据

class abupy.MarketBu.ABuDataFeed.BDApi(symbol)[源代码]

Bases: abupy.MarketBu.ABuDataBase.StockBaseMarket, abupy.MarketBu.ABuDataBase.SupportMixin

bd数据源,支持港股,美股,a股

K_NET_CONNECT_START = '&start='
K_NET_DAY = 'http://gp.baidu.com:80/stocks/stockkline?from=android&os_ver=21&format=json&vv=3.3.0&uid=&BDUSS=&cuid=%s&channel=default_channel&device=%s&logid=%s&actionid=%s&device_net_type=wifi&period=day&stock_code=%s&fq_type=front'
MINUTE_NET_5D = 'http://gp.baidu.com:80/stocks/stocktimelinefive?from=android&os_ver=21&format=json&vv=3.3&uid=&BDUSS=&cuid=%s&channel=default_channel&device=%s&logid=%s&actionid=%s&device_net_type=wifi&stock_code=%s&step=10'
kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

minute(n_folds=5, *args, **kwargs)[源代码]
class abupy.MarketBu.ABuDataFeed.HBApi(symbol)[源代码]

Bases: abupy.MarketBu.ABuDataBase.TCBaseMarket, abupy.MarketBu.ABuDataBase.SupportMixin

hb数据源,支持币类,比特币,莱特币

K_NET_BASE = 'https://www.huobi.com/qt/staticmarket/%s_kline_100_json.js?length=%d'
kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

minute(*args, **kwargs)[源代码]

分钟k线接口

class abupy.MarketBu.ABuDataFeed.NTApi(symbol)[源代码]

Bases: abupy.MarketBu.ABuDataBase.StockBaseMarket, abupy.MarketBu.ABuDataBase.SupportMixin

nt数据源,支持港股,美股,a股

K_NET_BASE = 'http://img1.money.126.net/data/%s/kline/day/history/%d/%s.json'
kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

minute(n_fold=5, *args, **kwargs)[源代码]

分钟k线接口

class abupy.MarketBu.ABuDataFeed.SNFuturesApi(symbol)[源代码]

Bases: abupy.MarketBu.ABuDataBase.FuturesBaseMarket, abupy.MarketBu.ABuDataBase.SupportMixin

sn futures数据源,支持国内期货

K_NET_BASE = 'http://stock.finance.sina.com.cn/futures/api/json_v2.php/IndexService.getInnerFuturesDailyKLine?symbol=%s'
kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

class abupy.MarketBu.ABuDataFeed.SNFuturesGBApi(symbol)[源代码]

Bases: abupy.MarketBu.ABuDataBase.FuturesBaseMarket, abupy.MarketBu.ABuDataBase.SupportMixin

sn futures数据源,支持国际期货

K_NET_BASE = 'http://stock2.finance.sina.com.cn/futures/api/jsonp.php/var %s%s=/GlobalFuturesService.getGlobalFuturesDailyKLine?symbol=%s&_=%s'
kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

class abupy.MarketBu.ABuDataFeed.SNUSApi(symbol)[源代码]

Bases: abupy.MarketBu.ABuDataBase.StockBaseMarket, abupy.MarketBu.ABuDataBase.SupportMixin

snus数据源,支持美股

K_NET_BASE = 'http://stock.finance.sina.com.cn/usstock/api/json_v2.php/US_MinKService.getDailyK?symbol=%s&___qn=3n'
kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

minute(n_fold=5, *args, **kwargs)[源代码]

分钟k线接口

class abupy.MarketBu.ABuDataFeed.TXApi(symbol)[源代码]

Bases: abupy.MarketBu.ABuDataBase.StockBaseMarket, abupy.MarketBu.ABuDataBase.SupportMixin

tx数据源,支持港股,美股,a股

K_DB_TABLE_NAME = 'values_table'
K_DB_TABLE_SN = 'stockCode'
K_NET_BASE = 'http://ifzq.gtimg.cn/appstock/app/%sfqkline/get?p=1&param=%s,day,,,%d,qfq&_appName=android&_dev=%s&_devId=%s&_mid=%s&_md5mid=%s&_appver=4.2.2&_ifChId=303&_screenW=%d&_screenH=%d&_osVer=%s&_uin=10000&_wxuin=20000&__random_suffix=%d'
K_NET_HK_MNY = 'http://proxy.finance.qq.com/ifzqgtimg/stock/corp/hkmoney/sumary?symbol=%s&type=sum&jianjie=1&_appName=android&_dev=%s&_devId=%s&_mid=%s&_md5mid=%s&_appver=5.5.0&_ifChId=277&_screenW=%d&_screenH=%d&_osVer=%s&_uin=10000&_wxuin=20000&_net=WIFI&__random_suffix=%d'
K_SYMBOLS_DB = '/Users/tu/PycharmProjects/yabee_abu/abupy/RomDataBu/symbols_db.db'
hkmoney()[源代码]

港股概要信息接口

kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

minute(n_fold=5, *args, **kwargs)[源代码]

分钟k线接口

p_dir = '/Users/tu/PycharmProjects/yabee_abu/abupy'
abupy.MarketBu.ABuDataFeed.query_symbol_from_pinyin(pinyin)[源代码]

通过拼音对symbol进行模糊查询

abupy.MarketBu.ABuDataFeed.random_from_list(array)[源代码]

从参数array中随机取一个元素

abupy.MarketBu.ABuDataParser module

数据源解析模块以及示例内置数据源的解析类实现

class abupy.MarketBu.ABuDataParser.AbuDataParseWrap[源代码]

Bases: object

做为类装饰器封装替换解析数据统一操作,装饰替换init

class abupy.MarketBu.ABuDataParser.BDParser(symbol, json_dict)[源代码]

Bases: object

bd数据源解析类

data_keys = ['data', 'dataMash']
s_calc_dm = True
class abupy.MarketBu.ABuDataParser.HBTCParser(*args, **kwargs)[源代码]

Bases: object

示例币类市场数据源解析类,被类装饰器AbuDataParseWrap装饰

class abupy.MarketBu.ABuDataParser.NTParser(*args, **kwargs)[源代码]

Bases: object

nt数据源解析类,被类装饰器AbuDataParseWrap装饰

class abupy.MarketBu.ABuDataParser.SNFuturesGBParser(*args, **kwargs)[源代码]

Bases: object

示例国际期货数据源解析类,被类装饰器AbuDataParseWrap装饰

class abupy.MarketBu.ABuDataParser.SNFuturesParser(*args, **kwargs)[源代码]

Bases: object

示例期货数据源解析类,被类装饰器AbuDataParseWrap装饰

class abupy.MarketBu.ABuDataParser.SNUSParser(*args, **kwargs)[源代码]

Bases: object

snus数据源解析类,被类装饰器AbuDataParseWrap装饰

class abupy.MarketBu.ABuDataParser.TXParser(*args, **kwargs)[源代码]

Bases: object

tx数据源解析类,被类装饰器AbuDataParseWrap装饰

abupy.MarketBu.ABuDataParser.del_columns(df, columns)[源代码]

从df中删除参数columns指定的整列数据 :param df: 金融时间序列切割pd.DataFrame对象 :param columns: 可迭代的字符序列,代表需要删除的指定列 :return:

abupy.MarketBu.ABuDataSource module

数据源模块

abupy.MarketBu.ABuDataSource.kline_pd(symbol, data_mode, n_folds=2, start=None, end=None, save=True)[源代码]

统一调度选择内部或者外部数据源,决策是否本地数据读取,还是网络数据读取,以及根据不 同的数据获取模式,调整数据的选择范围

eg: n_fold=2, start=None, end=None ,从今天起往前数两年
n_fold=2, start=‘2015-02-14’, end=None, 从2015-02-14到现在,n_fold无效 n_fold=2, start=None, end=‘2016-02-14’,从2016-02-14起往前数两年 n_fold=2, start=‘2015-02-14’, end=‘2016-02-14’,从start到end
参数:
  • data_mode – EMarketDataSplitMode enum对象
  • symbol – string or Symbol对象 e.g. ‘sz300104’ e.g. Symbol(MType.SZ, ‘300104’)
  • n_folds – 年, 如果start不为空,则n_fold失效
  • start – 开始时间 start为None时,start会根据end和n_fold计算出来,str对象
  • end – 结束时间,str对象
  • save – 从网络下载后是否缓存到本地

abupy.MarketBu.ABuHkUnit module

港股每一手交易数量模块

abupy.MarketBu.ABuHkUnit.AbuHkUnit()[源代码]

AbuHkUnit单例,混入FreezeAttrMixin在__init__中冻结了接口,外部只可以读取

abupy.MarketBu.ABuIndustries module

行业分类模块,仅支持美股,a股,港股

abupy.MarketBu.ABuIndustries.get_industries_panel_from_target(target_symbol, show=False, n_folds=2)[源代码]

获取target_symbol所在的行业分类中所有的金融时间序列,组成三维pd.Panel对象 :param target_symbol: symbol str对象 :param show: 是否可视化行业分类中所有的金融时间序列 :param n_folds: 获取n_folds年历史交易数据 :return: (pd.Panel对象, p_date.swapaxes(‘items’, ‘minor’))

abupy.MarketBu.ABuIndustries.industries_df(target_symbol)[源代码]

分别查询target_symbol是否在美股,a股,港股中有对应的行业分类,如果查询到 返回查询的结果industries(pd.DataFrame对象)以及 所属symbol市场类,即 AbuSymbolStockBase子类 :param target_symbol: symbol str对象 :return: (返回查询的结果industries: pd.DataFrame对象, 所属symbol市场类: AbuSymbolStockBase子类)

abupy.MarketBu.ABuIndustries.industries_factorize(market=None)[源代码]

查询market所在市场的行业分类离散值,默认market=None,即使用ABuEnv.g_market_target :param market: 需要查询的市场,eg:EMarketTargetType.E_MARKET_TARGET_US :return: 对应market的行业分类简述和factorize值,pd.Series对象

eg:

1 中国食品、饮料与烟草 2 油气/钻孔与探测 3 出版业/报纸 4 生物技术 5 数据存储设备 6 教育培训 7 电视 8 中国网络游戏 9 中国新能源

...

249 食品多样化经营 250 电影制作及影院 251 农产品 252 烟草制品及其它 253 铝 254 汽车配件批发商 255 家具装饰店 256 乳酪产品 257 医药生物 258 中国酒店餐饮

eg:查询A股市场行业:
input:
ABuIndustries.industries_factorize(market=EMarketTargetType.E_MARKET_TARGET_CN)
output:

1 商业贸易 2 有色金属 3 电气设备 4 家用电器 5 建筑装饰 6 计算机 7 轻工制造 8 机械设备 9 医药生物

...

25 国防军工 26 A股指数 27 非银金融 28 建筑建材 29 银行 30 信息设备 31 钢铁 32 交运设备 33 餐饮旅游 34 黑色金属

abupy.MarketBu.ABuIndustries.industries_market(market=None)[源代码]
查询market所在市场的句柄对象,即:
美股市场E_MARKET_TARGET_US:AbuSymbolUS对象 a股市场E_MARKET_TARGET_CN:AbuSymbolCN对象 港股市场E_MARKET_TARGET_HK:AbuSymbolHK对象
参数:market – 需要查询的市场,eg:EMarketTargetType.E_MARKET_TARGET_US
返回:AbuSymbolUS对象 or AbuSymbolCN对象 or AbuSymbolHK对象
abupy.MarketBu.ABuIndustries.match_industries_factorize(match, market=None)[源代码]

通过模糊查询market所在市场中match关键字所示的所有行业factorize, 获取factorize后可通过query_factorize_industry_df将factorize 所示行业进行获取 eg: input:

ABuIndustries.match_industries_factorize(‘中国’)
output:
[(1, ‘中国食品、饮料与烟草’),
(8, ‘中国网络游戏’), (9, ‘中国新能源’), (22, ‘中国汽车与汽车零部件’), (31, ‘中国制药、生物科技和生命科学’), (32, ‘中国金融’), (33, ‘中国互联网软件服务’), (41, ‘中国金属与采矿’), (54, ‘中国建筑材料’), (66, ‘中国硬件、半导体与设备’), (79, ‘中国运输’), (81, ‘中国化学制品’), (114, ‘中国互联网信息服务’), (169, ‘中国房地产’), (195, ‘中国电子商务’), (212, ‘中国耐用消费品与服装’), (214, ‘中国一般制造业’), (216, ‘中国媒体’), (217, ‘中国日消品零售’), (220, ‘中国软件与服务’), (223, ‘中国传统能源’), (224, ‘中国能源设备与服务’), (228, ‘中国纸业与包装’), (232, ‘中国商业与专业服务’), (237, ‘中国教育培训’), (238, ‘中国医疗保健设备与服务’), (240, ‘中国非日消品零售’), (258, ‘中国酒店餐饮’)]
参数:
  • match – 匹配的行业关键字,支持通配符,eg:’医药*’, ‘互联网‘, ‘*科技’
  • market – 需要查询的市场,eg:EMarketTargetType.E_MARKET_TARGET_US
返回:

匹配的list序列对象,序列中每一个元素为(factorize, 本地描述),eg:(33, ‘中国互联网软件服务’)

abupy.MarketBu.ABuIndustries.query_factorize_industry_df(factorize_arr, market=None)[源代码]

使用match_industries_factorize可以查询到行业所对应的factorize序列, 使用factorize序列即组成需要查询的行业组合,返回行业组合pd.DataFrame对象 eg: 从美股所有行业中找到中国企业的行业

input:ABuIndustries.match_industries_factorize(‘中国’, market=EMarketTargetType.E_MARKET_TARGET_US) output:

[(1, ‘中国食品、饮料与烟草’),
(8, ‘中国网络游戏’), (9, ‘中国新能源’), (22, ‘中国汽车与汽车零部件’), (31, ‘中国制药、生物科技和生命科学’), (32, ‘中国金融’), (33, ‘中国互联网软件服务’), (41, ‘中国金属与采矿’), (54, ‘中国建筑材料’), (66, ‘中国硬件、半导体与设备’), (79, ‘中国运输’), (81, ‘中国化学制品’), (114, ‘中国互联网信息服务’), (169, ‘中国房地产’), (195, ‘中国电子商务’), (212, ‘中国耐用消费品与服装’), (214, ‘中国一般制造业’), (216, ‘中国媒体’), (217, ‘中国日消品零售’), (220, ‘中国软件与服务’), (223, ‘中国传统能源’), (224, ‘中国能源设备与服务’), (228, ‘中国纸业与包装’), (232, ‘中国商业与专业服务’), (237, ‘中国教育培训’), (238, ‘中国医疗保健设备与服务’), (240, ‘中国非日消品零售’), (258, ‘中国酒店餐饮’)]
然后使用ABuIndustries.query_factorize_industry_df((31, 32, 33))即可获取到
(31, ‘中国制药、生物科技和生命科学’), (32, ‘中国金融’), (33, ‘中国互联网软件服务’),

行业中的所有股票信息的pd.DataFrame对象

参数:
  • factorize_arr – eg:(31, 32, 33) or [31, 32, 33] or 31
  • market – 需要查询的市场,eg:EMarketTargetType.E_MARKET_TARGET_US
返回:

返回行业组合pd.DataFrame对象

abupy.MarketBu.ABuIndustries.query_factorize_industry_symbol(factorize, market=None)[源代码]
套接query_factorize_industry_df方法,只返回df在的symbol序列:
query_factorize_industry_df(factorize, market=market).symbol
参数:
  • factorize – factorize_arr: eg:(31, 32, 33) or [31, 32, 33] or 31
  • market – 需要查询的市场,eg:EMarketTargetType.E_MARKET_TARGET_US
返回:

pd.Series对象 eg:

1. 首先使用industries_factorize查询到outputa股行业分类 input:

ABuIndustries.industries_factorize(market=EMarketTargetType.E_MARKET_TARGET_CN)

output: 1 商业贸易 2 有色金属 3 电气设备 4 家用电器 5 建筑装饰 6 计算机 7 轻工制造 8 机械设备 9 医药生物

...

29 银行 30 信息设备 31 钢铁 32 交运设备 33 餐饮旅游 34 黑色金属

2. 使用query_factorize_industry_symbol((6, 9, 29)),查询计算机,医药生物,银行行业symbool input:

ABuIndustries.query_factorize_industry_symbol((6, 9, 29),

market=EMarketTargetType.E_MARKET_TARGET_CN)

output:
[‘sh601939’,

‘sh601398’, ‘sh601288’, ‘sh601328’, ‘sh601009’, .......... .......... ‘sz300513’, ‘sz002236’, ‘sz300044’, ‘sz300302’, ‘sh600756’]

abupy.MarketBu.ABuIndustries.query_match_industries_df(match, market=None)[源代码]

通过模糊查询market所在市场中match关键字所示的所有行业信息组装成pd.DataFrame对象 :param match: 匹配的行业关键字,支持通配符,eg:’医药*’, ‘互联网‘, ‘*科技’ :param market: 需要查询的市场,eg:EMarketTargetType.E_MARKET_TARGET_US :return: 返回行业组合pd.DataFrame对象

abupy.MarketBu.ABuIndustries.query_match_industries_symbol(match, market=None)[源代码]
套接query_match_industries_df方法,只返回df在的symbol序列:
query_match_industries_df(factorize, market=market).symbol
参数:
  • match – 匹配的行业关键字,支持通配符,eg:’医药*’, ‘互联网‘, ‘*科技’
  • market – 需要查询的市场,eg:EMarketTargetType.E_MARKET_TARGET_US
返回:

eg:

input:ABuIndustries.query_match_industries_symbol(‘医疗’, market=EMarketTargetType.E_MARKET_TARGET_CN) output:

[‘sz002826’,

‘sh600645’, ‘sz300534’, ‘sh600080’, ‘sz300595’, .......... .......... ‘sh600518’, ‘sh900904’, ‘sh600993’, ‘sh600332’, ‘sz002589’]

abupy.MarketBu.ABuMarket module

市场相关切割,选股,等操作模块

abupy.MarketBu.ABuMarket.K_MARKET_TEST_FN_BASE = '/Users/tu/abu/data/cache/market_test_symbols'

在market_train_test_split函数中,切割的训练集交易symbol,本地序列化存储路径的基础路径名

class abupy.MarketBu.ABuMarket.MarketMixin[源代码]

Bases: object

市场信息混入类,被混入类需要设置self.symbol_name, 通过code_to_symbol将symbol转换为Symbol对象, 通过Symbol对象 查询market和sub_market

symbol_market

描述器类:作用在类中需要lazy的对象方法上

symbol_sub_market

描述器类:作用在类中需要lazy的对象方法上

abupy.MarketBu.ABuMarket.all_symbol(market=None, ss=False, index=False, value=True)[源代码]

根据传入的市场获取全市场代码 :param market: 默认None,如None则服从ABuEnv.g_market_target市场设置 :param ss: 是否将返回序列使用pd.Series包装 :param index: 是否包含指数大盘symbol :param value: 返回字符串值,即如果序列中的元素是Symbol对象,Symbol转换字符串 :return:

abupy.MarketBu.ABuMarket.choice_symbols(count, market_symbols=None, market=None)[源代码]

在market_symbols中随机选择count个symbol,不放回随机的抽取方式 :param count: 选择count个(int) :param market_symbols: 备选symbols序列,如果None, 则从参数market选择全市场symbol做为备选 :param market: 默认None,如None则服从ABuEnv.g_market_target市场设置 :return: 随机选择count个symbol结果序列

abupy.MarketBu.ABuMarket.choice_symbols_with_replace(count, market_symbols=None, market=None)[源代码]

在market_symbols中随机选择count个symbol,有放回随机的抽取方式 :param count: 选择count个(int) :param market_symbols: 备选symbols序列,如果None, 则从参数market选择全市场symbol做为备选 :param market: 默认None,如None则服从ABuEnv.g_market_target市场设置 :return: 随机选择count个symbol结果序列

abupy.MarketBu.ABuMarket.g_use_env_market_set = False

在market_train_test_split函数中,切割的测试集交易symbol,本地序列化存储路径的基础路径名

abupy.MarketBu.ABuMarket.market_last_split_test(market=None)[源代码]

使用最后一次切割好的测试集symbols数据 :param market: 待获取测试集市场,eg:EMarketTargetType.E_MARKET_TARGET_US :return: 最后一次切割好的测试集symbols数据

abupy.MarketBu.ABuMarket.market_last_split_train(market=None)[源代码]

使用最后一次切割好的训练集symbols数据 :param market: 待获取测试集市场,eg:EMarketTargetType.E_MARKET_TARGET_US :return: 最后一次切割好的训练集symbols数据

abupy.MarketBu.ABuMarket.market_train_test_split(n_folds, market_symbols, market=None)[源代码]

切割训练集与测试集,本地训练化保存,只返回训练集 :param n_folds: 切割比例,透传KFold中使用的参数 :param market_symbols: 待切分的总market_symbols :param market: 待切分的市场,eg:EMarketTargetType.E_MARKET_TARGET_US :return: 返回训练集symbols数据

abupy.MarketBu.ABuMarket.query_symbol_market(target_symbol)[源代码]

查询target_symbol所对应的市场对象EMarketTargetType :param target_symbol: 支持Symbol对象类型和字符串对象类型 :return: EMarketTargetType对象

abupy.MarketBu.ABuMarket.split_k_market(k_split, market_symbols=None, market=None)[源代码]

将market_symbols序列切分成k_split个序列 :param k_split: 切分成子序列个数int :param market_symbols: 待切割的原始symbols序列,如果none, 将取market参数中指定的市场所有symbol :param market: 默认None,如None则服从ABuEnv.g_market_target市场设置 :return: list序列,序列中的每一个元素都是切割好的子symbol序列

abupy.MarketBu.ABuMarketDrawing module

市场,数据可视化绘制模块

abupy.MarketBu.ABuMarketDrawing.K_PLT_MAP_STYLE = ['b', 'c', 'g', 'k', 'm', 'r', 'y', 'w']

保存可视化png文件路径

abupy.MarketBu.ABuMarketDrawing.K_SAVE_CACHE_HTML_ROOT = '/Users/tu/abu/data/save_html'

暂时只做全据设置,不画量只画价格

abupy.MarketBu.ABuMarketDrawing.K_SAVE_CACHE_PNG_ROOT = '/Users/tu/abu/data/save_png'

保存可视化html文件路径

abupy.MarketBu.ABuMarketDrawing.plot_candle_form_klpd(kl_pd, day_sum=False, html_bk=False, view_indexs=None, save=False, name=None)[源代码]
参数:
  • kl_pd – 金融时间序列,pd.DataFrame对象
  • day_sum – 端线图 matplotlib的版本有些有bug显示不对
  • html_bk – 使用bk绘制可交互的k图,在网页上进行交互
  • view_indexs – 需要在可视化图中重点标记的交易日信息 eg. view_index_inner = [pd.to_datetime(str(p_order[‘buy_date’])), pd.to_datetime(str(p_order[‘sell_date’]))]
  • save – 是否保存可视化结果在本地
  • name – 外部设置name做为可视化titile,如果不设置取kl_pd.name,即symbol name
abupy.MarketBu.ABuMarketDrawing.plot_candle_from_order(order, date_ext=120, day_sum=False, html_bk=False, save=False)[源代码]

根据order绘制交易发生在金融时间序列上的位置等信息,对交易进行可视化分析时使用 :param order: AbuOrder对象转换的pd.DataFrame对象or pd.Series对象 :param date_ext: int对象 eg. 如交易在2015-06-01执行,如date_ext=120,择start向前推120天,end向后推120天 :param day_sum: 端线图 matplotlib的版本有些有bug显示不对 :param html_bk: 使用bk绘制可交互的k图,在网页上进行交互 :param save: 是否保存可视化结果在本地 :return:

abupy.MarketBu.ABuMarketDrawing.plot_candle_from_symbol(target_symbol, n_folds=2, start=None, end=None, day_sum=False, html_bk=False, view_index=None, save=False)[源代码]

根据target_symbol绘制交易发生在金融时间序列上的位置等信息,对交易进行可视化分析时使用 :param target_symbol: str对象,代表一个symbol :param n_folds: 请求几年的历史回测数据int :param start: 请求的开始日期 str对象 :param end: 请求的结束日期 str对象 :param day_sum: 端线图 matplotlib的版本有些有bug显示不对 :param html_bk: 使用bk绘制可交互的k图,在网页上进行交互 :param view_index: 需要在可视化图中重点标记的交易日信息

eg. view_index_inner = [pd.to_datetime(str(p_order[‘buy_date’])), pd.to_datetime(str(p_order[‘sell_date’]))]
参数:save – 是否保存可视化结果在本地
返回:
abupy.MarketBu.ABuMarketDrawing.plot_candle_stick(date, p_open, high, low, close, volume, view_index, symbol, day_sum, html_bk, save, minute=False)[源代码]

展开各个k图绘制数据进行绘制 :param date: 金融时间序列交易日时间,pd.DataFrame.index对象 :param p_open: 金融时间序列开盘价格序列,np.array对象 :param high: 金融时间序列最高价格序列,np.array对象 :param low: 金融时间序列最低价格序列,np.array对象 :param close: 金融时间序列收盘价格序列,np.array对象 :param volume: 金融时间序列成交量序列,np.array对象 :param view_index: 需要在可视化图中重点标记的交易日信息

eg. view_index_inner = [pd.to_datetime(str(p_order[‘buy_date’])), pd.to_datetime(str(p_order[‘sell_date’]))]
参数:
  • symbol – symbol str对象
  • day_sum – 端线图 matplotlib的版本有些有bug显示不对
  • html_bk – 使用bk绘制可交互的k图,在网页上进行交互
  • save – 是否保存可视化结果在本地
  • minute – 是否是绘制分钟k线图
abupy.MarketBu.ABuMarketDrawing.plot_simple_multi_stock(multi_kl_pd)[源代码]

将多个金融时间序列收盘价格缩放到一个价格水平后,可视化价格变动 :param multi_kl_pd: 可迭代的序列,元素为金融时间序列

abupy.MarketBu.ABuMarketDrawing.plot_simple_two_stock(two_stcok_dict)[源代码]

将两个金融时间序列收盘价格缩放到一个价格水平后,可视化价格变动 :param two_stcok_dict: 字典形式,key将做为lable进行可视化使用,元素为金融时间序列

abupy.MarketBu.ABuMarketDrawing.save_dir_name(html=False)[源代码]

外部获取缓存文件夹的绝对路径 :param html: 是否缓存为html文件

abupy.MarketBu.ABuNetWork module

网络统一接口模块

abupy.MarketBu.ABuNetWork.ast_parse_js(js_var)[源代码]

通过ast模块解析Javascript字符串 :param js_var: Javascript字符串 :return: map, dict or value

abupy.MarketBu.ABuNetWork.get(url, params=None, headers=None, retry=3, **kwargs)[源代码]
参数:
  • url – 请求base url
  • params – url params参数
  • headers – http head头信息
  • retry – 重试次数,默认retry=3
  • kwargs – 透传给requests.get,可设置ua等,超时等参数
abupy.MarketBu.ABuNetWork.parse_js(js_var)[源代码]

通过eval解析Javascript字符串 :param js_var: Javascript字符串 :return: dict

abupy.MarketBu.ABuNetWork.post(url, params=None, headers=None, retry=3, **kwargs)[源代码]
参数:
  • url – 请求base url
  • params – url params参数
  • headers – http head头信息
  • retry – 重试次数,默认retry=3
  • kwargs – 透传给requests.get,可设置ua等,超时等参数

abupy.MarketBu.ABuSymbol module

symbol模块

class abupy.MarketBu.ABuSymbol.IndexSymbol[源代码]

Bases: object

定义IndexSymbol类,设定大盘指数Symbol对象的规范

BM_FUTURES_CN = futures_cn_SHFE:AU0
BM_FUTURES_GB = futures_global_NYMEX:GC
DJI = us_NYSE:.DJI
Growth = hs_sz:399006
HSCCI = hk_hk:HSCCI
HSCEI = hk_hk:HSCEI
HSI = hk_hk:HSI
INX = us_NYSE:.INX
IXIC = us_NYSE:.IXIC
SH = hs_sh:000001
SH300 = hs_sh:000300
SZ = hs_sz:399001
TC_INX = tc_COIN:btc
class abupy.MarketBu.ABuSymbol.Symbol(market, sub_market, symbol_code)[源代码]

Bases: object

统一所有市场的symbol,统一对外接口对象

HK_INDEX = ['HSI', 'HSCEI', 'HSCCI']
K_US_INDEX_FIXES = {'DJI': '.DJI', 'IXIC': '.IXIC', 'INX': '.INX'}
SH_INDEX = ['000001', '000300']
SZ_INDEX = ['399001', '399006']
US_INDEX = ['.DJI', '.IXIC', '.INX']
is_a_index()[源代码]

判定是否a股 大盘

is_a_stock()[源代码]

判定是否a股symbol

is_hk_index()[源代码]

判定是否港股 大盘

is_hk_stock()[源代码]

判定是否港股 symbol

is_index()[源代码]

判定是否大盘

is_sh_index()[源代码]

判定是否a股sh 大盘

is_sh_stock()[源代码]

判定是否a股sh symbol

is_sz_index()[源代码]

判定是否a股sz 大盘

is_sz_stock()[源代码]

判定是否a股sz symbol

is_us_index()[源代码]

判定是否美股 大盘

is_us_n_stock()[源代码]

判定是否美股纽约交易所 symbol

is_us_oq_stock()[源代码]

判定是否美股纳斯达克交易所 symbol

is_us_stock()[源代码]

判定是否美股 symbol

value

描述器类:作用在类中需要lazy的对象方法上

abupy.MarketBu.ABuSymbol.code_to_symbol(code, rs=True)[源代码]

解析code成Symbol,如果code中带有市场编码直接用该市场,否则进行查询所属市场信息, 如果最后也没有发现symbol所在的市场,会向外raise ValueError :param code: str对象,代码 如:300104,sz300104,usTSLA :param rs: 没有匹配上是否对外抛异常,默认True :return: Symbol对象

abupy.MarketBu.ABuSymbol.search_to_symbol_dict(search)[源代码]

symbol搜索对外接口,全匹配symbol code,拼音匹配symbol,别名匹配,模糊匹配公司名称,产品名称等信息 eg:

in: search_to_symbol_dict(‘黄金’) out: {‘002155’: ‘湖南黄金’,

‘600489’: ‘中金黄金’, ‘600547’: ‘山东黄金’, ‘600766’: ‘园城黄金’, ‘600988’: ‘赤峰黄金’, ‘ABX’: ‘巴里克黄金’, ‘AU0’: ‘黄金’, ‘DGL’: ‘黄金基金-PowerShares’, ‘DGLD’: ‘黄金3X做空-VelocityShares’, ‘DGP’: ‘黄金2X做多-DB’, ‘DGZ’: ‘黄金做空-PowerShares’, ‘DZZ’: ‘黄金2X做空-DB’, ‘EGO’: ‘埃尔拉多黄金公司’, ‘GC’: ‘纽约黄金’, ‘GEUR’: ‘Gartman欧元黄金ETF-AdvisorShares ‘, ‘GLD’: ‘黄金ETF-SPDR’, ‘GLL’: ‘黄金2X做空-ProShares’, ‘GYEN’: ‘Gartman日元黄金ETF-AdvisorShares’, ‘HMY’: ‘哈莫尼黄金’, ‘IAU’: ‘黄金ETF-iShares’, ‘KGC’: ‘金罗斯黄金’, ‘LIHR’: ‘利希尔黄金’, ‘PRME’: ‘全球黄金地段房地产ETF-First Trust Heitman’, ‘RGLD’: ‘皇家黄金’, ‘UGL’: ‘黄金2x做多-ProShares’, ‘UGLD’: ‘黄金3X做多-VelocityShares’}
参数:search – eg:’黄金’, ‘58’
返回:symbol dict

abupy.MarketBu.ABuSymbolFutures module

期货symbol数据模块

abupy.MarketBu.ABuSymbolFutures.AbuFuturesCn()[源代码]

国内期货symbol数据,AbuFuturesCn单例,混入FreezeAttrMixin在__init__中冻结了接口,外部只可以读取

abupy.MarketBu.ABuSymbolFutures.AbuFuturesGB()[源代码]

国际期货数据,AbuFuturesGB单例,混入FreezeAttrMixin在__init__中冻结了接口,外部只可以读取

abupy.MarketBu.ABuSymbolPd module

数据对外接口模块,其它模块需要数据都只应该使用ABuSymbolPd, 不应涉及其它内部模块的使用

abupy.MarketBu.ABuSymbolPd.calc_atr(kline_df)[源代码]

为输入的kline_df金融时间序列计算atr21和atr14,计算结果直接加到kline_df的atr21列和atr14列中 :param kline_df: 金融时间序列pd.DataFrame对象

abupy.MarketBu.ABuSymbolPd.combine_pre_kl_pd(kl_pd, n_folds=1)[源代码]

通过传人一个kl_pd获取这个kl_pd之前n_folds年时间的kl,默认n_folds=1, eg. kl_pd 从2014-07-26至2016-07-26,首先get 2013-07-26至2014-07-25 之后合并两段数据,最终返回的数据为2013-07-26至2016-07-26 :param kl_pd: 金融时间序列pd.DataFrame对象 :param n_folds: 获取之前n_folds年的数据 :return: 结果是和输入kl_pd合并后的总kl

abupy.MarketBu.ABuSymbolPd.get_price(symbol, start_date=None, end_date=None)[源代码]

通过make_kl_df获取金融时间序列后,只保留收盘价格,只是为了配合主流回测平台接口名称,适配使用 :param symbol: str对象或Symbol对象 :param start_date: 请求的开始日期 str对象 :param end_date: 请求的结束日期 str对象 :return: 金融时间序列pd.DataFrame对象只有一个price列

abupy.MarketBu.ABuSymbolPd.kl_df_dict_parallel(symbols, data_mode=<EMarketDataSplitMode.E_DATA_SPLIT_SE: 1>, n_folds=2, start=None, end=None, benchmark=None, n_jobs=16, save=True, how='thread')[源代码]

多进程或者多线程对外执行函数,多任务批量获取时间序列数据 :param symbols: symbol序列 :param data_mode: EMarketDataSplitMode enum对象 :param n_folds: 请求几年的历史回测数据int :param start: 请求的开始日期 str对象 :param end: 请求的结束日期 str对象 :param benchmark: 资金回测时间标尺,AbuBenchmark实例对象 :param n_jobs: 并行的任务数,对于进程代表进程数,线程代表线程数 :param save: 是否统一进行批量保存,即在批量获取金融时间序列后,统一进行批量保存,默认True :param how: process:多进程,thread:多线程,main:单进程单线程

abupy.MarketBu.ABuSymbolPd.make_kl_df(symbol, data_mode=<EMarketDataSplitMode.E_DATA_SPLIT_SE: 1>, n_folds=2, start=None, end=None, benchmark=None, show_progress=True, parallel=False, parallel_save=True)[源代码]

外部获取金融时间序列接口 eg: n_fold=2, start=None, end=None ,从今天起往前数两年

n_fold=2, start=‘2015-02-14’, end=None, 从2015-02-14到现在,n_fold无效 n_fold=2, start=None, end=‘2016-02-14’,从2016-02-14起往前数两年 n_fold=2, start=‘2015-02-14’, end=‘2016-02-14’,从start到end
参数:
  • data_mode – EMarketDataSplitMode对象
  • symbol – list or Series or str or Symbol e.g :[‘TSLA’,’SFUN’] or ‘TSLA’ or Symbol(MType.US,’TSLA’)
  • n_folds – 请求几年的历史回测数据int
  • start – 请求的开始日期 str对象
  • end – 请求的结束日期 str对象
  • benchmark – 资金回测时间标尺,AbuBenchmark实例对象
  • show_progress – 是否显示进度条
  • parallel – 是否并行获取
  • parallel_save – 是否并行后进行统一批量保存

abupy.MarketBu.ABuSymbolStock module

股票类型的symbol模块,a股,美股,港股

class abupy.MarketBu.ABuSymbolStock.AbuStockBaseWrap[源代码]

Bases: object

做为类装饰器封装替换init 解析csv symbol数据操作,装饰替换init

abupy.MarketBu.ABuSymbolStock.AbuSymbolCN()[源代码]

a股symbol类,singleton

abupy.MarketBu.ABuSymbolStock.AbuSymbolHK()[源代码]

港股symbol类,singleton

class abupy.MarketBu.ABuSymbolStock.AbuSymbolStockBase[源代码]

Bases: abupy.CoreBu.ABuBase.FreezeAttrMixin

股票类型的symbol抽象基类

all_symbol(index=False)[源代码]

子类需要实现,获取市场中所有股票symbol str对象序列,即全市场symbol序列 :param index: 是否需要返回大盘symbol :return: 全市场symbol序列

query_industry_factorize(factorize, local_df=True)[源代码]

为ABuIndustries模块,提行业的factorize值查询industry_df子集 :param factorize: int :param local_df: 是否基于show_df返回行业df :return: 通过factorize值查询industry_df子集,pd.DataFrame对象

query_industry_symbols(query_symbol, local_df=True)[源代码]

为ABuIndustries模块,提供查询股票所在的行业industry_df子集 :param query_symbol: symbol str对象 :param local_df: 是否基于show_df返回行业df :return: 查询query_symbol所在的行业对象,pd.DataFrame对象

query_symbol_sub_market(*args, **kwargs)[源代码]

子类需要实现,查询股票所在的子市场,即交易所信息 :return: 返回EMarketSubType.value值,即子市场(交易所)字符串对象

symbol_func(df)[源代码]

子类需要实现,通过df组装支持ABuSymbolPd.make_kl_df使用的symbol :param df: pd.DataFrame对象 :return: 支持ABuSymbolPd.make_kl_df使用的symbol序列

abupy.MarketBu.ABuSymbolStock.AbuSymbolUS()[源代码]

美股symbol类,singleton

abupy.MarketBu.ABuSymbolStock.query_stock_info(symbol)[源代码]

通过将symbol code转换为Symbol对象查询对应的市场,构造对应的市场对象, 仅支持股票类型symbol :param symbol: eg:usTSLA :return: 一行数据的pd.DataFrame对象

Module contents

class abupy.MarketBu.BaseMarket(symbol)[源代码]

Bases: object

数据源基础市场基类

K_DEV_MODE_LIST = ['A0001', 'OPPOR9', 'OPPOR9', 'VIVOX5', 'VIVOX6', 'VIVOX6PLUS', 'VIVOX9', 'VIVOX9PLUS']
K_OS_VERSION_LIST = ['4.3', '4.2.2', '4.4.2', '5.1.1']
K_PHONE_SCREEN = [[1080, 1920]]
req_time()[源代码]

请求时间seconds模拟

class abupy.MarketBu.FuturesBaseMarket(symbol)[源代码]

Bases: abc.NewBase

基于期货类型的数据源抽象基类

kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

class abupy.MarketBu.StockBaseMarket(symbol)[源代码]

Bases: abc.NewBase

基于股票类型的数据源抽象基类

kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

minute(*args, **kwargs)[源代码]

分钟k线接口

class abupy.MarketBu.TCBaseMarket(symbol)[源代码]

Bases: abc.NewBase

基于比特币,莱特币等类型的数据源抽象基类

kline(n_folds=2, start=None, end=None)[源代码]

日k线接口

minute(*args, **kwargs)[源代码]

比特币量化日内短线频繁,需要定制自己的日内策略

class abupy.MarketBu.SupportMixin[源代码]

Bases: object

混入类,声明数据源支持的市场,以及检测是否支持市场

check_support(symbol=None, rs=True)[源代码]

检测参数symbol对象或者内部self._symbol是否被数据源支持 :param symbol: 外部可设置检测symbol对象,Symbol对象,EMarketTargetType对象或字符串对象 :param rs: 如果数据源不支持,是否抛出异常,默认抛出 :return: 返回是否支持 bool

class abupy.MarketBu.AbuDataParseWrap[源代码]

Bases: object

做为类装饰器封装替换解析数据统一操作,装饰替换init

class abupy.MarketBu.MarketMixin[源代码]

Bases: object

市场信息混入类,被混入类需要设置self.symbol_name, 通过code_to_symbol将symbol转换为Symbol对象, 通过Symbol对象 查询market和sub_market

symbol_market

描述器类:作用在类中需要lazy的对象方法上

symbol_sub_market

描述器类:作用在类中需要lazy的对象方法上

abupy.MarketBu.get_price(symbol, start_date=None, end_date=None)[源代码]

通过make_kl_df获取金融时间序列后,只保留收盘价格,只是为了配合主流回测平台接口名称,适配使用 :param symbol: str对象或Symbol对象 :param start_date: 请求的开始日期 str对象 :param end_date: 请求的结束日期 str对象 :return: 金融时间序列pd.DataFrame对象只有一个price列

abupy.MarketBu.AbuSymbolCN()[源代码]

a股symbol类,singleton

abupy.MarketBu.AbuFuturesGB()[源代码]

国际期货数据,AbuFuturesGB单例,混入FreezeAttrMixin在__init__中冻结了接口,外部只可以读取

abupy.MarketBu.AbuSymbolUS()[源代码]

美股symbol类,singleton

abupy.MarketBu.AbuSymbolHK()[源代码]

港股symbol类,singleton

abupy.MarketBu.query_stock_info(symbol)[源代码]

通过将symbol code转换为Symbol对象查询对应的市场,构造对应的市场对象, 仅支持股票类型symbol :param symbol: eg:usTSLA :return: 一行数据的pd.DataFrame对象

abupy.MarketBu.AbuFuturesCn()[源代码]

国内期货symbol数据,AbuFuturesCn单例,混入FreezeAttrMixin在__init__中冻结了接口,外部只可以读取

abupy.MarketBu.AbuHkUnit()[源代码]

AbuHkUnit单例,混入FreezeAttrMixin在__init__中冻结了接口,外部只可以读取

class abupy.MarketBu.IndexSymbol[源代码]

Bases: object

定义IndexSymbol类,设定大盘指数Symbol对象的规范

BM_FUTURES_CN = futures_cn_SHFE:AU0
BM_FUTURES_GB = futures_global_NYMEX:GC
DJI = us_NYSE:.DJI
Growth = hs_sz:399006
HSCCI = hk_hk:HSCCI
HSCEI = hk_hk:HSCEI
HSI = hk_hk:HSI
INX = us_NYSE:.INX
IXIC = us_NYSE:.IXIC
SH = hs_sh:000001
SH300 = hs_sh:000300
SZ = hs_sz:399001
TC_INX = tc_COIN:btc
class abupy.MarketBu.Symbol(market, sub_market, symbol_code)[源代码]

Bases: object

统一所有市场的symbol,统一对外接口对象

HK_INDEX = ['HSI', 'HSCEI', 'HSCCI']
K_US_INDEX_FIXES = {'DJI': '.DJI', 'IXIC': '.IXIC', 'INX': '.INX'}
SH_INDEX = ['000001', '000300']
SZ_INDEX = ['399001', '399006']
US_INDEX = ['.DJI', '.IXIC', '.INX']
is_a_index()[源代码]

判定是否a股 大盘

is_a_stock()[源代码]

判定是否a股symbol

is_hk_index()[源代码]

判定是否港股 大盘

is_hk_stock()[源代码]

判定是否港股 symbol

is_index()[源代码]

判定是否大盘

is_sh_index()[源代码]

判定是否a股sh 大盘

is_sh_stock()[源代码]

判定是否a股sh symbol

is_sz_index()[源代码]

判定是否a股sz 大盘

is_sz_stock()[源代码]

判定是否a股sz symbol

is_us_index()[源代码]

判定是否美股 大盘

is_us_n_stock()[源代码]

判定是否美股纽约交易所 symbol

is_us_oq_stock()[源代码]

判定是否美股纳斯达克交易所 symbol

is_us_stock()[源代码]

判定是否美股 symbol

value

描述器类:作用在类中需要lazy的对象方法上

abupy.MarketBu.code_to_symbol(code, rs=True)[源代码]

解析code成Symbol,如果code中带有市场编码直接用该市场,否则进行查询所属市场信息, 如果最后也没有发现symbol所在的市场,会向外raise ValueError :param code: str对象,代码 如:300104,sz300104,usTSLA :param rs: 没有匹配上是否对外抛异常,默认True :return: Symbol对象

abupy.MarketBu.search_to_symbol_dict(search)[源代码]

symbol搜索对外接口,全匹配symbol code,拼音匹配symbol,别名匹配,模糊匹配公司名称,产品名称等信息 eg:

in: search_to_symbol_dict(‘黄金’) out: {‘002155’: ‘湖南黄金’,

‘600489’: ‘中金黄金’, ‘600547’: ‘山东黄金’, ‘600766’: ‘园城黄金’, ‘600988’: ‘赤峰黄金’, ‘ABX’: ‘巴里克黄金’, ‘AU0’: ‘黄金’, ‘DGL’: ‘黄金基金-PowerShares’, ‘DGLD’: ‘黄金3X做空-VelocityShares’, ‘DGP’: ‘黄金2X做多-DB’, ‘DGZ’: ‘黄金做空-PowerShares’, ‘DZZ’: ‘黄金2X做空-DB’, ‘EGO’: ‘埃尔拉多黄金公司’, ‘GC’: ‘纽约黄金’, ‘GEUR’: ‘Gartman欧元黄金ETF-AdvisorShares ‘, ‘GLD’: ‘黄金ETF-SPDR’, ‘GLL’: ‘黄金2X做空-ProShares’, ‘GYEN’: ‘Gartman日元黄金ETF-AdvisorShares’, ‘HMY’: ‘哈莫尼黄金’, ‘IAU’: ‘黄金ETF-iShares’, ‘KGC’: ‘金罗斯黄金’, ‘LIHR’: ‘利希尔黄金’, ‘PRME’: ‘全球黄金地段房地产ETF-First Trust Heitman’, ‘RGLD’: ‘皇家黄金’, ‘UGL’: ‘黄金2x做多-ProShares’, ‘UGLD’: ‘黄金3X做多-VelocityShares’}
参数:search – eg:’黄金’, ‘58’
返回:symbol dict