欢迎大家订阅《教你用 Python 进阶量化交易》专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前推出的扩展篇链接如下:

为了将专栏中分散的知识点贯穿起来,笔者在专栏的末尾小节《制作自己的量化交易工具》中分享了早期制作的一个简易版量化交易小工具,希望大家能够通过调试代码的方式掌握相关的知识。

目前在场外篇第9篇中已经移植到了Python3.7x版本上,接下来我们在这个版本的基础上逐步完善这个工具,使专栏的读者不仅能够通过小工具掌握专栏的相关知识点,也能够把工具用到自己的股票量化交易中去。

在数据分析中少不了会使用到像excel一样的表格来显示和编辑数据。本节我们介绍下wx.grid.Grid的使用。

首先我们跑一个关于wx.grid.Grid测试的例程,看看整体的显示效果。

class GridFrame(wx.Frame):

def __init__(self, parent):

wx.Frame.__init__(self, parent)

self.grid = wx.grid.Grid(self, -1)

def TestFunction(self):

self.grid.CreateGrid(100, 10)

self.grid.SetRowSize(2, 60)

self.grid.SetColSize(0, 120)

self.grid.SetRowLabelValue(0, "ROW")

self.grid.SetColLabelValue(0, "COL")

self.grid.SetCellValue(0, 0, 'wxGrid is good')

self.grid.SetCellValue(0, 3, 'This is read.only')

self.grid.SetReadOnly(0, 3)

self.grid.SetCellValue(3, 3, 'green on grey')

self.grid.SetCellTextColour(3, 3, wx.GREEN)

self.grid.SetCellBackgroundColour(3, 3, wx.LIGHT_GREY)

self.grid.SetColFormatFloat(5, 6, 2)

self.grid.SetCellValue(0, 6, '3.1415')

self.Show()

我们挑选几个在例程中使用到的,相对常用的方法,进行逐个的介绍。

CreateGrid()方法初始化一个固定行数、列数的Grid界面。

注:行列数创建后仍可以使用以下方法增加行列:

使用AppendCols向右扩展grid更多的列或者AppendRows向下扩展grid更多的行,如下所示:

AppendCols(self, numCols=1, updateLabels=True)

AppendRows(self, numRows=1, updateLabels=True)

使用InsertCols指定位置插入更多的列扩展grid或者使用InsertRows指定位置插入更多的行扩展grid,如下所示:

InsertCols(self, pos=0, numCols=1, updateLabels=True)

InsertRows(self, pos=0, numRows=1, updateLabels=True)

SetColSizes()方法和SetRowSize()方法分别设置指定列、行的宽度、高度

SetCellValue()方法设置指定行列的单元格内的值

SetRowLabelValue()方法和SetColLabelValue()方法用于改变行标签、列标签。

为了更好地结合实际的应用场景,我们把2019年12月31日前每日RPS排名前十的股票用Grid显示出来,只需遍历的方式调用SetCellValue()方法即可。如下所示:

关于Grid有几个关键的事件,这里说明一下。

事件EVT_GRID_CELL_CHANGING:单元格内数据发生变化中

事件EVT_GRID_CELL_CHANGED:单元格内数据发生变化后

事件EVT_GRID_CELL_LEFT_CLICK:左键单击单元格

事件EVT_GRID_CELL_LEFT_DCLICK:左键双击单元格

事件EVT_GRID_CELL_RIGHT_CLICK:右键单击单元格

事件EVT_GRID_CELL_RIGHT_DCLICK:右键双击单元格

事件EVT_GRID_SELECT_CELL:选中单元格事件

绑定事件的代码如下所示,第一个参数是事件,第二个参数是响应方法,第三个参数:事件对象。此处我们右键双击单元格后会使该单元格背景色变成黄色。

self.Bind(wx.grid.EVT_GRID_CELL_RIGHT_DCLICK, self.cellChanged, self.grid)

响应方法中必须要有一个event参数,这点需要特别提示。

当处理大型数据展示的时候,可以使用setTable()方法做到数据与界面逻辑分离。接下来我们介绍下这种方法。

首先通过wx.grid.GridTableBase基类创建一个的自定义的子类。wx.grid.GridTableBase类保存了wx.grid.grid类要显示的实际数据,这样一来wx.grid.grid类就充当一个表类的视图。

自定义类中需要重写GetNumberRows、GetNumberCols、GetValue这些方法。

class RpsInfoGridTable(wx.grid.GridTableBase):

def __init__(self, datas, colLabels):

wx.grid.GridTableBase.__init__(self)

self.datas = datas

self.colLabels = colLabels

仍然以显示2019年12月31日前每日RPS排名前十的股票为例介绍这种方式。如下所示:

def TableBaseTest(self):

self.ReadData()

GridTable = RpsInfoGridTable(self.df_data.values, self.list_columns)

self.grid.SetTable(GridTable, True)

self.grid.AutoSize()

self.grid.Refresh()

self.Show()

关于以上内容更多的探讨欢迎大家加入专栏交流群。更多的量化交易内容欢迎大家订阅专栏阅读!!

python做excel数据分析带gui_Python进阶量化交易专栏场外篇25-GUI工具实现excel功能...相关推荐

  1. python 组合优化 回撤最小_Python进阶量化交易专栏场外篇23-Markowitz实现股票最优组合...

    欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前推出的扩展篇链接如下: 股票 ...

  2. python爬取论坛付费内容_Python进阶量化交易专栏场外篇20-爬虫抓取股票论坛帖子...

    欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前推出的扩展篇链接如下: 为了 ...

  3. python 爬取财经新闻股票_Python进阶量化交易专栏场外篇20-爬虫抓取股票论坛帖子...

    欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前推出的扩展篇链接如下: 为了 ...

  4. python gui插件_Python进阶量化交易专栏场外篇17- GUI控件在回测工具上的添加

    欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前推出的扩展篇链接如下: 为了 ...

  5. python选股票进阶_Python进阶量化交易专栏场外篇27-股票数据的除权和复权

    欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前推出的扩展篇链接如下: 在行 ...

  6. python 股票指标库talib_Python进阶量化交易专栏场外篇19-建立基于TA-Lib的指标库

    欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前推出的扩展篇链接如下: 为了 ...

  7. pb 调用虹软_Python进阶量化交易专栏场外篇12-股票分笔数据跨周期处理

    欢迎大家订阅<教你用 Python 进阶量化交易>专栏!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外已陆续推出一些手记来辅助同学们学习本专栏内容,目前推出的扩展篇链接如下: 在专 ...

  8. Python进阶量化交易专栏场外篇:股票数据的除权和复权

    在行情软件中经常会看到除权.复权选项,我们选择不同的选项,软件上股票的价格回相应地转换. 在量化交易中,我们开发了一个交易策略,需要对策略在历史行情数据上进行回测,那么我们该选择除权,还是复权,哪一种 ...

  9. python计算最大回撤_Python进阶量化交易场外篇3——最大回撤评价策略风险

    新年伊始,很荣幸笔者的<教你用 Python 进阶量化交易>专栏在慕课专栏板块上线了,欢迎大家订阅!为了能够提供给大家更轻松的学习过程,笔者在专栏内容之外会陆续推出一些手记来辅助同学们学习 ...

最新文章

  1. Python爬虫应用实战案例-pyquery在爬虫中的应用,爬取猫眼电影数据
  2. 彻底搞清楚MySQL分库、分表、分区的区别
  3. matlab如何使音频文件声音变大_如何制作视频课程
  4. 帝国理工 计算机 金融和管理,计算机毕业生同样研读帝国理工金融工程
  5. VC下的人人对弈五子棋(dos)
  6. 【MySQL建表语句转PostgreSQL建表语句】MySQL建表语句转PostgreSQL建表语句 接上一篇
  7. Visual C++鼠标画线操作
  8. 这台笔记本最适合程序员编程!!
  9. linux下ms安装教程,MS在linux的安装过程.doc
  10. 安卓桌面整理app_【小编分享】APP整理大法!跟杂乱无章的手机桌面说拜拜~
  11. 关于卷积核大小的论文与思路
  12. Go是Google的语言,而不是我们的语言
  13. Qt6实战教程:媒体播放器示例
  14. 宠物购物领养社区app(IDEA,SpringBoot,SSM,MySQL)+全套视频教程
  15. eclipse-美化插件
  16. 【剑指offter】二维数组中的查找
  17. IP电话基本原理详细解析
  18. 码住这些视频配音软件,一键完成配音
  19. QuickFIX/N使用:如何自定义FIX(五)
  20. 多无线路由器有线串连接,使用同一个SSID号无缝连接漫游(非中继方式)

热门文章

  1. 初学者の发送QQ邮箱完整代码
  2. 5G 核心网 Inter NG-RAN node N2 based handover 信令流程
  3. 手机wps怎么设置打印横竖_手机WPS怎么设置横版打印?
  4. 软件测试应届简历,软件测试应届毕业生个人简历
  5. 统计分布——常用且重要的三种分布
  6. springboot启动报Whitelabel Error Page
  7. numpy数组中元素单个选取或部分选取
  8. Understanding Human Behaviors in Crowds by Imitating the Decision-Making Process
  9. Linux远程联机服务器SSH VNC XDMCP RDP
  10. 机器视觉系列(五)——镜头部分