《中文Python穿云箭量化平台二次开发技术03》利用Tkinter高级模块设计自己策略代码编辑器及策略运行窗口

news2024/9/19 9:24:41

《中文Python穿云箭量化平台》是纯Python开发的量化平台,因此其中很多Python模块,我们可以自己设计新的量化工具,例如自己新的行情软件、新的量化平台、以及各种量化研究工具。
穿云箭自带指标公式源码运行模块,可以为其他量化平台提供量化功能扩展或量化功能增强效果。
《中文Python穿云箭量化平台》本身是中文Python关键字的Python集成开发工具,支持纯英文Python,同时支持中文Python。
《中文Python穿云箭量化平台》是自带Tkinter模块设计的,因此可以很方便建立新的应用工具窗口。
Tkinter图形设计过程。
1、建立主窗口,root = tk.Tk()。
2、在主窗口中放置各种 tk.Frame,tk.PanedWindow等容器,这些容器可以嵌套。
3、在这些容器中可以放置其他小部件,例如Text,Button,Label等部件。
4、根据需要可以放置窗口菜单,工具栏,弹出菜单,状态栏等等。
《中文Python穿云箭量化平台》针对Tkinter模块做了二次开发,增加了很多新工具,例如工具栏,皮肤,状态栏,可调部件,以及网页浏览,表格浏览,行情K线等模块工具。我们后面将逐步介绍,利用这些工具可以建立自己的量化平台软件和行情软件。
假定想定做一个自己的量化工具,这个工具可以实现Python代码编辑和运行,不需要利用其他的Python代码编辑器。
只需要下面几行,就能实现自己的Python代码编辑及运行调试等功能。

import os,sys
import tkinter  as tk
import HP_tka as htk
import HP_ide as ide
global mroot

mroot=root = tk.Tk()
root.title('我的量化平台')
root.geometry('1200x800+200+100')
def closewindow():
    root.destroy()

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

#在左右可调区域中创建,可上下调整区域paned2
paned2 = tk.PanedWindow(root,orient=tk.VERTICAL, showhandle=True, sashrelief=tk.SUNKEN,sashwidth=1,bg='#2a2a2a')
paned2.pack(expand=1,fill=tk.BOTH)
paned2.config(sashwidth=3, sashrelief=tk.RAISED)
ucode=ide.Codeedit(paned2,mroot=mroot,fontsize=14,ispop=False)   #代码编辑框
paned2.add(ucode)

paned3 = tk.PanedWindow(paned2,orient=tk.VERTICAL, showhandle=True, sashrelief=tk.SUNKEN,bg='#2a2a2a',sashwidth=1)
paned2.add(paned3)

umess=ide.PythonCMD(paned3,ipy="ipython",py="ipython ",runx=True,fontsize=12,bg='#5a5a5a',heigh=100)
umess.pack(expand=1,fill=tk.BOTH)

htk.ttmsg=umess.text  #绑定信息输出变量,
ucode.outmess=htk.ttmsg   #设置代码输出信息框

status=htk.StatusBar(root,bg='#8a8a8a')    #建立状态栏
status.pack(side=tk.BOTTOM, fill=tk.X) #把状态栏放到窗口底部
status.clear()
status.text(2,'超越!是我们的每一步!')
status.text(3,'版权所有')
status.text(4,'侵权必究')
status.text(5,'设计:小白')
status.config(0,color='#ffffff') 
status.config(1,color='#ffffff') #改变状态栏2信息颜色
status.config(2,color='#ffffff') 
status.config(3,color='#ffffff') #改变状态栏4信息颜色
status.config(4,color='#ffa500') #改变状态栏5信息颜色
status.config(5,color='#ffa500') 
status.Sizegrip.configure(style="xb.TSizegrip")
root.mainloop()

程序运行出现下面窗口。
在这里插入图片描述
如果想要美观,需要熟悉ttk.Style(),通过修改属性,来进一步美化。
我们在编辑其中运行一段Python代码测试一下。

# -*- coding: utf-8 -*-
# KDJ指标演示
import os,sys
sys.path.append(os.path.abspath('.'))
sys.path.append(os.path.abspath('..'))
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import HP_tdx as htdx
import HP_formula as gs
from HP_formula import *
#连接行情主站
htdx.TdxInit(ip='40.73.76.10',port=7709)
code='688212'
#获取日线数据,800条数据

df=htdx.get_bars(nCategory=4,nMarket = -1,code=code,start='2021-05-01',end='2022-09-29',\
               index=False,autype='qfq')

mydf=initmydf(df)  ##初始化mydf表

mydf['K'],mydf['D'],mydf['J']=KDJ(9,3,3)
mydf['S80']=80  #增加上轨80轨迹线
mydf['X20']=20  #增加下轨20轨迹线
mydf['buy']=CROSS(mydf['K'],mydf['D'])*10
mydf['sell']=IF(CROSS(mydf['D'],mydf['J'])>0,0,10)
mydf=mydf.tail(200)  #显示最后100条数据线 
##下面是绘线语句
mydf.S80.plot.line()
mydf.X20.plot.line()
mydf.K.plot.line(legend=True)
mydf.D.plot.line(legend=True)
mydf.J.plot.line(legend=True)
print(mydf)
plt.show()

程序运行结果如下:
在这里插入图片描述
这只是一个小功能,这个窗口中可以执行能在VScode和Pychram下运行的任何Python源代码程序。
我们后面设想实现一个股票行情软件。

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

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

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

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

相关文章

基于云原生的一体化监控系统Day1

7.1 监控体系部署管理 7.2k8s集群层面监控 准备:部署k8s集群 master:192.168.192.128 node01:192.168.192.129 node02:192.168.192.130 1.prometheus架构: prometheus工作原理: 1.数据采集&#xff…

AI视频平台精选:国内外对比与推荐

原文:AI视频平台精选:国内外对比与推荐 国内外有多个平台可以生成AI视频,这些平台各有其独特的优点和缺点。以下是对一些主要平台的详细介绍,包括它们的优缺点,以及针对个人和自媒体用户的推荐。 国内平台 1. 快手可…

为Windows Terminal 配置zsh + Oh-My-Zsh

参考: 为Windows Terminal 配置zsh Oh-My-Zsh 【核心】https://juejin.cn/post/7229507721795993661 https://blog.cloudorz.com/post/configure-zsh-for-windows-terminal/ https://zhuanlan.zhihu.com/p/455925403 本文以 Git Bash 终端为基础,来…

android openGL ES详解——剔除

一、正面剔除 在绘制3D场景的时候,我们需要决定哪些部分是对观察者 可见的,或者哪些部分是对观察者不可⻅的.对于不可见的部分,应该及早丢弃.例如在⼀个不透明的墙壁后,就不应该渲染.这种情况叫做”隐藏⾯消除”(Hidden surface elimination). 立方体中的正背面 任何物体都有…

Vue 项目中使用路由鉴权实现网页进度条

概述 在 Web 开发中,用户界面的流畅性和交互性对用户体验至关重要。为了在页面跳转时给用户提供反馈,我们可以利用 NProgress 这样的第三方库来实现一个进度条。本文档将指导您如何在 Vue 项目中结合路由鉴权来实现这一功能。 准备工作 确保您已经安装…

YOLO后处理trick - 减少nms的计算次数、比较次数和空间消耗

目录 前言 1.问题分析 问题1:排序问题 问题2:极大值抑制问题 2.优化比较和计算次数 优化1:跳过reshape直接置信度筛选 优化2:减少用于nms的bbox数 3.举个荔枝 总结 前言 减少YOLO后处理nms的计算和比较次数。 YOLO-det…

一 初识爬虫

一 爬虫和python 二 爬虫的合法性 三 爬虫的介绍 通过程序去访问网站,网站肯定希望用户来访问网站,而不是程序来访问,可以使用一些技术手段。设置障碍。 越过障碍。 四 爬虫示例 需求:用程序模拟浏览器。输入一个网址。从该网址中获取到资源或…

从短视频到AIGC,快手字节重开一局

作者 | 辰纹 来源 | 洞见新研社 从短视频到剪辑工具,从电商到外卖,再到如今的AIGC大模型,快手和字节的竞争从来就没有停止过。 通用大模型方面,快手有快意,字节有豆包;AI图片创作快手有可图,…

docker续3:

一、使用Dockerfile创建应用镜像 在Docker file中定义所需要执⾏的指令,使⽤ docker build创建镜像,过程中会按照dockerfile所定义的内容进⾏打开临时性容器,把docker file中命令全部执⾏完成,就得到了⼀个容器应⽤镜像&#xff…

星河社区升级命令行工具,一站式完成大模型实训

飞桨PFCC社区成员卢畅贡献。卢畅,飞桨 PFCC 成员,飞桨开源之星,飞桨开发者专家(PPDE),长期参加飞桨黑客松、护航计划等开源活动,参与过飞桨执行器预分析性能优化、静态图自动并行架构升级等任务…

SpringBoot项目整合智谱AI + SSE推送流式数据到前端展示 + RxJava得浅显理解

项目背景: 项目背景是一个这个AI答题应用平台,我引入AI得作用就是让AI根据我指定得这个题目的标题和描述来生成一些列的题目。(主要功能是这个,但是还用了AI给我评分,不过这个功能比较简单,在本文就简单介…

python可视化-条形图

1、加载数据 import pandas as pd import seaborn as sns import matplotlib.pyplot as plt# 导入数据 df pd.read_csv(E:/workspace/dataset/seaborn-data-master/tips.csv) df.head()2、基于seaborn的条形图 # 利用barplot函数快速绘制 sns.barplot(x"total_bill&quo…

Python从0到100(五十三):机器学习-决策树及决策树分类器

前言: 零基础学Python:Python从0到100最新最全教程。 想做这件事情很久了,这次我更新了自己所写过的所有博客,汇集成了Python从0到100,共一百节课,帮助大家一个月时间里从零基础到学习Python基础语法、Python爬虫、Web开发、 计算机视觉、机器学习、神经网络以及人工智能…

中微8S6990 EEPROM踩坑记录

中微8S6990 EEPROM内容丢失解决记录 问题描述: 问题程序如下: void temp_remember(uint16_t temperature,uint16_t address_H,uint16_t address_L) {uint8_t temp,temp1 0;temp temperature>>8;temp1 temperature;FLASH_UnLock();FLASH_Erase_DataArea(address_H);…

虹科方案 | 领航智能交通革新:虹科PEAK智行定位车控系统Demo版亮相

导读: 在智能汽车技术发展浪潮中,车辆控制系统的智能化、网络化已成为行业发展的必然趋势。虹科PEAK智行定位车控系统,集成了尖端科技,能够实现车辆全方位监控与控制的先进系统。从实时GPS定位到CAN/CANFD信号处理,虹科…

漏洞挖掘 | 记一次Spring横向渗透

0x1 前言 这篇文章给师傅们分享下,前段时间的一个渗透测试的一个项目,开始也是先通过各种的手段和手法利用一些工具啊包括空间引擎等站点对该目标公司进行一个渗透测试。前面找的突破口很少,不太好搞,但是后面找到了spring全家桶…

2024.8.27

130124202408271012 DATE #:20240827 ITEM #:DOC WEEK #:TUESDAY DAIL #:捌月廿肆 TAGS < BGM "Dragonflame--Kirara Magic" > < theme oi-contest > < theme oi-data structure Segment > < [空] > < [空] > 渊沉鳞潜&#xff0c…

搜维尔科技:Manus VR高精度手部动作捕捉数据手套为人形机器人、人工智能和人机交互赋能

Manus Quantum数据手套能够提供实时端到端的手部动作数据流与高精度数据集&#xff0c;助力人形机器人实现快速发展。 Quantum量子数据手套采用毫米级精度的磁性指尖跟踪传感器&#xff0c;融入尖端的EMF磁性定位追踪技术&#xff0c;无漂移&#xff0c;能提供高度准确且可靠的…

波导阵列天线学习笔记5 工作在K/Ka频带上的紧凑的共口径双频双圆极化波导天线阵列

摘要: 在本文中&#xff0c;一种紧凑的共口径双频双圆极化天线阵列被提出在K/Ka频段的全双工卫星通信中来实现高增益和宽带宽。所设计的天线阵列可以同时在20GHz频带实现右旋圆极化辐射同时在30GHz频带实现左旋圆极化辐射。此阵列包括圆极化波导天线单元和全公司馈网。脊频谱极…

CTFHub-SSRF过关攻略

第一题&#xff0c;内网访问 一&#xff0c;打开web/ssrf/内网访问 二&#xff0c;进入页面什么都没有查看一下上一步给的参数 三&#xff0c;输入http://127.0.0.1/flag.php回车显示flag 四&#xff0c;然后复制提交&#xff08;恭喜通关&#xff09; 第二题&#xff0c;伪协…