价值投资/指标选股(akshare)

利用akshare的数据源,可以获取所有的股票数据以及公开的财务数据,可以进行条件筛选,获取满足条件的股票。

        这套模板可以用于价值投资,指标选股。选股周期为日线级别。然后结果可以邮箱发送。

import time
import akshare as ak
## A 股上市公司的实时行情数据
stock_zh_a_spot_df = ak.stock_zh_a_spot()
#print(stock_zh_a_spot_df)
##取前300测试
##取前300测试
df_stock = stock_zh_a_spot_df[['代码','名称']][:20]
anyData = {'stock':'00','name':'name_test','指标1':'var1','指标1':'var1','指标2':'var2','指标3':'var3','指标4':'var4','综合评估':'varAll'}
dfResult = pd.DataFrame(anyData,index=[0])for row_index, row in df_stock.iterrows():try:# print(row['code'])# print(row['name'])r_code = row['代码'][2:]r_name = row['名称']print(r_code)##指标1 - 过去5年来平均净资产收益率高于14%df = ak.stock_financial_analysis_indicator(r_code)# 财务指标数据 工行财报# print(df.head())df = df.set_index(df['日期'])print(df.head())df1 = df[df.index>'2015-01-01']['净资产收益率(%)']df1_sum = df1.replace('--',0).astype(float).sum(axis = 0, skipna = True)df1_count = df1.count()var1 = (df1_sum / df1_count)>14##指标2- 市盈率低于30 并且大于 0 day = (datetime.datetime.now()- datetime.timedelta(days=30))dateStart = datetime.datetime(day.year, day.month, day.day, 0, 0, 0)##过去30天的数据dateStart = datetime.datetime.strptime(str(dateStart),'%Y-%m-%d %H:%M:%S')dateStart = datetime.datetime.date(dateStart) df2 = ak.stock_a_lg_indicator("601398")df2_mean = df2[df2.trade_date >dateStart ].pe.mean()var2 = df2_mean >0 and df2_mean < 30#指标3:经营现金流为正df3 = df#财务指标数据var3 = float( df3['每股经营性现金流(元)'].iat[1] ) > 0# print(var3)#指标4:新期的净利润大于前5年的净利润 取万元var4_1 = float(df3['扣除非经常性损益后的净利润(元)'].iat[1])/ 10000 var4_2 =  df3['扣除非经常性损益后的净利润(元)'].iloc[2:8].astype(np.float).max()/10000 var4 = var4_1 > var4_2##综合评估varAll = var1 and var2 and var3 and var4if varAll == True:print(row)anyData = {'stock':r_code,'name':r_name,'指标1':var1,'指标1':var1,'指标2':var2,'指标3':var3,'指标4':var4,'综合评估':varAll}df_idex = row_index+1dfResult.loc[df_idex] = anyDataprint(dfResult)except:continue#time.sleep(7)

这里的指标可以重新写,重新添加。自己习惯增加。

 

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

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

相关文章

gdb常用命令

[rootredhat home]#gdb 调试文件&#xff1a;启动gdb (gdb) l &#xff1a;&#xff08;字母l&#xff09;从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) break func&#xff1a;在函数func()的入口处设置断点 (gdb) info break&#xff1a; 查看断点信息 (gdb…

有前途的人工智能大数据分析相关职业:Python数据科学入门之路

2019独角兽企业重金招聘Python工程师标准>>> 为什么学习Python数据科学&#xff1f; Python是数据科学职业所需的宝贵技能之一。Python是数据科学的首选编程语言。 2016年&#xff0c;它超越了R on Kaggle&#xff0c;这是数据科学竞赛的首选平台。2017年&#xff0…

遍历Map key-value的两种方法、遍历Set方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 第一种遍历方法 : 先获取Map中的所有key值&#xff0c;然后根据key&#xff0c;依次从Map中去数据 Map<String,String> test…

STL 容器简介:C++ 容器:顺序性容器、关联式容器和容器适配器

STL标准容器类简介 标准容器类说明顺序性容器vector从后面快速的插入与删除&#xff0c;直接访问任何元素deque从前面或后面快速的插入与删除&#xff0c;直接访问任何元素list双链表&#xff0c;从任何地方快速插入与删除关联容器set快速查找&#xff0c;不允许重复值multise…

用友云开发者中心助你上云系列之在线调试

现在&#xff0c;大家开始越来越多的谈论到高可用架构的互联网应用。什么是高可用&#xff1f;高可用HA&#xff08;High Availability&#xff09;是分布式系统架构设计中必须考虑的因素之一&#xff0c;它通常是指&#xff0c;通过设计减少系统不能提供服务的时间。当我们谈论…

python根据财务指标寻找价值股票

确定股票池 from concurrent.futures import ThreadPoolExecutor import urllib import os from time import sleep import pandas as pd # 上证代码 shanghaicode [] for i in range(600000, 606000, 1):shanghaicode.append(str(i))# 深证代码 shenzhencode [] for i in r…

WPF Bitmap转BitmapSource,Image

//引用&#xff1a;using System.Windows.Interop; //Imagingusing System.Drawing; //Bitmap public static Imaging.BitmapSource ConvertToBitmapSource(Bitmap btmap) { return Imaging.CreateBitmapSourceFromHBitmap(btmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empt…

解决jboss.resteasy.spi.UnhandledException: Response is committed, can‘t handle exception

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题&#xff0c;如图&#xff1a; 我的情况是&#xff1a;项目作压测&#xff0c;这个接口请求量不大时是OK的 &#xff0c;当达到…

linux下如何做ghost,又简单又方便,很实用的方法!!!

Linux 做ghost 使用指南。 转载时请注明本博客地址。 1. 使用unetbootin-windows-585.exe 软件做 ubuntu 的liveusb &#xff0c;一定是做liveusb&#xff0c;不是liveCD&#xff0c;如果你做的是liveCD&#xff0c;要把做好的文件拷出来&#xff0c;否则&#xff0c;重…

Webpack4: Tree-shaking 深度解析

什么是Tree-shaking 所谓Tree-shaking就是‘摇’的意思&#xff0c;作用是把项目中没必要的模块全部抖掉&#xff0c;用于在不同的模块之间消除无用的代码&#xff0c;可列为性能优化的范畴。 Tree-shaking早期由rollup实现&#xff0c;后来webpack2也实现了Tree-shaking的功能…

真格量化——GFTD策略

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import numpy as np import math#开始时间,用于初始化一些参数 def OnStart(context) :print "I\m starting..."#设置全局变量g.signalcount = 0 g.signal_list = []g.buysignal = 0 g…

解决org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql ...

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题&#xff1a; org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [id]…

Spring WebFlux 响应式编程学习笔记(一)

各位Javaer们&#xff0c;大家都在用SpringMVC吧&#xff1f;当我们不亦乐乎的用着SpringMVC框架的时候&#xff0c;Spring5.x又悄(da)无(zhang)声(qi)息(gu)的推出了Spring WebFlux。web? 不是已经有SpringMVC这么好用的东西了么&#xff0c;为啥又冒出个WebFlux&#xff1f;…

Django Rest Framework -解析器

基本代码结构 urls.py rom django.conf.urls import url, include from web.views.s5_parser import TestViewurlpatterns [url(rtest/, TestView.as_view(), nametest), ]views.py from rest_framework.views import APIView from rest_framework.response import Response f…

真格量化——菜粕策略

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np from copy import *#开始时间,用于初始化一些参数 def OnStart(context) :context.myacc = None#登录交易账号if context.accounts["回测期货"].Login…

PostgreSQL查看版本信息

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 1.查看客户端版本 psql --version 1 2.查看服务器端版本 2.1 查看详细信息 select version(); 1 2.2 查看版本信息 show server_ve…

U盘版便携式Linux制作, casper-rw 解析

一直都在想&#xff0c;不管用谁的电脑&#xff0c;我都可以得到一个完全一致的工作环境&#xff0c;上面有我喜爱的软件&#xff0c;有我保存的重要资料&#xff0c;甚至浏览器的各种偏好都得一模一样&#xff01;现在的云计算技术可以部分解决这个问题&#xff0c;但是远远不…

真格量化-50ETF期权波动率策略

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import time import numpy as np #日线级别 #开始时间,用于初始化一些参数 def OnStart(context) :print("I\m starting...")#设定一个全局变量品种,本策略交易50ETF期权g.code = Get…

canvas反向裁剪技巧

我们都知道在canvas 可以通过clip来实现剪裁功能&#xff0c;其步骤一般是先设置要裁剪的区域&#xff08;路径&#xff09;&#xff0c;然后通过ctx.clip()的实现裁剪&#xff0c;裁剪之后&#xff0c;后续的绘制只能在裁剪的区域显示效果&#xff0c;比如如下一段代码&#x…

set 和select 的区别

简单赋值是没有区别的 转载于:https://www.cnblogs.com/bingyizhihun/p/10597908.html