小白量化《穿云箭集群量化》(9)用指标公式实现miniQMT全自动交易
小白量化《穿云箭集群量化》(9)用指标公式实现miniQMT全自动交易
在穿云箭量化平台中,支持3中公式源码运行模式,还支持在Python策略中使用仿指标公式源码运行,编写策略。
我们先看如何使用指标公式源码。
#编程_直接使用通达信自编指标公式显示K线指标
import os,sys
sys.path.append(os.path.abspath('.'))
sys.path.append(os.path.abspath('..'))
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import HP_tdx as htdx#小白通达信行情库
from HP_formula import * #小白股票指标公式函数库
import HP_tdxgs as hgs #小白通达信公式库plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号tdxapi=htdx.TdxInit(ip='180.153.18.171')
code='600019'
df=hgs.get_security_bars(nCategory=4,nMarket = -1,code=code)
print(df)
#df.to_csv( "股票数据源.csv" , encoding= 'gbk')
#df2=pd.read_csv("股票数据源.csv" , encoding= 'gbk')
#KDJ指标
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;
'''#MACD指标
gs2='''
SHORT:=12;
LONG:=26;
MID:=9;
DIF:EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);
DEA:EMA(DIF,MID);
MACD2:(DIF-DEA)*2,COLORSTICK;
'''#LHXJ 猎狐先觉
gs3='''
VAR1=(CLOSE*2+HIGH+LOW)/4;
VAR2=EMA(VAR1,13)-EMA(VAR1,34);
VAR3=EMA(VAR2,5);
ZLQP:(-2)*(VAR2-VAR3)*3.8;
ZLKP:2*(VAR2-VAR3)*3.8;
'''#绘制图形
plt.figure(1,figsize=(10,6), dpi=100)
#绘制主图指标
ax1=plt.subplot(311)
#绘制副图指标
ax2=plt.subplot(312)
#绘制副图指标
ax3=plt.subplot(313)tgs1=hgs.Tdxgs()
tgs1.loaddf(df)
mydf=tgs1.rungs(gs)
print('KDJ指标:\n',gs)
print('公式变量:',tgs1.bl)
print('输出变量:',tgs1.bl2)
tgs1.brawline(ax1)
print(mydf)
#mydf.to_csv( "股票数据KDJ返回结果.csv" , encoding= 'gbk')
#mydf2=pd.read_csv("股票数据KDJ返回结果.csv" , encoding= 'gbk')#print(gs2)
tgs2=hgs.Tdxgs()
tgs2.loaddf(df)
mydf2=tgs2.rungs(gs2)
tgs2.brawline(ax2)#print(gs2)
tgs3=hgs.Tdxgs()
tgs3.loaddf(df)
mydf3=tgs3.rungs(gs3)
tgs3.brawline(ax3)
plt.show()

程序运行结果,
我们可以在穿云箭量化平台上使用指标公式源码一键生成easytrader策略和miniQMT自动交易策略。
我们可以直接使用有买卖信号的专家系统公式,也可以自定义BUY和SELL信号,也支持B和S交易信号。

上图是通达信KD专家系统公式,我们点按钮显示图形,能够正常显示买卖信号。
我们直接点【生成miniQMT交易】按钮,生成miniQMT全自动交易策略源代码,源代码如下,用户只要修改程序路径和用户,就可以直接在穿云箭量化软件高级版面中进行实盘。
也可以将策略中的自编指标,更换为其他自编公式源码。
策略名='高级_miniQMT公式策略'
import pandas as pd
import time,os
import HP_tdx as htdx #小白量化行情模块
import HP_global as hg #建立高级全局数据域hg
from HP_formula import * #小白量化公式模块
from HP_factor import * #小白量化因子公式及Alpha公式模块
import HP_factor as hf #小白量化因子公式及Alpha公式模块
import HP_formula as gs #小白量化公式模块
import HP_quant as hpq #穿云箭量化模块
from HP_quant import * #穿云箭量化模块
import HP_tdx as htdx #通达信行情模块
import HP_tdxgs as tgs #公式运行模块
import random, time, logging, datetime, json, akshare
from xtquant import xtdata, xttrader, xtconstant
from xtquant.xttrader import XtQuantTrader, XtQuantTraderCallback
from xtquant.xttype import StockAccount
import HP_xbdata as hpx
import HP_mqmt as hqmttrader = hqmt.Trader()##########修改帐户信息########################
qmt_path='D:\\华宝证券QMT实盘交易端'
account_id = ""
#############################################
session_id = random.randint(20000, 60000)
qmt_dir = qmt_path + '\\userdata_mini'
account_type = "STOCK" # 账号类型,可选STOCK、CREDIT
xtdata.data_dir = qmt_path + '\\datadir'
connect_result = trader.set_trader(qmt_dir, session_id)
trader.set_account(account_id, account_type=account_type)
print("交易连接成功!") if connect_result == 0 else print("交易连接失败!")mygs=tgs.Tdxgs()
def initialize(context):#context.istest=True context.zh='xiaoba' #账户context.zhlx='回测' #账户类型,2个汉字context.firstcash=1000000.00 #初始现金context.cash=context.firstcashcontext.portfolio.available_cash=context.firstcash# 设置我们要操作的股票池#g.stocks=hpq.get_universe()#g.stocks=['000001.SZ','000776.SZ','600030.SH']#codes=htdx.getzxgfile('G2022X500.blk')codes=hpq.get_universe()g.cwsj={} #财务数据 codes2=[]for m,c in codes:if m==0:cc=c+'.SZ'elif m==1:cc=c+'.SH'codes2.append(cc)cw=xtdata.get_instrument_detail(cc)g.cwsj[cc]=cw#print(m,cc,cw)g.stocks=codes2hpq.set_universe(g.stocks)hpq.log.info('----策略环境信息-----')print('量化模块版本: ',hpq.ver)print('量化模块最后修改日期: ',hpq.mdate)print('svrip: ',hpq.svrip)print('svrport: ',hpq.svrport)print('\n----开始运行策略-----\n')print('策略名:'+策略名)qhcsj2=time.strftime('%Y%m%d %H:%M:%S',time.localtime(time.time()))print('开始运行时间:'+qhcsj2)# 设定基准set_benchmark('000001.SH')# 开启动态复权模式(真实价格)set_option('use_real_price', True)set_times(6) #设置多少圈读一次持仓hg.hqsl=0 #行情数量hg.seemsg=Falseasset = trader.xt_trader.query_stock_asset(trader.account)context.portfolio.total_value=asset.total_asset #总资产context.portfolio.available_cash=asset.cash #'可用金额'context.portfolio.positions_value=asset.market_value #'股票市值'context.portfolio.locked_cash=asset.frozen_cash #冻结金额holding=hqmt.query_holding(trader)g.zstime=datetime.datetime.now()g.codezs=[]g.holds=[] #持仓证券代码print(asset.total_asset,asset.cash)for i in range(len(holding)):股票代码=holding[i][0]['股票代码']g.holds.append(股票代码)if 股票代码 not in context.portfolio.positions:context.portfolio.positions[股票代码]=hpq.Position(股票代码)context.portfolio.positions[股票代码].total_amount=holding[i][0]['持仓']context.portfolio.positions[股票代码].closeable_amount=holding[i][0]['可用持仓']context.portfolio.positions[股票代码].acc_avg_cost=holding[i][0]['成本']context.portfolio.positions[股票代码].value=holding[i][0]['持仓市值']context.ccs=g.holdshpq.context=contextg.MAX=50g.hd=0.003 #滑点g.zsfd=-0.03 #止损幅度g.amount=100 #买入数量g.xdzj=10000.00 #买入金额,下单资金g.cs=0 #策略运行次数#中文Python学习交流群 934165481g.gs='''{自编指标公式,最好用专家系统公式}N:=9;
M1:=3;
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M1,1);
D:=SMA(K,M1,1);
J:=3*K-2*D;
ENTERLONG:CROSS(J,D);
EXITLONG:CROSS(D,J);'''# 每个单位时间(如果按天回测,则每天调用一次,如果按分钟,则每分钟调用一次)调用一次
def market_open(context):starttime = datetime.datetime.now()g.cs=g.cs+1#开始撤单if g.cs%2==1:wtc=hqmt.query_order(trader,'') #获取委托池for i in range(len(wtc)):wt=wtc[i]if wt['委托状态']=='已报' or wt['委托状态']=='部分成交':订单编号=wt['订单编号']hqmt.trade_cancel_order(trader,订单编号)##获取账户资金asset = trader.xt_trader.query_stock_asset(trader.account)context.portfolio.total_value=asset.total_asset #总资产context.portfolio.available_cash=asset.cash #'可用金额'context.portfolio.positions_value=asset.market_value #'股票市值'context.portfolio.locked_cash=asset.frozen_cash #冻结金额##获取持仓holding=hqmt.query_holding(trader)print(len(holding))g.holds=[] #持仓证券代码for i in range(len(holding)):security=股票代码=holding[i][0]['股票代码']g.holds.append(股票代码)tick=hqmt.get_tick_data(股票代码)price=tick['lastPrice']if 股票代码 not in context.portfolio.positions:context.portfolio.positions[股票代码]=hpq.Position(股票代码)context.portfolio.positions[股票代码].total_amount=holding[i][0]['持仓']context.portfolio.positions[股票代码].closeable_amount=holding[i][0]['可用持仓']context.portfolio.positions[股票代码].acc_avg_cost=holding[i][0]['成本']context.portfolio.positions[股票代码].value=holding[i][0]['持仓市值']context.portfolio.positions[股票代码].price=pricecontext.portfolio.positions[股票代码].issell=Falsecontext.portfolio.positions[股票代码].isbuy=Falseelse:context.portfolio.positions[股票代码].total_amount=holding[i][0]['持仓']context.portfolio.positions[股票代码].closeable_amount=holding[i][0]['可用持仓']context.portfolio.positions[股票代码].acc_avg_cost=holding[i][0]['成本']context.portfolio.positions[股票代码].value=holding[i][0]['持仓市值'] context.portfolio.positions[股票代码].price=pricecontext.portfolio.positions[股票代码].issell=Falsecontext.portfolio.positions[股票代码].isbuy=Falseamos=holding[i][0]['可用持仓']acc_avg_cost=context.portfolio.positions[股票代码].acc_avg_cost#df=hqmt.get_day_line(security)df=hqmt.get_day_line(security)price = df.close.iloc[-1]if security not in g.cwsj: cw=xtdata.get_instrument_detail(security)g.cwsj[security]=cwif amos>0:##响尾蛇导弹,自动止损和回撤止盈sell=hf.autosell(security,price=price,cost=acc_avg_cost,withdraw=0.3,stoploss=g.zsfd,minp=0.02,t=99999)if sell==2: #止损p5=round(price*(1-g.hd),2)x=order_target(security,0,p=p5)hpq.log.info(context.current_dt+ " 止损卖出: %s ,数量:%d,卖出价格:%.2f,成交资金:%0.2f"%(security,amos,p5,amos*p5))print(security,p5,amos,price)time.sleep(0.1)order_id = trader.xt_trader.order_stock(trader.account,security, xtconstant.STOCK_SELL,amos, xtconstant.FIX_PRICE, p5, '策略TTMJ', '止损') context.portfolio.positions[security].sellprice=p5context.portfolio.positions[security].issellprice=Truecontext.portfolio.positions[security].total_amount=0context.portfolio.positions[security].closeable_amount=0elif sell==1: #止盈p5=round(price*(1-g.hd),2)x=order_target(security,0,p=p5)hpq.log.info(context.current_dt+ " 止盈卖出: %s ,数量:%d,卖出价格:%.2f,成交资金:%0.2f"%(security,amos,p5,amos*p5))print(security,p5,amos,price)time.sleep(0.1)order_id = trader.xt_trader.order_stock(trader.account,security, xtconstant.STOCK_SELL,amos, xtconstant.FIX_PRICE, p5, '策略TTMJ', '止盈') context.portfolio.positions[security].sellprice=p5context.portfolio.positions[security].issellprice=Truecontext.portfolio.positions[security].total_amount=0context.portfolio.positions[security].closeable_amount=0df=hqmt.get_day_line(security)if len(df)<1:continueprice = df.close.iloc[-1]close=pricehigh= df.high.iloc[-1]low= df.low.iloc[-1]#value = context.portfolio.positions[security].valueacc_avg_cost = context.portfolio.positions[security].acc_avg_cost #买入成本价 amos=context.portfolio.positions[security].closeable_amount #可卖数量amos2=context.portfolio.positions[security].total_amount #总数量CAPTIAL=df['capital']=g.cwsj[security]['FloatVolume'] mydf=gs.initmydf(df) ##初始化mydf表C=CLOSE=gs.CLOSEL=LOW=gs.LOWH=HIGH=gs.HIGHO=OPEN=gs.OPENV=VOL=mydf['volume']AMO=AMOUNT=mydf['amount']CAPTIAL=mydf['capital']=g.cwsj[security]['FloatVolume']HSL=V/CAPTIAL ##换手率pre_close=CLOSE.iloc[-1] #前收盘ZX=AMO/(V+0.00001)/100 BL=(C-ZX)/(ZX+0.00001)mydf=gs.initmydf(df) ##初始化mydf表mygs.loaddf(mydf) #加载行情数据mydf=mygs.execgs(g.gs) #运行指标公式if 'ENTERLONG' in mydf.columns:BUY=mydf['ENTERLONG'] #买点elif 'BUY' in mydf.columns:BUY=mydf['BUY'] #买点elif 'B' in mydf.columns:BUY=mydf['B'] #买点if 'EXITLONG' in mydf.columns:SELL=mydf['EXITLONG'] #卖点elif 'SELL' in mydf.columns:SELL=mydf['SELL'] #卖点elif 'S' in mydf.columns:SELL=mydf['S'] #卖点 cash=context.portfolio.available_cash #资金余额if BUY>0 and amos2==0 and context.portfolio.positions[security].isbuy==False and context.onlysell==False : #保留资金price2=round(price*(1+g.hd),2)amount=g.xdzj/price2 g.amount=int(amount/100)*100x=order_target(security,g.amount,p=price2)context.portfolio.positions[security].isbuy=Trueorder_id = trader.xt_trader.order_stock(trader.account,security, xtconstant.STOCK_BUY, g.amount, xtconstant.FIX_PRICE, price2, 'strategy_name', 'remark') context.portfolio.positions[security].total_amount=g.amountif x !=None:hpq.log.info(context.current_dt+" 买入: %s ,数量:%d,买入价格:%.2f,成交资金:%0.2f"%(security,x.amount,price,x.amount*price))amos=context.portfolio.positions[security].closeable_amount #可卖数量if SELL>0 and amos>0 and context.onlybuy==False:price2=round(price*(1-g.hd),2)x=order_target(security,0,p=price2)context.portfolio.positions[security].issell=Trueorder_id = trader.xt_trader.order_stock(trader.account,security, xtconstant.STOCK_SELL, amos, xtconstant.FIX_PRICE, price2, 'strategy_name', 'remark') hpq.log.info(context.current_dt+ " 卖出: %s ,数量:%d,卖出价格:%.2f,成交资金:%0.2f"%(security,amos,price2,amos*price2))context.portfolio.positions[security].total_amount=0endtime = datetime.datetime.now()costtime=(endtime - starttime).secondst1=costtime-int(costtime/60)*60t2=int(costtime/60)-int(int(costtime/60)/60)*60t3=int(int(costtime/60)/60)print('花费时间:%d:%d:%d'%(t3,t2,t1))

上面给了出了使用指标公式实现miniQMT全自动交易,如果没有miniQMT,也可以生成easytrader自动交易策略。
后面我们将介绍更多的量化交易技术。
超越自己是我的每一步!我的进步就是你的进步!
相关文章:
小白量化《穿云箭集群量化》(9)用指标公式实现miniQMT全自动交易
小白量化《穿云箭集群量化》(9)用指标公式实现miniQMT全自动交易 在穿云箭量化平台中,支持3中公式源码运行模式,还支持在Python策略中使用仿指标公式源码运行,编写策略。 我们先看如何使用指标公式源码。 #编程_直接使…...
java Class类详解
Class类简介 在 java 世界里,一切皆对象。从某种意义上来说,java 有两种对象:实例对象和 Class 对象。每个类的运行时的类型信息就是用 Class 对象表示的,它包含了与类有关的信息,实例对象就是通过 Class 对象来创建的…...
DMGI:Unsupervised Attributed Multiplex Network Embedding
[1911.06750] Unsupervised Attributed Multiplex Network Embedding (arxiv.org) 目录 Abstract 1 Introduction 2 DGI 3 Deep Multiplex Graph Infomax: DMGI 特定关系类型的节点嵌入 Joint Modeling and Consensus Regularization Extension to Semi-Supervised Lea…...
C++基本介绍
文章目录 🥭1.C基本介绍🧂1.1 C是什么🧂1.2 C发展史 🍒2. C的优势🥔2.1 语言的使用广泛度🥔2.2 C的应用领域 🫒3. C学习计划 🥭1.C基本介绍 🧂1.1 C是什么 C是一种通用…...
如何理解工业互联网与智能制造,怎么共建智慧工厂?
第六届数字中国建设峰会26日在福州开幕,在这个数字化新技术的变革风口,企业如何把握机遇,借工业互联网和智能制造实现智慧工厂建设? 探讨三个问题: 什么是工业互联网、智能制造、智慧工厂;它们三者之间的…...
主机访问不到虚拟机(centos7)web服务的解决办法
目录 一、背景 二、解决办法 2.1、配置虚拟机防火墙 2.2、修改虚拟机网络编辑器 一、背景 主机可以访问外网,虚拟机使用命令:curl http://网址,可以访问到web服务 ,主机使用http://网址,访问不到虚拟机(…...
第四章 ActiveMQ与SpringBoot集成——ActiveMQ笔记(动力节点)
第四章 ActiveMQ 与 SpringBoot 集成 4-1 ActiveMQ 与 SpringBoot 集成集成配置 1、加载 spring boot 的 activeMQ 的依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </de…...
Halcon 算子 select_shape_std 和 select_shape_xld区别
文章目录 1 select_shape_std 算子介绍2 select_shape_xld算子介绍3 select_shape_std 和 select_shape_xld区别4 Halcon 算子的特征 Features 列表介绍1 select_shape_std 算子介绍 select_shape_std (Operator) Name select_shape_std — Select regions of a given shape.Si…...
【Java基础】匿名内部类
🎊专栏【Java基础】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【The truth that you leave】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰 目录 🎁什么是匿名内部类 &#x…...
基于Freertos的ESP-IDF开发——6.使用DHT1温湿度传感器
基于Freertos的ESP-IDF开发——6.使用DHT1温湿度传感器 0. 前言1. DHT11驱动原理2. 完整代码3. 演示效果4. 其他FreeRtos文章 0. 前言 开发环境:ESP-IDF 4.3 操作系统:Windows10 专业版 开发板:自制的ESP32-WROOM-32E 准备一个DHT11温湿度传…...
C++——模板初阶
文章目录 一.泛型编程二.函数模板1.函数模板的概念2.函数模板的格式3.函数模板的原理4.函数模板的实例化(1)隐式实例化(2)显式实例化 5.模板参数的匹配原 三.类模板1.类模板的定义格式2.类模板的实例化 前言: 本章我们…...
【TOOLS: Linux与windows及linux与linux之间文件传输常用方法及命令】
文章目录 1.1.1 Windows和VirtualBox(Ubuntu)之间文件穿传输方法1.1.2 SCP 文件传输方法1.1.3 FTP 文件传输方法 1.1.1 Windows和VirtualBox(Ubuntu)之间文件穿传输方法 1)设置 virtualbox 中的共享文件夹,用户可以在windows某个盘下创建自己的共享文件…...
【博览群书】《实战大数据》——属于我的第一本大数据图书
文章目录 前言简介目录其他 前言 Hello家人们,博主前不久参加了CSDN图书馆和机械工业出版社联合举办的图书类活动,很荣幸在活动中获得了属于自己的第一本大数据图书,《实战大数据—— 分布式大数据分析处理系统开发与应用》。作为大数据专业…...
【计算机组成原理】实验二
文章目录 实验二 运算器实验一、实验目的二、实验原理三、运算器功能编码四、实验内容任务一 算术运算任务二 逻辑运算任务三 移位运算 实验二 运算器实验 一、实验目的 完成算术、逻辑、移位运算实验,熟悉ALU运算类型的控制位运用。实验仪器:JTHS-A …...
hive数据库hql基础操作02
1.内部表和外部表 默认情况下创建的表就是内部表,Hive拥有该表的结构和文件。换句话说,Hive完全管理表(元数据和数据)的生命周期,类似于RDBMS中的表。当你删除内部表时,它会删除数据以及表的元数据。可以使…...
门电路OD门
漏极开路输出的门电路(OD门) 为了满足输出电平的变换,输出大负载电流,以及实现“线与”功能,将CMOS门电路的输出级做成漏极开路的形式,称为漏极开路输出的门电路,简称OD(Open&#x…...
没有域名,一个服务器Nginx怎么部署多个前端项目
因为没有域名,所以用路径来作区分, 主项目:直接根路由访问该项目,与正常配置无任何差别从项目:此处设置/new路径,为从项目,所有从项目访问路径均要加上/new ①修改Nginx配置文件 Nginx 配置文…...
城市内涝的原因和解决措施,内涝监测预警助力城市防涝度汛
城市内涝是城市化进程中最遇到的自然灾害,城市内涝不仅会对市民生活造成困扰,也会对城市基础设施和经济发展产生不利影响。因此,及时监测城市内涝现象,对于城市管理和城市安全具有重要意义。本文将深入探讨城市内涝的原因以及针对…...
8年测试总结,性能测试问题大全,这些问题你应该认清的...
目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 响应时间VS吞吐量…...
RabbitMQ集群安装
RabbitMQ集群安装 1.前言 OS: CentOS Linux release 7.9.2009 (Core) 机器: IPnodecpu内存存储10.106.1.241max-rabbitmg-018 核16 G100 G10.106.1.242max-rabbitmg-028 核16 G100 G10.106.1.243max-rabbitmg-038 核16 G100 G 因为操作系统版本是 centos7,所以…...
K8S认证|CKS题库+答案| 11. AppArmor
目录 11. AppArmor 免费获取并激活 CKA_v1.31_模拟系统 题目 开始操作: 1)、切换集群 2)、切换节点 3)、切换到 apparmor 的目录 4)、执行 apparmor 策略模块 5)、修改 pod 文件 6)、…...
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
智能仓储的未来:自动化、AI与数据分析如何重塑物流中心
当仓库学会“思考”,物流的终极形态正在诞生 想象这样的场景: 凌晨3点,某物流中心灯火通明却空无一人。AGV机器人集群根据实时订单动态规划路径;AI视觉系统在0.1秒内扫描包裹信息;数字孪生平台正模拟次日峰值流量压力…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
听写流程自动化实践,轻量级教育辅助
随着智能教育工具的发展,越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式,也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建,…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
C#中的CLR属性、依赖属性与附加属性
CLR属性的主要特征 封装性: 隐藏字段的实现细节 提供对字段的受控访问 访问控制: 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性: 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑: 可以…...
Python+ZeroMQ实战:智能车辆状态监控与模拟模式自动切换
目录 关键点 技术实现1 技术实现2 摘要: 本文将介绍如何利用Python和ZeroMQ消息队列构建一个智能车辆状态监控系统。系统能够根据时间策略自动切换驾驶模式(自动驾驶、人工驾驶、远程驾驶、主动安全),并通过实时消息推送更新车…...
