Através da biblioteca Wenchai python, você pode inserir chinês para obter resultados de seleção de ações de IA sem escrever muito código para selecionar ações.A imagem acima é o resultado obtido inserindo "ações com arranjo de média móvel longa" chinesas. Este artigo apresenta principalmente a função de seleção de ações e as etapas de uso da biblioteca Wenchai python.
O que é a biblioteca Wenchai python
-
Tonghuashun iWencai é uma plataforma de consultoria de investimentos de IA da Tonghuashun. Ela se concentra no uso de tecnologia de IA para melhorar a extração, processamento, análise, precipitação e exibição de dados financeiros. Os usuários podem usar o chinês para selecionar ações e realizar análises visuais no iWencai sem fazer login. .
-
A biblioteca Wencai python é um kit de ferramentas iWencai python de código aberto da GraySilver. Ao usar a biblioteca wencai lib, você pode obter os resultados da pesquisa e os dados de backtest do Flush iWencai. Após análise e teste do código, constatou-se que além da função de seleção de ações, as funções fornecidas pelo kit de ferramentas wencai python, como obtenção de análise de backtest, obtenção de estratégias e obtenção de análises de eventos, não estão mais disponíveis. A razão é que a última atualização do github do pacote wencai python foi em 11 de setembro de 2021, e Tonghuashun i Wencai foi muito atualizado desde então.Muitas funções que podem ser implementadas sem login antes só podem ser usadas após o login.
Etapas para usar a biblioteca Wenchai python
-
Instale a biblioteca weicai python
pip install wencai
pip instalará automaticamente solicitações, beautifulsoup4, PyExecJS e outros pacotes de dependência python
2. Use a biblioteca weicai python para consultar
Vamos usar query=”ações com arranjo de média móvel longa” como explicação. O código é o seguinte:
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='均线多头排列的股票')
Observe que você deve adicionar a frase Session.headers.update({'Host': 'www.iwencai.com'}). Se você consultar diretamente de acordo com a documentação oficial da biblioteca wencai lib, um erro TypeError: list indices must be wholes or slices, not str será relatado. Como o código oficial não inclui a frase Session.headers.update({'Host': 'www.iwencai.com'}), o motivo específico é que o servidor iWencai foi verificado e atualizado, e o cabeçalho da solicitação http precisa a ser definido.
均线多头排列(条件说明) 股票简称 最新价 技术形态 最新涨跌幅 买入信号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
Outros exemplos:
-
Você pode selecionar ações com base na classificação de popularidade:
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
-
Você pode selecionar ações com base em seus padrões:
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. Use ferramentas como pandas para manipular ainda mais as informações de seleção de ações
As ações selecionadas usando a biblioteca Wenchai python geralmente têm um número maior e são resultados de seleção preliminares.Você pode usar ferramentas como pandas e classificar de acordo com suas próprias estratégias para selecionar ainda mais um número menor de ações que atendam aos requisitos.
otimização avançada
-
O que devo fazer se quiser obter 100 resultados?
Como pode ser visto acima, a biblioteca Wencai Python pode obter até 50 resultados por padrão. Se você deseja obter mais resultados retornados, você precisa modificar o código-fonte da biblioteca Wencai Python ou criar uma nova classe de herança para implementar o modificado código. A seguir está como implementá-lo criando uma nova classe de herança, mas ela só pode obter até 100 resultados. O código é o seguinte:
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)
Resumo e comunicação
Para ver o artigo completo, clique para usar python para seleção inteligente de ações Wenchai AI
Siga a conta pública: Zhuge Shuo Talk para obter mais conteúdo relacionado
Escrever artigos não é fácil. Se você acha que este artigo é útil para você, dê um joinha e encaminhe-o para me motivar a continuar escrevendo bons artigos.