小白公式量化--用Python指标公式模块做量化策略研究

news2024/11/15 11:00:15

《小白公式量化系统》是纯Python开发的,因此我们可以借用《小白公式量化系统》的金融模块,来实现自己的Python量化框架,以及用Python实现量化研究、选股、人工智能机器学习,以及打造自己的行情软件和量化平台。我们后面文章讲介绍这些知识,并提供可操作的代码给大家。
首先要登陆《小白公式量化系统》软件,在登陆时需要记住密码,这样《小白公式量化系统》的Python模块讲全部激活。否则这些模块无法正常执行。
《小白公式量化系统》包含有股票实时行情模块,公式语法解析模块,高级tkinter模块。利用这些模块可以实现新的行情软件或量化平台。《小白公式量化系统》本身也是利用这些模块设计了。
写Python代码时,需要先导入下面模块。

import HP_tdx as htdx  #小白量化行情模块
from HP_formula import *  #小白量化公式函数模块
import HP_tdxgs as hgs  #小白通达信公式库
import HP_plt as hplt  #绘制K线图模块

我们利用HP_tdxgs小白通达信公式库进行公式源码解析,并进行指标公式运算。
通达信指标公式源码。

N:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1), CIRCLEDOT,COLORFF0000,LINETHICK2;
D:SMA(K,M2,1), LINETHICK3 , COLOR00FF00 ;
J:3*K-2*D, LINETHICK2, COLOR0000FF;

把这个指标公式源码保存的Python的多行文本变量中,例如gs变量。

gs='''
N:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1), CIRCLEDOT,COLORFF0000,LINETHICK2;
D:SMA(K,M2,1), LINETHICK3 , COLOR00FF00 ;
J:3*K-2*D, LINETHICK2, COLOR0000FF;
'''

创建Python的通达信指标公式源码解析器,并加载运行公式。

df3=hgs.initmydf(df3)   #小白量化行情数据规格化
tgs1=hgs.Tdxgs()     #创建公式解析器
tgs1.loaddf(df3)     #加载小白量化格式的行情数据表
mydf=tgs1.rungs(gs)  #运行指标公式源码,并返回新的行情表。返回表中包含指标公式的输出数据,

我们可以根据这些数据,利用小白量化公式函数模块,进行仿指标公式语法计算。
例如我们想根据指标交叉信息生成买卖信号,并根据信号进行买卖交易。

BUY=CROSS(mydf.J,mydf.K)
SELL=CROSS(mydf.K,mydf.J)

if BUY.iloc[-1]>0:  #买入操作
         pass

if SELL.iloc[-1]>0:  #卖出操作
         pass

下面给一个自编通达信公式执行的Python完整代码,这个代码放到《小白公式量化系统》文件目录中,就能正常执行。

import time
import matplotlib.pyplot as plt
import HP_global as g
import HP_tdx as htdx  #小白量化行情模块
from HP_formula import *  #小白量化公式函数模块
import HP_tdxgs as hgs  #小白通达信公式库
import HP_plt as hplt  #绘制K线图模块
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号

#白底色
g.ubg='w'
g.ufg='b'
g.utg='b'
g.uvg='#1E90FF'

##黑底色
g.ubg='#07000d'
g.ufg='w'
g.utg='w'
g.uvg='#FFD700'

global CLOSE,LOW,HIGH,OPEN,VOL
global C,L,H,O,V

gs='''
N:=9;
M1:=3;
M2:=3;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:SMA(RSV,M1,1), CIRCLEDOT,COLORFF0000,LINETHICK2;
D:SMA(K,M2,1), LINETHICK3 , COLOR00FF00 ;
J:3*K-2*D, LINETHICK2, COLOR0000FF;
'''


m=1
cd='600030'
hq=htdx.TdxInit(ip='183.60.224.178',port=7709)  ##初始化通达信
df3=htdx.get_security_bars(nCategory=4,nMarket = m,code=cd,\
                nStart=0, nCount=500) #获取指定范围的证券K线

df3=hgs.initmydf(df3)   #小白量化行情数据规格化
tgs1=hgs.Tdxgs()     #创建公式解析器
tgs1.loaddf(df3)     #加载小白量化格式的行情数据表
mydf=tgs1.rungs(gs)  #运行指标公式源码,并返回新的行情表。返回表中包含指标公式的输出数据,
BUY=CROSS(mydf.J,mydf.K)
SELL=CROSS(mydf.K,mydf.J)


'''
#独狼荷蒲 qq:2775205
#中文 Python 学习群:811379766
#电话微信:18578755056
'''
if BUY.iloc[-1]>0:  #买入操作
         pass

if SELL.iloc[-1]>0:  #卖出操作
         pass

#绘制图形
plt.figure(1,figsize=(10,6), dpi=100)
#绘制主图指标
ax1=plt.subplot(211)
plt.title(cd+"K线图")
hplt.ax_K(ax1,mydf,cd,n=0)
#绘制副图指标
ax2=plt.subplot(212)
#MTM.plot.line(legend=True)
tgs1.brawline(ax2)
plt.show()

程序运行结果如下。

在这里插入图片描述

好了,欢迎继续关注我的博客。

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

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

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

相关文章

【大模型从入门到精通27】开源库框架LangChain 语义搜索:高级检索策略1

这里写目录标题 语义搜索:高级检索策略简介最大边际相关性 (MMR)自我查询检索上下文压缩增强语义搜索的高级文档检索技术引言设置环境导入必要的库初始化向量数据库以进行相似性搜索导入 Chroma 向量存储库和 OpenAI 嵌入 填充向量数据库定义文本列表以填充数据库创…

基于YOLOv8-pose的手部关键点检测(3)- 实现实时手部关键点检测

目录 前言 1.扩大检测框区域 2.先检测手部,后检测手部关键点 3.正面视角检测 4.侧面视角检测 5.摄像头视角检测 6.遮挡视角检测 7.结论 前言 使用YOLOv8-m对图像进行手部检测,然后扩大检测框区域,并对该区域使用YOLOv8-s-pose使用关键…

达梦数据库版本介绍

达梦数据库根据不同用户的不同需求,提供了三种版本的数据库:DM Standard Edition 标准版、DM Enterprise Edition 企业版、DM Security Edition 安全版。那么这三种版本有什么区别,我们该如何选择合适的版本?下面先介绍三种版本各…

【笔记】泰山派环境配置遇到E: Unable to locate package repo

答案来自通义千问,解决了我的问题,做一些记录 你尝试在Ubuntu或Debian系统上使用apt命令安装repo工具,但是遇到了问题,因为repo不是直接在软件源中作为一个独立的包提供的。repo是Google的一个Git仓库管理工具,通常用…

【系统架构设计】系统性能评价(二)

【系统架构设计】系统性能评价(二) 性能指标性能计算性能设计阿姆达尔解决方案负载均衡 性能评估基准测试程序Web 服务器的性能评估 性能指标 性能计算 性能设计 阿姆达尔解决方案 阿姆达尔定律: 系统中对某部件采用某种更快的执行方式&a…

Centos8和stream 9防火墙基本使用

查发行版: [rootlocalhost nps-0.26.10]# cat /etc/redhat-releaseCentOS Stream release 9查看防火墙状态 systemctl status firewalld firewall-cmd --state开启/关闭/重启防火墙 systemctl start firewalld[rootlocalhost conf]# systemctl start firewalld …

Eureka原理与实践:深入探索微服务架构的核心组件

在微服务架构日益盛行的今天,服务之间的注册与发现成为了保证系统高可用性和灵活性的关键。Eureka,作为Netflix开源的服务注册与发现框架,凭借其简单、健壮的特性,在微服务领域占据了举足轻重的地位。本文将深入剖析Eureka的原理&…

ubuntu 24.04 安装 Nvidia 显卡驱动 + CUDA + cuDNN,配置 AI 深度学习训练环境,简单易懂,一看就会!

ubuntu 24.04 安装 Nvidia 显卡驱动 CUDA cuDNN,配置 AI 深度学习训练环境,简单易懂,一看就会! 1.查看本机显卡型号 lspci | grep -i nvidia输出如下: 01:00.0 3D controller: NVIDIA Corporation GM108M [GeForc…

焦虑迷雾中的幻觉挑战?专家教你如何拨云见日!

在这个快节奏、高压力的时代,焦虑症已成为许多人难以言说的秘密。它不仅让人心情沉重,更有可能在极端情况下引发幻觉,仿佛置身于一个光怪陆离、难以分辨真假的世界。面对这样的困境,我们该如何自救,如何找到那束穿透焦…

ansible【自动化配置】(thirty day)

回顾 1、mysql和python (1)不需要执行mysql_ssl_rsa_setup (2)Change_master_to.不需要get public key 2、可以使用pymysql非交互的管理mysql (1)connpymysql.connect(host,user,password,database,prot) …

OpenCV图像处理——积分图像计算(C++/Python)

概述 积分图像是一种高效的图像处理技术,最初由Crow在1984年提出,目的是为了提高多尺度透视投影的渲染速度。它通过构建一个积分图,使得图像中任意矩形区域的像素和能够在常数时间内快速计算出来,极大地减少了在图像模糊、边缘提…

WARNING: There was an error checking the latest version of pip. 解决方案

WARNING: There was an error checking the latest version of pip. 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰,211科班出身,就职于医疗科技公司,热衷分享知识,武汉城市开…

【单片机】51单片机入门教程(二):定时器的模式详解与中断应用实例

文章目录 51单片机定时器教程:模式详解与中断应用实例1. 介绍2. 51单片机定时器/计数器概述3. 定时器控制寄存器与中断入口4. 模式0:13位定时器/计数器5. 模式1:16位定时器/计数器6. 模式2:8位自动重装载定时器/计数器7. 模式3:分割两个独立的8位定时器/计数器8. 总结51单…

Vue.js入门系列(十):深入理解Vue指令及自定义指令的使用

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

【技术前沿】MetaGPT入门安装部署——用多个大语言模型解决任务!一键安装,只需填写OpenAI API

项目简介 MetaGPT 是一个多智能体框架,旨在构建全球首家 “AI 软件公司”。该项目通过为 GPT 分配不同的角色,模拟产品经理、架构师、工程师等职业,协同完成复杂的软件开发任务。MetaGPT 将一个简单的需求转化为完整的软件开发流程&#xff…

点接触导致Fluent Meshing网格划分出错的处理

问题概述 在CFD建模中,几何处理有时会出现两个面是单点接触的情形。 举例如下图所示,在球形计算域内部,存在分别用黄色和粉红色标记的内部悬浮面,两者接触区域为一个点,而非一条曲线。 上述几何模型可正确的导入Flue…

从零搭建xxl-job(四):xxljob进行一些性能优化

之前的代码这部分并没有补充完毕,假如调度中心如果判断有定时任务要执行了,该怎么远程通知给执行定时任务的程序呢?当定时任务要把自己的信息发送给调度中心时,是通过一个RegistryParam对象发送的。该对象内部封装了定时任务相关的…

鸿蒙自定义Tab,可居左显示

最近写鸿蒙项目时,需要用到类似Android的TabLayout控件,鸿蒙官方也有提供类似实现的组件Tabs。但是官方Tabs组件,实在有点鸡肋,首先 TabContent和 TabBar是绑定在一起的放在Tabs里面的,如果UI是TabBar的背景是一个整体…

可视化大屏入口界面,炫酷科技又不失简洁时尚。

可视化大屏界面,大家见到很多了,当可视化大屏是多个系统的融合,而且彼此又相互独立,就需要设计一个入口页面,便于分流客户,这次我给大家分享一批。 设计可视化大屏入口界面时,可以结合炫酷科技…

#laravel部署安装报错loadFactoriesFrom是undefined method #

场景: 在git上clone一个项目代码吗laravel版本是5.6 php的版本是7.1 但是运行的时候一直提示错误 Call to undefined method Eachdemo\Rbac\RbacServiceProvider::loadFactoriesFrom() 解决办法: 给RbacServiceProvider,手动添加方…