使用python进行AI选股之同花顺问财

news2024/11/26 18:22:20

图片

 

通过问财python库,可以输入中文就能获取AI选股结果,而不需要写很多代码来进行股票选取,如上图就是输入中文”均线多头排列的股票”获取的结果。本文主要介绍问财python库的选股功能和使用步骤。

什么是问财python库

  • 同花顺i问财是同花顺旗下的AI投顾平台,专注于使用AI技术改进财经数据的提取、处理、分析、沉淀以及展现, 用户不登陆就可以在i问财使用中文进行选股并进行可视化分析。

  • 问财python库是由GraySilver开源的i问财python工具包,通过使用wencai lib库可以获取同花顺i问财的搜索结果和回测等数据。经过代码分析和测试发现,wencai python工具包除了选股功能外, 其提供的获取回测分析、获取策略、获取事件评测等功能都已无法使用。原因是wencai python包最近一次github更新是在2021年9月11日,而之后同花顺i问财则更新很多,之前的很多不需要登录就能实现的功能目前需要登录后才能使用

问财python库使用步骤

  1. 安装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等工具进一步精选出符合要求的数量较少的股票

进一步优化

  1. 想获取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,获取更多相关内容

写文章不易,觉得本文对你有帮助的话,帮忙点赞转发赞赏,让笔者有坚持写好文章的动力。

参考

  • 同花顺问财

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/760085.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Echarts 定制化日历图

目录 改造一(变化X轴、Y轴label): 改造二(单元格、图例改造): 改造三(tooltip、细节优化): 最近在做可视化,发现日历图挺有意思,分享一波吧&am…

SpringBoot项目打包Docker镜像

1、创建springboot项目,并在根目录新建Dockerfile文件 Dockerfile文件内容 FROM adoptopenjdk/openjdk8:jre8u-nightly ADD target/test-k8s-0.0.1-SNAPSHOT.jar test-k8s-0.0.1-SNAPSHOT.jar ENTRYPOINT ["java","-jar","/test-k8s-0.0.…

Python编程——字符串的拼接

作者:Insist-- 个人主页:insist--个人主页 本文专栏:python专栏 专栏介绍:本专栏为免费专栏,并且会持续更新python基础知识,欢迎各位订阅关注。 前言 本文将讲解字符串的拼接与使用%进行拼接。 目录 ​编…

(二)Qt下多线程实现多个海康工业相机内触发采集回调取流显示

系列文章目录 提示:这里是该系列文章的所有文章的目录 第一章:(一)Qt下实现多个海康工业相机内触发采集回调取流显示 第二章:(二)Qt下多线程实现多个海康工业相机内触发采集回调取流显示 文章目…

单例模式之常见模式详解

单例模式之常见模式详解 单例模式的定义单例模式的分类饿汉模式懒汉模式 单例模式的主要特点单例模式的应用场景总结 单例模式的定义 单例模式是一种设计模式,用于确保一个类只有一个实例,并提供一个全局访问点来获取该实例。 在单例模式中,类…

2023需求最高的编程语言:Python、JavaScript和Java

科技招聘平台 CodinGame 和 CoderPad 最新发布了一份 2023 年科技行业招聘报告,基于对 14000 名专业人士的调查,对 2023 年科技行业招聘人员和求职者可能面临的情况进行了深入分析。其中一些关键亮点包括: 59% 的开发人员没有计算机科学方面的…

吴恩达机器学习笔记-week2

第2周 目录 第2周 四、多变量线性回归(Linear Regression with Multiple Variables) 4.1 多维特征4.2 多变量梯度下降4.3 梯度下降法实践1-特征缩放4.4 梯度下降法实践2-学习率4.5 特征和多项式回归4.6 正规方程4.7 正规方程及不可逆性(可选) 四、多变量线性回归(Linear Regres…

docker的安装以及常用命令详解

目录 一、docker简介 二、docker安装 三、常用命令 1、显示 Docker 版本信息 2、显示 Docker 系统信息,包括镜像和容器数 3、帮助 四、镜像管理 1、列出镜像 2、获取一个新的镜像 3、查找镜像 4、删除镜像 5、镜像导入与导出 五、容器生命周期 1、运行…

Bring Your Data!Self- supervised Evolution of Large Language Models

Bring Your Data!Self- supervised Evolution of Large Language Models IntroductionMethod参考 Introduction 这篇论文提出了一种自监督的评估方式来衡量大型语言模型的能力和局限性。常规的基于数据集的评估方式存在一些缺点: 需要不断新建数据集。存在数据集和…

外包软件定制开发中时间和进度管理

引言 时间和进度管理是外包软件定制开发项目中至关重要的方面。有效地管理时间和进度可以确保项目按计划顺利进行,减少延误和风险,从而提高交付的可靠性和质量。然而,由于外包团队和客户位于不同的地理位置和时区,时间和进度管理…

[MySQL]MySQL索引

[MySQL]MySQL索引 文章目录 [MySQL]MySQL索引1. 索引的概念2. 认识磁盘磁盘的内部结构磁盘中的一个盘片结构定位扇区磁盘随机访问与连续访问 3. MySQL与磁盘交互的基本单位4. 建立共识5. 索引的理解创建测试表进行测试理解单个page理解多个page页目录其他的数据结构的问题聚簇索…

ModaHub魔搭社区:AI原生云向量数据库Zilliz Cloud角色与权限

目录 组织和项目 角色和权限 访问权限等级 文档推荐 Zilliz Cloud 提供访问控制。您可以灵活管理用户,为用户分配不同角色,授予用户不同的集群资源访问和操作权限。无权限的用户无法访问特定资源。 组织和项目 Zilliz Cloud 通过组织和项目实现访问控制和资源分离。 …

PostgreSQL数据库的部署与优化

文章目录 一.PostgreSQL数据库1.PostgreSQL数据库的概念1.1 PostgreSQL 的核心概念 2.PostgreSQL特点3.PostgreSQL的作用4.PostgreSQL的应用场景5.PostgreSQL、mysql、oracle的对比 二.Linux系统安装PostgresSQL(Centos7)1.更新yun源2.安装PostgreSQL2.1…

【消息队列设计总结】RabbitMQ、Kafka、RocketMQ对比之运行架构

目录 1 RabbitMQ 1.1 工作原理 1.2 名词解释 1.3 交换机的几种类型 2 Kafka 2.1 工作原理 2.2 基本概念 3 RocketMQ 3.1 工作原理 3.2 基本概念 4 RabbitMQ & Kafka & RocketMQ的差异 5 参考文档 1 RabbitMQ 1.1 工作原理 1.【消息生产】生产者&#xff0…

润本股份提交注册:拟募资约9亿元,赵贵钦、鲍松娟夫妇为实控人

撰稿|汤汤 来源|贝多财经 近日,润本生物技术股份有限公司(下称“润本股份”)在上海证券交易所递交招股书(注册稿)。据贝多财经了解,润本股份于2023年3月递交上市申请材料,准备在上海证券交易所…

MySQL-DDL-表的结构-查询修改删除

DDL(表操作) 查询 查询当前数据库所有表:show tables 查询表结构:desc 表名 查询建表语句:show create table 表名 修改(主要还是通过图形化界面进行操作) 添加字段:alter table …

王道考研数据结构第六章知识点总结

6.1.1图的基本概念 顶点集一定是非空集,边集可以是空集 非连通图:让任意n-1个顶点之间两两相连,另一个顶点与任意一个都不存在路径,则为非连通图的最大边数。 注意长三角地区铁路网不属于连通分量,因为它没有包含尽可能…

简单认识MySQL数据库索引

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、索引的概念1、简介2、作用3、索引的副作用:4、创建索引的原则依据5、索引的分类 二、索引的增删改查1.创建索引(1)创建普通索…

ios 通过xib自定义控件

通过xib自定义控件 xib和stroyboayd对比 共同点: 都是用来描述软件界面 都是用interface Builder工具来编辑 本质都是转换成代码去创建控件 不同点: xib是轻量级的,用来描述局部ui界面 创建模型文件 XMGCar 自定义控件 xib 图形设计 …

zookeeper和kafka与EFLFK集群

zookeeper和kafka 一:Zookeeper 概述1.Zookeeper 定义2.Zookeeper 工作机制3.Zookeeper 特点4.Zookeeper 数据结构5.Zookeeper 应用场景6.Zookeeper 选举机制6.1.第一次启动选举机制6.2.非第一次启动选举机制(1)当ZooKeeper 集群中的一台服务…