用于获得个股MACD数据及每日收盘数据的python程序

几年前上一波股票牛市的时候,曾经编写了一个判断股价的python程序。最近几日股票市场又开始比较火热,估计有的朋友可能需要进行股票数据的获得和分析。现在把那个程序中用于获得macd数据及收盘数据的部分公布出来,给有需要的朋友。

import urllib.request
import gzip
import json
import re
import socket
import time
import threadingsocket.setdefaulttimeout(5)class ur():   #网络连接类def __init__(self):passdef gethtml(self,url):html=urllib.request.urlopen(url)html=html.read()return htmldef gethtmll(self,url):html=self.gethtml(url)try:html=html.decode('utf-8')except:try:html=html.decode('gbk')except:try:html=gzip.decompress(html).decode('utf-8')except:html=gzip.decompress(html).decode('gbk')return htmlclass update(ur):   #更新股票代码类def __init__(self,n):self.url=r'http://vip.stock.finance.sina.com.cn/corp/go.php/vRPD_NewStockIssue/page/%d.phtml'self.n=int(n)self.code=set()def get(self):for i in range(self.n):i+=1code=self.url % ik=0while 1:k+=1if k==4:breaktry: html=super().gethtmll(code)breakexcept:continuereg=re.compile('<div align="center">(......)</div>')result=reg.findall(html)for i in result:try:int(i)except:continuei+='\n'self.code.add(i)try:for i in open('stock\\list.dat','r'):self.code.add(i)except:passtxt=open('stock\\list.dat','w')txt.close()txt=open('stock\\list.dat','a')for i in self.code:txt.write(i)txt.close()class api(ur):   #获得个股的json数据类def __init__(self,code):self.code=str(code).strip('*')self.url=r"http://api.finance.ifeng.com/akdaily/?code=%s&type=last"self.js=Nonedef get(self):if int(self.code)<600000:self.code='sz'+self.codeelse:self.code='sh'+self.codeurl=self.url % self.codewhile 1:try:html=super().gethtmll(url)breakexcept:continueself.js=json.loads(html)self.js=self.js['record']class api60(api): #继承api类功能,数据源改为60分钟线数据def __init__(self,code):self.code=str(code).strip('*')self.url=r'http://money.finance.sina.com.cn/quotes_service/api/jsonp_v2.php/a=/CN_MarketData.getKLineData?symbol=%s&scale=60&ma=no&datalen=1023'def get(self):self.js=Noneif self.code[0]!='s':if int(self.code)<600000:self.code='sz'+self.codeelse:self.code='sh'+self.codeurl=self.url % self.codewhile 1:try:html=super().gethtmll(url)breakexcept:continuereg=re.compile('{(.*?)}')self.js=reg.findall(html)self.js=[i.split(',') for i in self.js]self.js=[i[4] for i in self.js]reg=re.compile('"(.*?)"')self.js=[reg.findall(i) for i in self.js]self.js=[float(i[0]) for i in self.js]class macd(api):     #获得macd类def __init__(self,code):super().__init__(code)super().get()self.macd=[]   #macd元组self.day=[]    #日收盘数据元组def getmacd(self):if len(self.js)!=0:EMA1=float(self.js[0][3])self.day.append(EMA1)EMA2=EMA1DIF=0DEA=0self.macd.append((0,DIF,DEA))k=0for i in self.js[1:]:k+=1EMA1=EMA1*11/13+float(i[3])*2/13EMA2=EMA2*25/27+float(i[3])*2/27self.day.append(i[3])DIF=round((EMA1-EMA2),3)DEA=round((DEA*8/10+DIF*2/10),3)self.macd.append((k,DIF,DEA,EMA1,EMA2))class macd60(api60):  #获得60分钟macddef __init__(self,code):super().__init__(code)def getmacd(self):self.macd=[]super().get()EMA1=self.js[0]EMA2=EMA1DIF=0DEA=0self.macd.append((0,DIF,DEA))k=0for i in self.js[1:]:k+=1EMA1=EMA1*11/13+i*2/13EMA2=EMA2*25/27+i*2/27DIF=round((EMA1-EMA2),3)DEA=round((DEA*8/10+DIF*2/10),3)self.macd.append((k,DIF,DEA,EMA1,EMA2))aa=macd('600004')
aa.getmacd()

aa=macd(‘600004’) 表示获得600004(白云机场)的股票数据,若要获得其它股票的数据直接更改6位股票代码。
aa.getmacd()为获得macd数据。
aa.macd为一个元组由每日的子元组组成,子元组包含 日期序号,Dif数据,Dea数据,Ema1(不需要考虑),Ema2(不需要考虑)。
若要获得60分钟线macd则使用macd60类初始化。
aa.day为一个元组,由每日的收盘价组成。

祝大家好运。

↓这是用于监控近期大盘可能上涨个股的程序,在上述代码获得macd数据后,对数据及即时股价进行分析,从而获得可能上涨的个股。
用于监控近期大盘可能上涨个股的完整程序

用于获得个股MACD数据及每日收盘数据的python程序相关推荐

  1. 全国高校“数据科学与大数据技术”专业教学研讨会

    全国高校"数据科学与大数据技术"专业教学研讨会 暨新工科背景下的人才培养与课程建设师资培训会 目前,我国大数据专业人才匮乏,培养优秀的专业人才迫在眉睫.为实施国家大数据战略,加快大 ...

  2. A股全市场个股涨停板明细来袭!—股票数据远程下载服务升级

    前言 创建知识星球<玩转股票量化交易>的初心是为了建立一个可以深入学习和交流的私有量化圈子,和志同道合的小伙伴们一起搭建私有的量化交易系统,并且不断迭代完善这个系统,从而能够帮助我们更高效 ...

  3. python a股行情_用Python,tushare做一个A股每日收盘行情监测分析(含源代码)

    灵感:对于交易者来说,每日收盘分析是一件必要的功课.现在的看盘软件种类很多,已经有很多整理好的数据,但是对于高阶玩家,可能需要更多自定义化的功能,做出自己的每日分析报表.那我们何不尝试用Python做 ...

  4. python 涨停统计_用Python,tushare做一个A股每日收盘行情监测分析(含源代码)

    灵感:对于交易者来说,每日收盘分析是一件必要的功课.现在的看盘软件种类很多,已经有很多整理好的数据,但是对于高阶玩家,可能需要更多自定义化的功能,做出自己的每日分析报表.那我们何不尝试用Python做 ...

  5. python统计库存_通过Python中的pandas将每日库存数据转换为每周库存数据

    我有一个存储每日数据的DataFrame,如下所示:Date Open High Low Close Volume 2010-01-04 38.660000 39.299999 38.509998 3 ...

  6. 每日一练:Python国内疫情数据爬取与地图绘制

    Python 国内疫情数据爬取与地图绘制 效果图 累计确诊疫情地图绘制 ① 时时数据抓取 ② 获取省份疫情数据 ③ 视觉配置项分段颜色数据设置 ④ 累计确诊疫情地图绘制 现存确诊疫情地图绘制 ① 获取 ...

  7. odata数据绑定_如何使用用于SQL Server集成服务的OData源将数据导入SQL Server数据库

    odata数据绑定 介绍 ( Introduction ) A few days back I was looking at ways to access raw data from within M ...

  8. python扩展库用于科学计算的有哪些_数据科学必备的十大 Python 库

    ​Python 已成为当今使用最广泛的编程语言之一,尤其是在数据科学领域. Python 是一种高性能的语言,易于学习和调试,并且具有广泛的库支持.这些库都有自己独特的功能,一些专注于数据挖掘,一些专 ...

  9. NOAA气象监测数据下载(可下载最新及每日气象数据)

    气象监测数据下载(可下载最新及每日气象数据) NOAA气象日监测数据均值计算python代码整理 PostgreSQL数据库导入EXCEL数据表 一.数据来源 美国NOAA气象监测数据,可从NOAA ...

最新文章

  1. .Net Framework中的委托与事件
  2. 设计模式(2)工厂方法模式(Factory Method)
  3. String中的hashcode缓存以及HashMap中String作key的好处
  4. CBAC(基于内容的访问控制)
  5. xnawindowsph日本 Phone x Phone iphone 4 座机 复古电话手机座 听筒 防辐射
  6. MyBatis自动生成代码之generatorConfig配置文件及其详细解读
  7. Confluence 6 从外部目录中同步数据配置同步间隔
  8. Mysql 主从数据库同步详解
  9. python中with的用法简单来说_Python中with的用法
  10. sql字符串函数_另一堆SQL字符串函数
  11. Tomcat 的部署+虚拟主机的配置
  12. Gartner:数字化转型的新方向:敏捷,以产品为中心
  13. 软著申请材料,软著申请文件,软著登记材料,软著登记文件
  14. Python:实现一个Pangram字符串至少包含一次所有字母算法(附完整源码)
  15. Altium Designer 2023介绍
  16. SOD领域RGBD算法-训练集设置
  17. hibernate MySQL 无法正确插入数据
  18. 电动汽车蒙特卡洛模拟(附Matlab代码)
  19. 电子沙盘开发教程 数字沙盘GIS大数据人工智能
  20. pm在APP、产品设计中如何有效埋点

热门文章

  1. 05 爬取周杰伦所有歌单
  2. 「题解」CF1468M Similar Sets
  3. Typora+坚果云实现笔记云同步,真的很nice!
  4. 2095. 删除链表的中间节点、19. 删除链表的倒数第 N 个结点、148. 排序链表
  5. 06 pandas回顾 文件的读取read_excel、索引与切片(loc、iloc)、过滤、删除、级联、映射、排序、分组 的详细例子
  6. java设计模式——单例模式(超详细)
  7. 在word中或者Visio中字母上加一个横线 或者x拔
  8. 01.爱芳地产项目小程序全栈项目经验(已上线)
  9. 基于springboot游泳健身后台管理系统(Java毕业设计)
  10. 学习统计学之方差分析