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 range(1000000, 1005000, 1):i = str(i)[1:]shenzhencode.append(i)

?爬取數據

def get_data(num):url = 'http://quotes.money.163.com/service/lrb_' + str(num) + '.html'while True:try:content = urllib.request.urlopen(url, timeout=2).read()path = '利潤表_multi/' + str(num) + '.csv'if os.path.exists(path):print(path + " already existed!!!")breakwith open('利潤表_multi/' + str(num) + '.csv', 'wb') as f:f.write(content)print(num)sleep(1)except Exception as e:if str(e) == 'HTTP Error 404: Not Found':print(f"{num} : {e}")breakelse:print(e)

多線程運作

executor = ThreadPoolExecutor(max_workers=10)
executor.map(get_data, shenzhencode)
executor.shutdown()executor = ThreadPoolExecutor(max_workers=10)
executor.map(get_data, shanghaicode)
executor.shutdown()

?讀取本地數據

def generatefile(path):names = []for dirpath, dirnames, filenames in os.walk(path):names = filenamesreturn names

datapath = '利潤表_multi/'
datalist = generatefile(datapath)
invest = []
for data in datalist:try:path = datapath + datatemp = pd.read_csv(path, encoding='gbk', header=None)temp = pd.DataFrame(temp.values.T, index=temp.columns, columns=temp.index)temp.columns = temp.loc[0]temp = temp[1:]temp = temp[:-1]#temp['報告日期'] = temp['報告日期'].apply(convert_date)temp = temp[['報告日期','凈利潤(萬元)']]temp['凈利潤(萬元)'] = temp['凈利潤(萬元)'].astype(int)temp_g = pd.DataFrame(temp.groupby('報告日期').sum())temp_g = temp_g[:-1] # 去除2021temp_g.reset_index(inplace=True)temp_g = temp_g['凈利潤(萬元)']anu_diff = temp_g.diff()temp_g = temp_g.values# anu_diff = anu_diff.valuestemp_g = temp_g[::-1]ratio = 0.3if len(temp_g) >= 5:# rate = anu_diff[-5:]/temp_g[-6:-1]# if rate[-1] >= ratio and rate[-2] >= ratio and rate[-3] >= ratio and rate[-4] >= ratio:#         invest.append(data)growth_anu = []for i in range(len(temp_g)):if i == (len(temp_g)-1):continueyear = temp_g[i]ex_year = temp_g[i+1]if i+1 <= 5:growth = (year - ex_year)/ex_yeargrowth_anu.append(growth)if growth_anu[0] >= ratio and growth_anu[1] >= ratio and growth_anu[2] >= ratio and growth_anu[3] >= ratio:invest.append(data)except Exception as e:print(data + f':{e}')
invest = pd.DataFrame(invest)
invest.to_excel('連續4年增長30%.xls')

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/449470.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/449470.shtml
英文地址,請注明出處:http://en.pswp.cn/news/449470.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

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

postgres大版本升級

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到教程。進行升級版本之前請一定做好備份&#xff01;查看當前版本&#xff1a;[postgresnode1 ~]$ psqlpsql (9.4.4)Type "help" for h…

馬上有錢:揭密25種成為有錢人的方法(圖)

1、做你真正感興趣的事—你會花很多時間在上面&#xff0c;因此你一定要感興趣才行&#xff0c;如果不是這樣的話&#xff0c;你不愿意把時間花在上面&#xff0c;就得不到成功。 2、自己當老板。為別人打工&#xff0c;你絕不會變成巨富&#xff0c;老板一心一意地縮減開支&a…

無人承運平臺系統流程圖

轉載于:https://www.cnblogs.com/procedureMonkey/p/10598052.html

Neither the JAVA_HOME nor the JRE_HOME environment variable is defined

Centos7.5 啟動tomcat報錯 報錯: Neither the JAVA_HOME nor the JRE_HOME environment variable is defined At least one of these environment variable is needed to run this program原因:沒有安裝java 解決方法:安裝java yum install java -y轉載于:https://www.cnblogs…

讓自己變成一個上進的人

1.認真設計你的環境2.引入外部監督 求“綁架”3.獲取不確定的反饋4.選擇一條既細密&#xff0c;又永無止境的職業上升臺階。轉載于:https://www.cnblogs.com/Julietma/p/10600241.html

年買筆記本的8個小技巧 最適合自己才最好(組圖)

顯然&#xff0c;智能手機和平板在一定程度上可以替代傳統電腦&#xff0c;讓我們可以隨時隨地上網、使用各種應用。不過&#xff0c;傳統電腦也擁有它的不可替代性&#xff0c;比如移動辦公、視頻編輯、玩游戲&#xff0c;筆記本電腦可能是個更好的選擇。 作為一種成熟的電腦…