天天996的生活让人喘不上气来,最近连肉都快买不起了。还不赶紧发挥下自己的特长,增加些被动收入,早日走上财务自由之路?用Python你可以做到这一点。今天我们先实现看盘,虽然有众多看盘软件可以使用,但花花绿绿的界面看着就头大,我们只需要一个当前股价就好了。

easyquotation是国人出的一款Python库,可以抓取国内股票信息。先创建个数组存放股票代码,qq是指腾迅网站的行情。

stocks = ['sz002415', 'sz002237', 'sz002600', 'sz002230', 'sz000333', 'sz000651', 'sz000725', 'sz200725',

'sz601989', 'sz000951', 'sz002024', 'sz600004']

quotation = easyquotation.use('qq')

price = quotation.stocks(stocks, prefix=True)

print(price)

虽然指标很多,但我们只关心当前股价, 开盘价,收盘价等,我们当然可以用一个循环再在json里取属性, 但用高级一点的库比如Pandas, 直接就可以过滤出我们感兴趣的列。

hk = pd.DataFrame(price)

hk = hk.T.ix[:, ['name', 'now', 'open', 'close']]

price = hk.iterrows()

因为股票价格时刻在变,就需要在后台每隔5秒取一下数据,然后更新界面。用Qt自带的QThread是很容易的,象常见的多线程框架一样,我们在run方法里取股价,然后发射相应的股价,用简单的冒号分割。然后在UI主线程里拿到信号,刷新对应的表格值即可。不然的话,很容易在取股价的时候锁死界面。

完整的代码如下

import sys

import easyquotation

import pandas as pd

from PyQt5.QtCore import QTimer, pyqtSignal, QThread

from PyQt5.QtWidgets import *

stocks = ['sz002415', 'sz002237', 'sz002600', 'sz002230', 'sz000333', 'sz000651', 'sz000725', 'sz200725',

'sz601989', 'sz000951', 'sz002024', 'sz600004']

class Stock():

name = ""

now = ""

close = ""

open = ""

def __init__(self, stockId):

self.stockId = stockId

class WorkThread(QThread):

trigger = pyqtSignal(str)

def __int__(self):

super(WorkThread, self).__init__()

def run(self):

global stocks

try:

quotation = easyquotation.use('qq')

price = quotation.stocks(stocks, prefix=True)

print(price)

with pd.option_context('display.max_rows', None, 'display.max_columns', None):

hk = pd.DataFrame(price)

hk = hk.T.ix[:, ['name', 'now', 'open', 'close']]

price = hk.iterrows()

row = 0

for index, stock in price:

self.trigger.emit(f"{row}:{stock['name']}:{stock['now']}")

row += 1

except Exception as e:

print(e)

class MyApp(QMainWindow):

def __init__(self, stockIds, parent=None):

super(MyApp, self).__init__(parent)

self.stocks = stockIds

self.createTable()

self.timer = QTimer()

self.timer.setInterval(5000)

self.timer.timeout.connect(self.start)

self.timer.start()

self.work - 最佳的self 来源和相关信息。 = WorkThread()

self.work.trigger.connect(self.showPrice)

self.setCentralWidget(self.listView)

def start(self):

self.work.start()

def createTable(self):

self.listView = QTableWidget()

self.listView.setRowCount(10)

self.listView.setColumnCount(3)

for row, s in enumerate(self.stocks):

item = QTableWidgetItem()

item.setText(s)

self.listView.setItem(row, 0, item)

item = QTableWidgetItem()

item.setText("")

self.listView.setItem(row, 1, item)

item = QTableWidgetItem()

item.setText("")

self.listView.setItem(row, 2, item)

def showPrice(self, str):

print(f"got {str}")

row =int( str.split(':')[0])

name = str.split(':')[1]

price = str.split(':')[2]

self.listView.item(row, 1).setText(name)

self.listView.item(row, 2).setText(price)

def main():

app = QApplication(sys.argv)

t = MyApp(stocks)

www.8.show()

sys.exit(app.exec_())

if __name__ == '__main__':

main()

感兴趣的同学就可以在后期分析这些数据,找出符合条件的股票再调用selenium或者pyautogui去下单,这就是传说中的量化交易了。说不定下一个股神就是你呢,加油!扫码关注公众号,获取更多文章

用python赚零花钱_买不起猪肉了?用Python炒股赚点零花钱吧相关推荐

  1. python 字符串拼接_面试官让用 3 种 python 方法实现字符串拼接 ?对不起我有8种……...

    点击上方 蓝字关注我们 点击上方"印象python",选择"星标"公众号重磅干货,第一时间送达!之前发过很多关于 Python 学习的文章,收到大家不少的好评, ...

  2. 蒙特卡洛python求解派_用蒙特卡洛方法计算派-python和R语言

    标签: 用蒙特卡洛方法算pi-基于python和R语言 最近follow了MOOC上一门python课,开始学Python.同时,买来了概率论与数理统计,准备自学一下统计.(因为被鄙视过不是统计专业却 ...

  3. 最简单的python语言程序设计_编程中最简单的语言Python,这样学或许更容易

    最近微信小程序上面出了一个跳一跳的小游戏 大家有没有玩呀? 编程中最简单的语言Python,这样学或许更容易 分享之前我还是要推荐下我自己建的Python开发学习群:628979297,群里都是学Py ...

  4. python ide 最好_我在iPad上最好的Python IDE

    python ide 最好 Having finished my first year at university, and being left with very little to do thi ...

  5. python selenium脚本_怎样开始写第一个基于python的selenium脚本

    1.下载并安装python(http://www.python.org/geti/). 2.安装selenium(http://pypi.python.org/pypi/selenium)下载并解压缩 ...

  6. python语言 行业_如何入门编程开发行业 选择Python语言怎么样

    如何入门编程开发行业?选择Python语言怎么样?Python是一种面向对象的解释型计算机程序设计语言,它是纯粹的自由软件,语法简洁清晰,它具有丰富和强大的库.它常被称为胶水语言,能够把用其他语言制作 ...

  7. python笔记视频_终于拿到!清华大佬Python视频+书+笔记汇总

    终于拿到!清华大佬Python视频+书+笔记汇总 清华学姐推荐的Python视频400集,拿走不谢!

  8. python 建筑计算_制图小技巧:巧用Python和ELK瞬间完成总图建筑名称标注

    哎呦,又到了每周一次的制图教室啦.经过前面两次制图教程的分享,相信大家对于白模填色和写实渲染这两种表达方式肯定有了较好的掌握. 那么今天我们就转战制图技巧篇,和童鞋们聊一下总平面图中的建筑名称标注问题 ...

  9. python编程首选_为什么说学编程首选是python

    为什么学编程 你可能不会成为一名专业的程序员, 不过学编程的确是有很多的原因的 1. 最重要的是你想学!不论是因为业余爱好还是作为职业,编程都是十分有意思的, 都会让你收获很多 2. 如果你是对计算机 ...

最新文章

  1. [译] Couchbase 使用 cbbackup 备份
  2. hdu 多校数论 GuGuFishtion
  3. 初学者如何学习Vim
  4. 结合file和iconv命令转换文件的字符编码类型
  5. 做主管常犯的毛病毛病六:忘了公司的命脉:利润(转)
  6. 【开源框架】:解决方案级别的代码生成器 WebFirst
  7. 嵌入式软件设计第09实验报告
  8. Kotlin 的 Array 转 List
  9. swoole中退出、异常与错误的处理笔记
  10. [转载] numpy.dot numpy.linalg.eig numpy.linalg.svd np.linalg.inv 用法 + 例子
  11. Day6789:Keep Calm N Carry On
  12. 制造业公司通用的FICO成本核算方法介绍
  13. 数字金额转化为大写金额(js)
  14. U盘chk文件该怎样用EasyRecovery恢复
  15. 从变成浅谈《新概念》三册中的措辞精准
  16. 二线制和四线制传感器的区别_两线制、三线制、四线制传感器的区别和原理
  17. 关于SFM的材质vmt科普
  18. c#模拟微信运动排行榜
  19. match、search、findall用法区别
  20. ambari部署hadoop

热门文章

  1. 明天太阳照常升起的概率是多少?
  2. 作为一名IT工程师该如何提前预防职业病
  3. (一)离散型智能制造
  4. 计算机毕业设计JAVA人民医院体检预约mybatis+源码+调试部署+系统+数据库+lw
  5. day2——泰波那契数列
  6. 20230426作业
  7. 金融量化?金融市场?股票? 来,告诉你这些都是什么
  8. Machine Learning with Python Cookbook 学习笔记 第8章
  9. 抖音、腾讯世纪大和解,透露了哪些信息?
  10. 浅谈电弧光保护在10kV变电站高压室的应用方案