赞
踩
通过问财python库,可以输入中文就能获取AI选股结果,而不需要写很多代码来进行股票选取,如上图就是输入中文”均线多头排列的股票”获取的结果。本文主要介绍问财python库的选股功能和使用步骤。
同花顺i问财是同花顺旗下的AI投顾平台,专注于使用AI技术改进财经数据的提取、处理、分析、沉淀以及展现, 用户不登陆就可以在i问财使用中文进行选股并进行可视化分析。
问财python库是由GraySilver开源的i问财python工具包,通过使用wencai lib库可以获取同花顺i问财的搜索结果和回测等数据。经过代码分析和测试发现,wencai python工具包除了选股功能外, 其提供的获取回测分析、获取策略、获取事件评测等功能都已无法使用。原因是wencai python包最近一次github更新是在2021年9月11日,而之后同花顺i问财则更新很多,之前的很多不需要登录就能实现的功能目前需要登录后才能使用
安装weicai python库
pip install wencai
pip会自动安装requests、beautifulsoup4、PyExecJS等python依赖包
2. 使用weicai python库进行查询
以查询query=”均线多头排列的股票”进行说明,代码如下:
- import wencai as wc
- wc.set_variable(cn_col=True)
- from wencai.core.session import Session
- Session.headers.update({'Host': 'www.iwencai.com'})
- wc.search(query='均线多头排列的股票')
注意,一定要加上Session.headers.update({'Host': 'www.iwencai.com'}) 这一句。如果按照wencai lib库官方文档直接进行查询,会报错TypeError: list indices must be integers or slices, not str。 因为官方代码不包括Session.headers.update({'Host': 'www.iwencai.com'}) 这一句,具体原因是i问财服务器做了验证升级,需要设置http请求header。
- 均线多头排列(条件说明) 股票简称 最新价 技术形态 最新涨跌幅 买入信号inter 股票代码
- 0 2023年06月09日均线多头排列 中国国贸 19.44 缩量||价跌量缩||回调缩量 -1.220 周线cci买入信号||周线kdj金叉 600007.SH
- 1 2023年06月09日均线多头排列 皖通高速 11.08 放量||价跌量缩||阴线 -1.424 周线skdj金叉||周线rsi金叉||周线cci买入信号 600012.SH
- 2 2023年06月09日均线多头排列 中体产业 11.45 阳线||缩量||价跌量缩 -0.174 mtm金叉||周线skdj金叉 600158.SH
- ....
- 46 2023年06月09日均线多头排列 新澳股份 7.14 阳线||放量||价升量缩 0.140 月线boll突破上轨||周线rsi金叉||周线cci买入信号 603889.SH
- 47 2023年06月09日均线多头排列 建发合诚 12.80 放量||价跌量缩||阴线 -1.311 月线dma金叉||周线mtm金叉||周线cr金叉 603909.SH
- 48 2023年06月09日均线多头排列 金桥信息 34.88 强中选强||放量||阴线 -6.962 NaN 603918.SH
- 49 2023年06月09日均线多头排列 力鼎光电 17.20 放量||阴线||价跌量升 -3.749 bias买入信号 605118.SH
其他示例:
可以根据人气排名选股:wc.search("人气股票排名100")
- 个股热度排名 股票简称 最新价 最新涨跌幅 个股热度 股票代码
- 0 1 拓维信息 17.63 9.981 129391.0 002261.SZ
- 1 2 鸿博股份 38.00 -4.857 70730.0 002229.SZ
- 2 3 上海物贸 14.76 9.985 60386.0 600822.SH
- ...
- 46 47 中科曙光 52.04 4.919 20711.0 603019.SH
- 47 48 飞龙股份 11.57 9.981 20410.5 002536.SZ
- 48 49 吉宏股份 23.16 10.024 20322.5 002803.SZ
- 49 50 中际旭创 115.20 7.946 20214.5 300308.SZ
可以根据形态选股: wc.search("可转债概念 正股金叉")
- 所属概念 未清偿可转债代码 未清偿可转债转股价格 未清偿可转债简称 a股市值(不含限售股) 最新价 最新涨跌幅 买入信号inter 股票代码 macd金叉(条件说明) 未清偿可转债总量 股票简称 技术形态 所属概念数量
- 0 煤化工;影视娱乐;文化传媒;通用航空;互联网金融;芯片概念;富时罗素概念;富时罗素概念股;标... 128037 3.10 岩土转债 4.517167e+09 2.84 4.412 行情收盘价上穿5日||skdj金叉||boll突破中轨 002542.SZ 2023年06月09日macd金叉 6019009 中化岩土 价升量涨||阳线||放量 22
- 1 保健品;沪股通;医药电商;融资融券;转融券标的;富时罗素概念;富时罗素概念股;MSCI概念;... 113605 47.11 大参转债 3.052566e+10 26.84 3.790 mtm金叉||行情收盘价上穿5日||cr金叉 603233.SH 2023年06月09日macd金叉 14047400 大参林 价升量涨||阳线||放量 9
- 2 一带一路;稀缺资源;铁矿石;特斯拉;锂电原料;锂矿;锂电池;深股通;金属铜;MSCI概念;融... 128111 10.63 中矿转债 3.514415e+10 57.75 3.755 boll突破中轨||roc买入信号||cci买入信号 002738.SZ 2023年06月09日macd金叉 1099547 中矿资源 价升量涨||阳线||放量 12
- ...
- 18 北部湾自贸区;深股通;一带一路;富时罗素概念;富时罗素概念股;东盟自贸区;标普道琼斯A股;统... 127039 8.00 北港转债 1.122096e+10 7.96 -0.748 macd金叉||dmi金叉||月线roc买入信号 000582.SZ 2023年06月09日macd金叉 17630564 北部湾港 缩量||价跌量缩||回调缩量 16
- 19 电子商务;广告营销;文化传媒;新零售;网红经济;C2M概念;工业机器人;机器人概念;抖音概念 113589 12.29 天创转债 2.001966e+09 4.77 -2.254 macd金叉||周线boll突破中轨||周线rsi金叉 603608.SH 2023年06月09日macd金叉 5995000 天创时尚 放量||价跌量缩||阴线 9
3. 使用pandas等工具进一步操作选股信息
使用问财python库选出的股票一般数量较多,是初步的选取结果,可以根据自己的策略使用pandas和sort等工具进一步精选出符合要求的数量较少的股票
想获取100条结果,该怎么操作
从上文可以看出,问财python库默认最多获取50条结果,如果希望获取更多返回结果,那就需要修改wencai python库源代码或者新建继承类实现修改代码了。 下面是新建继承类来实现的方式,但最多只能获取100条结果,代码如下:
- from wencai.core.event import *
- from wencai.core.crawler import *
- from wencai.core.session import Session
-
- Session.headers.update({'Host': 'www.iwencai.com'})
- Session.headers.update({'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36'})
-
- class MyWencai(Wencai):
- def __init__(self, cn_col=False, proxies=None, verify=False):
- self.cookies = WencaiCookie()
- self.cn_col = cn_col
- self.session = Session(proxies=proxies, verify=verify)
-
- def search(self, query_string, page):
- payload = {
- "question": query_string,
- "page": page,
- "perpage": 100,
- "log_info": '{"input_type": "click"}',
- "source": "Ths_iwencai_Xuangu",
- "version": 2.0,
- "secondary_intent": "",
- "query_area": "",
- "block_list": "",
- "add_info": '{"urp": {"scene": 1, "company": 1, "business": 1}, "contentType": "json", "searchInfo": true}'
- }
-
- r = self.session.post_result(url=WENCAI_CRAWLER_URL['search'],
- data=payload, force_cookies=True)
- # print(r.json()['data'])
-
- result = r.json()['data']['answer'][0]['txt'][0]['content']['components'][0]['data']['datas']
-
- def _re_str(x: str):
- _re = re.findall('(.*):前复权', x)
- if len(_re) >= 1:
- x = _re[-1]
- check_date = re.search(r"(\d{4}\d{1,2}\d{1,2})",x)
- if check_date is not None:
- return x.replace('[{}]'.format(check_date.group()), '')
- else:
- return x
-
- data = pd.DataFrame().from_dict(result)
- if not data.empty:
- columns = {i: _re_str(i) for i in data.columns}
- data = data.rename(columns=columns)
- for col in ['market_code', 'code', '关键词资讯', '涨跌幅']:
- if col in data.columns:
- del data[col]
- return data
-
-
- def search(query, page=1):
-
- return MyWencai(proxies=globals()['global_proxies'], verify=globals()['verify']).search(query_string=query, page=page)
完整文章查看,点击使用python进行问财AI智能选股
关注公众号:诸葛说talk,获取更多相关内容
写文章不易,觉得本文对你有帮助的话,帮忙点赞转发赞赏,让笔者有坚持写好文章的动力。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。