《中文Python穿云箭量化平台二次开发技术09》设计一个可视化股票池量化平台项目用于实现选股和自动交易

news2024/9/23 17:21:38

《中文Python穿云箭量化平台》是纯Python开发的量化平台,因此其中很多Python模块,我们可以自己设计新的量化工具,例如自己新的行情软件、新的量化平台、以及各种量化研究工具。
穿云箭自带指标公式源码运行模块,可以为其他量化平台提供量化功能扩展或量化功能增强效果。
《中文Python穿云箭量化平台》包含有行情接口,指标运算模块,K线和指标显示模块。我们在投资分析研究和策略中,有很多可利用的资源和信息。
《中文Python穿云箭量化平台》是用Tkinter设计的,本身有强大的Tkinter高级工具,可以实现可视化部件操作。
我们想设计一个 《小白量化股票池平台》。全部可视化鼠标操作,只需要设计一些参数和指标,就能全自动选股或交易。
用户设置股票池,然后设置指标方案选股,最后生成的股票池直接交易。
公户操作过程:
1、放置【股票池】,给股票池选择股票。
2、放置【方案1】,设置方案,例如选择月K线,自编指标1。
3、放置【方案2】,设置方案,例如选择日K线,自编指标2。
3、放置【方案3】,设置方案,例如选择5分钟K线,自编指标3。
4、放置【输出】,设置股票池输出模式,发邮件,发微信,发QQ,发钉钉,同花顺下单。
这个是我们打算新开发的新量化工具,用穿云箭模块很容易设计出这样的量化工具。
GUI窗口可以利用tkinter和HP_tka模块来实现。这个量化平台是我们打算开发的新平台。我们这个给出界面方面的设计思路,后台算法完全可以依赖前面博客,通过循环处理股票池,通过获取行情,计算自编指标选股来实现。
下面给出界面方面的代码演示,为有可视化需求的朋友提供代码示范。

#小白量化快刀版
#开始开发日期:20240903
#设计:独狼 QQ:2775205
#电话微信:18578755056
import  tkinter  as  tk   #导入Tkinter
import  tkinter.ttk  as  ttk   #导入Tkinter.ttk
from PIL import Image, ImageTk, ImageDraw, ImageFont
import  HP_tka  as  htk   #导入htk

class gpc(tk.LabelFrame):   #股票池
    def __init__(self, root=None,x=0,y=0,width=140, height=80,text='股票池',bg='#AA8888',bd=0,font='Helvetic 12',tag='kaishi',**options):
        self.root=root
        self.x=x
        self.y=y
        self.width=width
        self.height=height
        self.text=text
        self.bg=bg
        self.bd=bd
        self.font=font
        tk.LabelFrame.__init__(self, root,text=text,bg=bg,bd=bd,font=font,**options)         
        self.scrollbar=tk.Scrollbar(self)
        self.scrollbar.pack(side=tk.RIGHT,fill=tk.Y)
        self.lb=tk.Listbox(self,selectmode=tk.BROWSE,yscrollcommand=self.scrollbar.set,font =font)  #height=5,
        self.lb.pack(expand=tk.YES,fill=tk.BOTH)
        self.scrollbar.config(command=self.lb.yview)
        self.place(x=self.x, y=self.y, width=self.width, height=self.height)
        self.update()




class cl(tk.LabelFrame):   #策略方案
    def __init__(self, root=None,x=0,y=0,width=140, height=80,text='策略1',bg='#8888FF',bd=0,font='Helvetic 12',tag='kaishi',**options):
        self.root=root
        self.x=x
        self.y=y
        self.width=width
        self.height=height
        self.text=text
        self.bg=bg
        self.bd=bd
        self.font=font
        tk.LabelFrame.__init__(self, root,text=text,bg=bg,bd=bd,font=font,**options)         
        self.scrollbar=tk.Scrollbar(self)
        self.scrollbar.pack(side=tk.RIGHT,fill=tk.Y)
        self.lb=tk.Listbox(self,selectmode=tk.BROWSE,yscrollcommand=self.scrollbar.set,font =font)  #height=5,
        self.lb.pack(expand=tk.YES,fill=tk.BOTH)
        self.scrollbar.config(command=self.lb.yview)
        self.place(x=self.x, y=self.y, width=self.width, height=self.height)
        self.update()



class sc(tk.LabelFrame):   #输出
    def __init__(self, root=None,x=0,y=0,width=140, height=80,text='输出',bg='#8888FF',bd=0,font='Helvetic 12',tag='kaishi',**options):
        self.root=root
        self.x=x
        self.y=y
        self.width=width
        self.height=height
        self.text=text
        self.bg=bg
        self.bd=bd
        self.font=font
        tk.LabelFrame.__init__(self, root,text=text,bg=bg,bd=bd,font=font,**options)         
        self.scrollbar=tk.Scrollbar(self)
        self.scrollbar.pack(side=tk.RIGHT,fill=tk.Y)
        self.lb=tk.Listbox(self,selectmode=tk.BROWSE,yscrollcommand=self.scrollbar.set,font =font)  #height=5,
        self.lb.pack(expand=tk.YES,fill=tk.BOTH)
        self.scrollbar.config(command=self.lb.yview)
        self.place(x=self.x, y=self.y, width=self.width, height=self.height)
        self.update()



root=htk.MainWindow(title='小白量化股票池版',x=100,y=200,w=800,h=600)
root.iconbitmap('ico/py.ico')  #设置应用程序图标
root.SetCenter()  #移动到屏幕中央

#建立菜单
menus = [['策略',['执行策略','-','新建','打开','运行','-','保存','另存为']],\
         ['编辑',['撤销','重做','-','剪切','复制','粘贴','-','全选']],\
         ['程序',['运行','运行插件','转中文','转英文']],\
         ['项目',['项目目录','系统设置']],\
         ['帮助',['关于软件','项目缩略图','退出']]]
mymenu=htk.windowMenu(root,menus=menus)


#建立工具栏
toolsbar=htk.ToolsBar(root,10) #创建工具栏
toolsbar.pack(side=tk.TOP, fill=tk.X)   #把工具栏放到窗口顶部
png1= ImageTk.PhotoImage(Image.open('ico2/POINT13.ico'))
png2= ImageTk.PhotoImage(Image.open('ico2/new.jpg'))
png3= ImageTk.PhotoImage(Image.open('ico2/gpc.jpg'))
png4= ImageTk.PhotoImage(Image.open('ico2/cl.jpg'))
png5= ImageTk.PhotoImage(Image.open('ico2/左.jpg'))
png6= ImageTk.PhotoImage(Image.open('ico2/右.jpg'))
png7= ImageTk.PhotoImage(Image.open('ico2/上.jpg'))
png8= ImageTk.PhotoImage(Image.open('ico2/下.jpg'))
png9= ImageTk.PhotoImage(Image.open('ico2/箭.jpg'))
png10= ImageTk.PhotoImage(Image.open('ico2/模块.jpg'))


#改变工具栏的图标
toolsbar.config(0,image=png1)
toolsbar.config(1,image=png2)
toolsbar.config(2,image=png3)
toolsbar.config(3,image=png4)
toolsbar.config(4,image=png5)
toolsbar.config(5,image=png6)
toolsbar.config(6,image=png7)
toolsbar.config(7,image=png8)
toolsbar.config(8,image=png9)
toolsbar.config(9,image=png10)

#建立状态栏
status=htk.StatusBar(root)    #建立状态栏
status.pack(side=tk.BOTTOM, fill=tk.X) #把状态栏放到窗口底部
status.clear()
status.text(0,'状态栏') #在状态栏1输出信息
status.text(1,'超越自我!') #在状态栏2输出信息
status.text(2,'超越!是我们的每一步!')
status.text(3,'版权所有')
status.text(4,'侵权必究')
status.text(5,'设计:小白')
status.config(1,color='red') #改变状态栏2信息颜色
status.config(3,color='green') #改变状态栏2信息颜色
status.config(4,color='blue') #改变状态栏2信息颜色

############免费培训课################
#会议主题:零基础学量化课(周四固定课)
#重复周期:2024/08/22-2024/08/29 19:30-20:30, 每周 (周四)
#腾讯会议:423-1511-5645
#####################################
#会议主题:Python量化培训(周日固定课)
#重复周期:2024/08/25-2024/09/22 19:30-20:30, 每周 (周日)
#腾讯会议:366-1282-4806

top=htk.resizeCanvas(root)  #建立可视化画板
g=gpc(top,x=30, y=20, width=140, height=100,text='股票池',bg='#FF8888')   #创建一个股票池方案
top.setwidget(g)  #加入可调部件入可调部件

cc=cl(top,x=300, y=120, width=140, height=100,text='策略1',bg='#8888FF')   #创建一个策略方案
top.setwidget(cc)  #加入可调部件入可调部件

top.Line(170,60,300,170,fg='black',tag='lineA',width=4, arrow='last',dash=(4, 4) )  #由股票池到策略画线

ss=sc(top,x=600, y=120, width=140, height=100,text='输出',bg='#FF88FF')   #创建一个输出方案
top.setwidget(ss)  #加入可调部件入可调部件

top.Line(440,170,600,170,fg='red',tag='lineA',width=4, arrow='last',dash=(4, 4) )  #由策略到输出画线

root.mainloop()      #进入Tkinter消息循环

上面程序运行结果如下。
在这里插入图片描述
本文代码是我们正在开发软件的部分源码,读者可以学习借鉴,不得用于商业软件。我们将在此基础上继续开发成为新的小白量化产品。

前面几篇博客,我们介绍了利用《中文Python穿云箭量化平台》的Python模块,打造自己新一代的量化工具。这些工具包括行情软件,量化框架平台,中文Python代码集成开发工具,以及任意Tkinter可视化操作的应用程序。

好了,欢迎继续关注我的博客。后面我们介绍更多的二次开发技术。

超越自己是我的每一步!我的进步就是你的进步!

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

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

相关文章

ROS/ROS2版本和Gazebo版本

简洁版本: ROS Noetic Gazebo 11 (ubuntu 20.04)ROS Jazzy Gazebo Harmonic (ubuntu 24.04) 其他版本搭配也可以学习和研究但是成本过高。 如何贯穿从ROS kinetic到ROS Jazzy的教程。 如何实现旧新的平滑过度。 …

python常用库学习-Matplotlib使用

文章目录 安装 Matplotlib导入库基本示例1. 绘制简单的线图2. 散点图3. 柱状图4. 直方图5. 子图 更多高级功能1. 自定义样式2. 文本和注释3. 保存图形 示例:使用 Matplotlib 绘制多个图表示例 1: 绘制多个线图示例 2: 绘制散点图和直方图 参考文献 Matplotlib 是 Py…

【QT】VS2020+QT插件 CMake项目开发踩坑记录

背景 我使用的是VS2022, 安装了QT的两个插件,并且使用CMake进行工程管理。 当然如果你想通过VS开发qt,第一步是安装QT(我目前安装了最新的6.7版本) 然后才是安装VS中的QT插件。 这篇文章,主要记录&#x…

Navicat出了免费版本

官方下载地址 Navicat出了一款免费版本Navicat Premium Lite,相比正常版本阉割了很多功能,最让人无奈的是没有美化sql功能。 可以满足我们的日常需求,提供了基础的功能:创建连接、连接分组、管理表、管理数据、导入导出数据。还…

台球助教APP小程序的前端交互设计

在当今移动互联网时代,台球助教APP小程序作为一种便捷的学习工具,正在成为越来越多台球爱好者的首选。作为设计人员,在开发台球助教APP小程序时,我们的目标是创造一个既美观又实用的应用程序,让用户在使用过程中感到舒…

VS编译环境中printf() scanf()等文件操作函数不安全编译报错的解决方法

如题,在使用诸如printf() scanf() fopen()等函数时会出现如下图这样不安全的错误 解决方法: 在程序的前面添加此预编译指令 #pragma warning(disable:4996) 添加后即可编译通过。

基于vue框架的超市管理系统yqogz(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。

系统程序文件列表 项目功能:用户,商品分类,商品信息,员工,进货信息 开题报告内容 基于Vue框架的超市管理系统开题报告 一、研究背景与意义 随着信息技术的飞速发展和零售行业的数字化转型,超市作为传统零售业的重要组成部分,面临着提升管…

「OC」剪不断,理还乱——UIResponder、UIGestureRecognizer、UIControl的响应优先级探究

「OC」剪不断,理还乱——UIResponder、UIGestureRecognizer、UIControl的响应优先级探究 文章目录 「OC」剪不断,理还乱——UIResponder、UIGestureRecognizer、UIControl的响应优先级探究前言介绍UIResponderUIGestureRecognizerUIControl 正文UIGestur…

都9月了,说好的系统规划与管理师改版教程呢?

今天距离2024年下半年的系统规划与管理师考试,还有66天的时间,六六大顺! 差不多是一个月之前,系统规划与管理师的改版消息被刷屏了,刷屏的原因是系统规划与管理师改版的消息,据说新版大纲和教材已经完成备案…

每日OJ_牛客_五子棋(判断是否有赢)

目录 牛客_五子棋(判断是否有赢) 解析代码 牛客_五子棋(判断是否有赢) 五子棋__牛客网 题目: 用例输入: .................... .................... .................... .................... ....…

Nginx: 模块化管理编译安装与配置结构

Nginx 模块化管理机制 Nginx 是一个高性能web和反向代理服务器,尤其是在激烈的Web服务器竞争领域中能够依然保持很好的这个发展势头,并且在现在的众多企业中得到一个广泛的应用,这一切其实跟Nginx架构设计是分不开的 另外高度模块化的设计也…

计算机毕业设计 二手闲置交易系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

影石相机tf内存卡数据格式化后恢复方法

在数字化时代,‌相机成为了我们记录生活、‌捕捉瞬间的重要设备。‌影石相机,‌以其出色的性能和便捷的操作,‌赢得了众多摄影爱好者的青睐。‌然而,‌在使用过程中,‌我们可能会遇到一些意外情况,‌如不小…

PTA L1-041 寻找250

L1-041 寻找250(10分) 对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。 输入格式: 输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“2…

828华为云征文:华为云 Flexus X 实例性能测评——SuperBench 一键窥见性能

今天我拿到了华为云 Flexus X 实例,这款云服务是华为云推出的有一款明星产品,面向零售、金融、游戏等行业大多数通用工作负载场景。这次,我们就来测评一下它的性能到底怎么样! Flexus 云服务 X 实例 在测评之前,我们…

星河产业应用创新奖,AI产业实干者的闪耀时刻

华晨宝马汽车有限公司搭建企业级 Agent 服务平台,推理成本降低50%(获2023年星河产业应用创新奖) 泰康保险集团股份有限公司实现保险理赔场景数字化升级,理赔作业效率提升27%(获2022年飞桨产业应用创新奖) …

【重学 MySQL】七、MySQL的登录

【重学 MySQL】七、MySQL的登录 MySQL 服务的启动与停止启动MySQL服务停止MySQL服务 MySQL 自带客户端的登录与退出登录登录步骤 退出注意事项 MySQL 服务的启动与停止 MySQL服务的启动与停止是数据库管理中的基本操作。 启动MySQL服务 通过“服务”窗口启动: 点击…

工作加速器:五种思维导图策略优化你的日常

思维导图是一种非常有效的图形工具,它能够清晰地展示发散性思维,并帮助我们将大量信息有序地组织起来。这种工具在日常生活和工作中都非常实用,因其简洁高效的特点,受到了广泛的欢迎。无论是在头脑风暴、项目规划,还是…

【AI-本地部署大模型】Centos虚拟机部署MaxKB、Ollama【基于大语言模型的知识库问答系统】

Ollama特点Centos部署docker部署脚本安装 通义千问包下载 MaxKB部署docker部署控制台 配置模型设置 Ollama Ollama 是一个开源项目,旨在让用户能够在本地计算机上轻松运行大型语言模型(LLM)。通过 Ollama,用户可以部署和运行多种…

显微镜基础知识--脑机起步

一、显微镜类别 学生级、实验级、研究级生物显微镜单目型、双目型、三目型生物显微镜 二、显微镜基础原理 (1)光学显微镜 光学显微镜主要由目镜、物镜、载物台和反光镜(集光镜)组成。目镜和物镜都是凸透镜,焦距不同。物镜的凸透镜焦距小于…