CTP-API开发系列之各版本更新说明(持续更新)(值得收藏)

CTP-API开发系列之各版本更新说明(持续更新)(值得收藏)

  • CTP-API开发系列之各版本更新说明(持续更新)(值得收藏)
    • v6.7.2
    • v6.7.1
    • v6.7.0(推荐,主用)
    • v6.6.9
    • v6.6.8
    • v6.6.7
    • v6.6.5

CTP-API开发系列之各版本更新说明(持续更新)(值得收藏)

从事CTP-API开发多年,自CTP穿透式监管报送信息版本(v6.3.19)之后,近两年能够明显感觉到,CTP-API升级的频率提高了不少,对于我们这些使用API进行程序化交易的下游来说,也需要时刻关注API的变动。

比如v6.7.0版本,也是目前我们生产环境使用的版本,支持查询流量压缩lz4算法,升级之后网络带宽降低了不少,我也通过tcpdump抓包,与6.6.8版本进行对比分析(详细内容见v6.7.0),对于高频程序化交易者,该版本是有必要升的(前提是对应的期货公司柜台程序也进行了更新,需要咨询自己开户的期货公司)。

后面会持续关注CTP-API新版本的更新内容,并及时更新该文章,欢迎大家关注。

v6.7.2

此版本为支持郑商所附加保证金算法调整、中金所新组保RCAMS大商所新组保Rule业务而变更,新增12个交易查询接口

1、新增接口:SPBM附加跨品种抵扣参数查询。(1)查询请求///SPBM附加跨品种抵扣参数查询virtual int ReqQrySPBMAddOnInterParameter(CThostFtdcQrySPBMAddOnInterParameterField *pQrySPBMAddOnInterParameter, int nRequestID) = 0;2)查询响应///SPBM附加跨品种抵扣参数查询响应virtual void OnRspQrySPBMAddOnInterParameter(CThostFtdcSPBMAddOnInterParameterField *pSPBMAddOnInterParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};   2、新增接口:RCAMS产品组合信息查询。(1)查询请求///RCAMS产品组合信息查询virtual int ReqQryRCAMSCombProductInfo(CThostFtdcQryRCAMSCombProductInfoField *pQryRCAMSCombProductInfo, int nRequestID) = 0;2)查询响应///RCAMS产品组合信息查询响应virtual void OnRspQryRCAMSCombProductInfo(CThostFtdcRCAMSCombProductInfoField *pRCAMSCombProductInfo, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};3、新增接口:RCAMS同合约风险对冲参数查询。(1)查询请求///RCAMS同合约风险对冲参数查询virtual int ReqQryRCAMSInstrParameter(CThostFtdcQryRCAMSInstrParameterField *pQryRCAMSInstrParameter, int nRequestID) = 0;2)查询响应///RCAMS同合约风险对冲参数查询响应virtual void OnRspQryRCAMSInstrParameter(CThostFtdcRCAMSInstrParameterField *pRCAMSInstrParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};	4、新增接口:RCAMS品种内风险对冲参数查询。(1)查询请求///RCAMS品种内风险对冲参数查询virtual int ReqQryRCAMSIntraParameter(CThostFtdcQryRCAMSIntraParameterField *pQryRCAMSIntraParameter, int nRequestID) = 0;2)查询响应///RCAMS品种内风险对冲参数查询响应virtual void OnRspQryRCAMSIntraParameter(CThostFtdcRCAMSIntraParameterField *pRCAMSIntraParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};5、新增接口:RCAMS跨品种风险折抵参数查询。(1)查询请求///RCAMS跨品种风险折抵参数查询virtual int ReqQryRCAMSInterParameter(CThostFtdcQryRCAMSInterParameterField *pQryRCAMSInterParameter, int nRequestID) = 0;2)查询响应///RCAMS跨品种风险折抵参数查询响应virtual void OnRspQryRCAMSInterParameter(CThostFtdcRCAMSInterParameterField *pRCAMSInterParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};6、新增接口:RCAMS空头期权风险调整参数查询。(1)查询请求///RCAMS空头期权风险调整参数查询virtual int ReqQryRCAMSShortOptAdjustParam(CThostFtdcQryRCAMSShortOptAdjustParamField *pQryRCAMSShortOptAdjustParam, int nRequestID) = 0;2)查询响应///RCAMS空头期权风险调整参数查询响应virtual void OnRspQryRCAMSShortOptAdjustParam(CThostFtdcRCAMSShortOptAdjustParamField *pRCAMSShortOptAdjustParam, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};7、新增接口:RCAMS策略组合持仓查询。(1)查询请求///RCAMS策略组合持仓查询virtual int ReqQryRCAMSInvestorCombPosition(CThostFtdcQryRCAMSInvestorCombPositionField *pQryRCAMSInvestorCombPosition, int nRequestID) = 0;2)查询响应///RCAMS策略组合持仓查询响应virtual void OnRspQryRCAMSInvestorCombPosition(CThostFtdcRCAMSInvestorCombPositionField *pRCAMSInvestorCombPosition, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};8、新增接口:投资者品种RCAMS保证金查询。(1)查询请求///投资者品种RCAMS保证金查询virtual int ReqQryInvestorProdRCAMSMargin(CThostFtdcQryInvestorProdRCAMSMarginField *pQryInvestorProdRCAMSMargin, int nRequestID) = 0;2)查询响应///投资者品种RCAMS保证金查询响应virtual void OnRspQryInvestorProdRCAMSMargin(CThostFtdcInvestorProdRCAMSMarginField *pInvestorProdRCAMSMargin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};9、新增接口:RULE合约保证金参数查询。(1)查询请求///RULE合约保证金参数查询virtual int ReqQryRULEInstrParameter(CThostFtdcQryRULEInstrParameterField *pQryRULEInstrParameter, int nRequestID) = 0;2)查询响应///RULE合约保证金参数查询响应virtual void OnRspQryRULEInstrParameter(CThostFtdcRULEInstrParameterField *pRULEInstrParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};10、新增接口:RULE品种内对锁仓折扣参数查询。(1)查询请求///RULE品种内对锁仓折扣参数查询virtual int ReqQryRULEIntraParameter(CThostFtdcQryRULEIntraParameterField *pQryRULEIntraParameter, int nRequestID) = 0;2)查询响应///RULE品种内对锁仓折扣参数查询响应virtual void OnRspQryRULEIntraParameter(CThostFtdcRULEIntraParameterField *pRULEIntraParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};11、新增接口:RULE跨品种抵扣参数查询。(1)查询请求///RULE跨品种抵扣参数查询virtual int ReqQryRULEInterParameter(CThostFtdcQryRULEInterParameterField *pQryRULEInterParameter, int nRequestID) = 0;2)查询响应///RULE跨品种抵扣参数查询响应virtual void OnRspQryRULEInterParameter(CThostFtdcRULEInterParameterField *pRULEInterParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};12、新增接口:投资者产品RULE保证金查询。(1)查询请求///投资者产品RULE保证金查询virtual int ReqQryInvestorProdRULEMargin(CThostFtdcQryInvestorProdRULEMarginField *pQryInvestorProdRULEMargin, int nRequestID) = 0;2)查询响应///投资者产品RULE保证金查询响应virtual void OnRspQryInvestorProdRULEMargin(CThostFtdcInvestorProdRULEMarginField *pInvestorProdRULEMargin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};	

v6.7.1

此版本为支持上期所SPMM新组保业务而变更,新增4个交易查询接口。为支持大商所GIS属性交易指令,报价接口ReqQuoteInsert新增TimeCondition字段。GIS属性对应THOST_FTDC_TC_GFS枚举值。该业务交易所尚未上线,待交易所上线后可进行申报。

1.1.新增接口:投资者商品组SPMM记录查询
(1)查询请求
///投资者商品组SPMM记录查询
virtual int ReqQryInvestorCommoditySPMMMargin(CThostFtdcQryInvestorCommoditySPMMMarginField *pQryInvestorCommoditySPMMMargin, int nRequestID) = 0;2)查询响应
///投资者商品组SPMM记录查询响应
virtual void OnRspQryInvestorCommoditySPMMMargin(CThostFtdcInvestorCommoditySPMMMarginField *pInvestorCommoditySPMMMargin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};1.2.新增接口:投资者商品群SPMM记录查询
(1)查询请求
///投资者商品群SPMM记录查询
virtual int ReqQryInvestorCommodityGroupSPMMMargin(CThostFtdcQryInvestorCommodityGroupSPMMMarginField *pQryInvestorCommodityGroupSPMMMargin, int nRequestID) = 0;2)查询响应
///投资者商品群SPMM记录查询响应
virtual void OnRspQryInvestorCommodityGroupSPMMMargin(CThostFtdcInvestorCommodityGroupSPMMMarginField *pInvestorCommodityGroupSPMMMargin, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};1.3.新增接口:SPMM合约参数查询
(1)查询请求
///SPMM合约参数查询
virtual int ReqQrySPMMInstParam(CThostFtdcQrySPMMInstParamField *pQrySPMMInstParam, int nRequestID) = 0;2)查询响应
///SPMM合约参数查询响应
virtual void OnRspQrySPMMInstParam(CThostFtdcSPMMInstParamField *pSPMMInstParam, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};1.4.新增接口:SPMM产品参数查询
(1)查询请求
///SPMM产品参数查询
virtual int ReqQrySPMMProductParam(CThostFtdcQrySPMMProductParamField *pQrySPMMProductParam, int nRequestID) = 0;2)查询响应
///SPMM产品参数查询响应
virtual void OnRspQrySPMMProductParam(CThostFtdcSPMMProductParamField *pSPMMProductParam, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};1.5.报价接口新增字段
为支持大商所GIS属性交易指令,报价接口ReqQuoteInsert新增TimeCondition字段。GIS属性对应THOST_FTDC_TC_GFS枚举值。该业务交易所尚未上线,待交易所上线后可进行申报。

v6.7.0(推荐,主用)

1.此版本未新增接口,支持查询流量压缩lz4算法

抓包对比的方法也很简单,同一个程序更换不同的 thosttraderapi_se 动态库文件(6.6.8和6.7.0),分别连实盘进行相同的操作:认证、登录、确认结算单、资金查询、持仓查询、委托查询。
在这里插入图片描述
下图中51205端口(柜台)发给1102端口(本地程序)的包采用的是6.6.8版本,包个数大概占80%;
51205端口(柜台)发给1135端口(本地程序)的包采用的是6.7.0版本,包个数只占20%;
采用lz4压缩算法的版本,从下发的包的个数上有很大的提升,流量也仅有原来的30%左右。
在这里插入图片描述

2.优化API的openssl编译和查询合约响应中ExchangeID乱码问题。

v6.6.9

此版本为支持郑商所SPBM组保业务而变更,新增8个交易查询接口

1.1.新增接口:SPBM期货合约参数查询(查询对冲参数X、Y、Z)
(1)查询请求
///SPBM期货合约参数查询
virtual int ReqQrySPBMFutureParameter(CThostFtdcQrySPBMFutureParameterField *pQrySPBMFutureParameter, int nRequestID) = 0;2)查询响应
///SPBM期货合约参数查询响应
virtual void OnRspQrySPBMFutureParameter(CThostFtdcSPBMFutureParameterField *pSPBMFutureParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};1.2.新增接口:SPBM期权合约参数查询
(1)查询请求
///SPBM期权合约参数查询
virtual int ReqQrySPBMOptionParameter(CThostFtdcQrySPBMOptionParameterField *pQrySPBMOptionParameter, int nRequestID) = 0;2)查询响应
///SPBM期权合约参数查询响应
virtual void OnRspQrySPBMOptionParameter(CThostFtdcSPBMOptionParameterField *pSPBMOptionParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};1.3.新增接口:SPBM品种内对锁仓折扣参数查询
(1)查询请求
///SPBM品种内对锁仓折扣参数查询
virtual int ReqQrySPBMIntraParameter(CThostFtdcQrySPBMIntraParameterField *pQrySPBMIntraParameter, int nRequestID) = 0;2)查询响应
///SPBM品种内对锁仓折扣参数查询响应
virtual void OnRspQrySPBMIntraParameter(CThostFtdcSPBMIntraParameterField *pSPBMIntraParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};///SPBM品种内对锁仓折扣参数1.4.新增接口:SPBM跨品种抵扣参数查询
(1)查询请求
///SPBM跨品种抵扣参数查询
virtual int ReqQrySPBMInterParameter(CThostFtdcQrySPBMInterParameterField *pQrySPBMInterParameter, int nRequestID) = 0;2)查询响应
///SPBM跨品种抵扣参数查询响应
virtual void OnRspQrySPBMInterParameter(CThostFtdcSPBMInterParameterField *pSPBMInterParameter, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};1.5.新增接口:SPBM组合保证金套餐查询
(1)查询请求
///SPBM组合保证金套餐查询
virtual int ReqQrySPBMPortfDefinition(CThostFtdcQrySPBMPortfDefinitionField *pQrySPBMPortfDefinition, int nRequestID) = 0;2)查询响应
///SPBM组合保证金套餐查询响应
virtual void OnRspQrySPBMPortfDefinition(CThostFtdcSPBMPortfDefinitionField *pSPBMPortfDefinition, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};1.6.新增接口:投资者SPBM套餐选择查询(操作员可以查所有投资者,投资者只能查自己的)
(1)查询请求
///投资者SPBM套餐选择查询
virtual int ReqQrySPBMInvestorPortfDef(CThostFtdcQrySPBMInvestorPortfDefField *pQrySPBMInvestorPortfDef, int nRequestID) = 0;2)查询响应
///投资者SPBM套餐选择查询响应
virtual void OnRspQrySPBMInvestorPortfDef(CThostFtdcSPBMInvestorPortfDefField *pSPBMInvestorPortfDef, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};1.7.新增接口:投资者SPBM组合保证金系数查询
(1)查询请求
///投资者新型组合保证金系数查询
virtual int ReqQryInvestorPortfMarginRatio(CThostFtdcQryInvestorPortfMarginRatioField *pQryInvestorPortfMarginRatio, int nRequestID) = 0;2)查询响应
///投资者新型组合保证金系数查询响应
virtual void OnRspQryInvestorPortfMarginRatio(CThostFtdcInvestorPortfMarginRatioField *pInvestorPortfMarginRatio, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};1.8.新增接口:投资者产品SPBM明细查询
(1)查询请求///投资者产品SPBM明细查询
virtual int ReqQryInvestorProdSPBMDetail(CThostFtdcQryInvestorProdSPBMDetailField *pQryInvestorProdSPBMDetail, int nRequestID) = 0;2)查询响应
///投资者产品SPBM明细查询响应
virtual void OnRspQryInvestorProdSPBMDetail(CThostFtdcInvestorProdSPBMDetailField *pInvestorProdSPBMDetail, CThostFtdcRspInfoField *pRspInfo, int nRequestID, bool bIsLast) {};

v6.6.8

用户登录应答 CThostFtdcRspUserLoginField 增加广期所时间

///广期所时间
TThostFtdcTimeType  GFEXTime;

v6.6.7

 1.1.新增CTP_GetDataCollectApiVersion接口
采集库新增CTP_GetDataCollectApiVersion接口获取采集库版本号:const char * CTP_GetDataCollectApiVersion(void);1.2.SubmitUserSystemInfo增加错误返回
SubmitUserSystemInfo函数增加错误返回值:-7,对应错误信息为“api and collect api version dismatch ” 采集库版本与API版本不匹配时输出该错误码(举例采集库为评测版,API为生产版)1.3.CTP_GetSystemInfo增加返回值错误码
DATA_COLLECT_API_EXPORT int CTP_GetSystemInfo(char* pSystemInfo, int& nLen)在调用采集信息上报的时候,增加检查密文长度是否正常,不正常直接返回错误。长度大于等于264则放过。获取AES加密和RSA加密的终端信息pSystemInfo的空间需要调用者自己分配至少270个字节。Windows返回值定义:返回值 &0x01 << 0) 不为0 表示终端类型未采集到返回值 &0x01 << 1) 不为0 表示 信息采集时间获取异常返回值 &0x01 << 2) 不为0 表示ip 获取失败  (采集多个相同类型信息的场景有一个采集到 即表示采集成功)返回值 &0x01 << 3) 不为0 表示mac 获取失败返回值 &0x01 << 4) 不为0 表示 设备名 获取失败返回值 &0x01 << 5) 不为0 表示 操作系统版本 获取失败返回值 &0x01 << 6) 不为0 表示 硬盘序列号 获取失败返回值 &0x01 << 7) 不为0 表示 CPU序列号 获取失败返回值 &0x01 << 8) 不为0 表示 BIOS 获取失败返回值 &0x01 << 9) 不为0 表示 系统盘分区信息 获取失败
Linux返回值定义:     返回值 &0x01 << 0) 不为0 表示终端类型未采集到返回值 &0x01 << 1) 不为0 表示 信息采集时间获取异常返回值 &0x01 << 2) 不为0 表示ip 获取失败  (采集多个相同类型信息的场景有一个采集到 即表示采集成功)返回值 &0x01 << 3) 不为0 表示mac 获取失败返回值 &0x01 << 4) 不为0 表示 设备名 获取失败返回值 &0x01 << 5) 不为0 表示 操作系统版本 获取失败返回值 &0x01 << 6) 不为0 表示 硬盘序列号 获取失败返回值 &0x01 << 7) 不为0 表示 CPU序列号 获取失败返回值 &0x01 << 8) 不为0 表示 BIOS 获取失败
1.4.新增命令获取云服务器硬盘序列号信息
新增system("wmic diskdrive get serialnumber")命令获取CPU、硬盘序列号等信息。1.5.启用OnHeartBeatWarning心跳超时回调
当60s没有收到心跳时,支持回调该函数,客户端可提前知道网络断开等场景(前提是客户端需要实现该接口)。1.6.OnRspQryInvestor和OnRspQryProduct接口新增字段
OnRspQryInvestor和OnRspQryProduct接口新增频繁报撤单和日内开仓限制相关字段。具体限制的阈值请咨询期货公司柜台设置。需要柜台版本6.6.6版本及以上支持。

v6.6.5

1.1. 期权自对冲回报OnRtnOptionSelfClose中ActiveUserID字段处理方式更新。
期权自对冲回报OnRtnOptionSelfClose(私有流)报文中 ActiveUserID[操作用户代码]字段值处理如下:1.委托回报报文中此字段值均为空,无论是否是首次委托其请求报文中此字段值也置为空;2.撤单回报报文中此字段值有值,同撤单请求报文。1.2. 交易TraderAPI增加一个错误码。
<error id ="CFMMC_NO_CONNECTION" value="155" prompt="CTP:未连接监控中心">举例:当调用查询保监中心的结算单ReqQrySettlementInfo接口时,查询到m_cfmmcofferInstallID==0时,即该席位未连接监控中心的cfmmcoffer,响应报文中返回该错误代码,给客户清晰的报错提示。1.3. 交易TraderAPI登录回报报文OnRspUserLogin,增加返回柜台的版本号SysVersion。//后台版本信息String  SysVersion;
举例:客户登录成功后,调用OnRspUserLogin接口,返回登录成功的回报报文,报文中SysVersion即柜台版本号,如V6.6.5

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Crossover24版现已上线!附免费升级攻略 Crossover软件下载使用方法

好久不见啦&#xff0c;最近一直在忙着研究Mac玩游戏&#xff0c;什么幻兽帕鲁、女神异闻录之类的&#xff0c;有些沉迷了&#xff0c;实在对不住大家… 不过今天还是给大家带来了好消息&#xff01;那就是让Mac玩游戏不再是笑话的神器&#xff0c;CodeWeavers公司正式发布了C…

禅道:提bug、管理case 7.0

一、禅道的介绍 &#xff08;1&#xff09;定义禅道是一个项目管理工具&#xff0c;也是一个bug管理工具&#xff0c;还是一个用例管理工具。 &#xff08;2&#xff09;作用&#xff1a;为了解决众多企业在管理中出现混乱&#xff0c;无序的现象&#xff0c;开发出来 &…

QPainter::translate: Painter not active

画笔关联画布 就是这里少写了this指针

Android开发教程入门,揭秘ARouter路由机制

为什么说 Flutter 将是未来的主流跨平台开发框架&#xff1f; Google 的 Flutter 开发应用的体验和流畅度基本和原生体验一致&#xff0c;感觉不到不流畅和卡顿。 我们知道在移动平台上&#xff0c;原生应用的体验最好、流畅度最高、性能也最好。而目前的跨平台技术和框架的流…

8个优秀的CSS实践,web开发语言

突破困境&#xff1a; 1. 提升学历 前端找工作&#xff0c;学历重要吗&#xff1f; 重要。谁要是告诉你不重要那一定是在骗你。现实情况是大专吃紧&#xff0c;本科够用&#xff0c;硕士占优&#xff0c;大专以下找到工作靠运气和真实力。 学历是硬伤&#xff0c;已经毕业的你…

Java知识点总结(二)

ID生成策略 主键自增id 主键自动增长&#xff0c;不用手工设值、数字型&#xff0c;占用空间小、检索非常有利、有顺序&#xff0c;不会重复&#xff0c;但在迁移旧数据是会出现id冲突 UUID 基于时间&#xff0c;计数器和地址生成32位的id redis生成id 原子性自增&#xff0c;并…

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:组件标识)

id为组件的唯一标识&#xff0c;在整个应用内唯一。本模块提供组件标识相关接口&#xff0c;可以获取指定id组件的属性&#xff0c;也提供向指定id组件发送事件的功能。 说明&#xff1a; 从API Version 8开始支持。后续版本如有新增内容&#xff0c;则采用上角标单独标记该内容…

android开发教程百度网盘,高并发系统基础篇

展望未来 操作系统 移动操作系统的演变过程&#xff0c;从按键交互的塞班功能机到触摸屏交互的Android/IOS智能机&#xff0c;从小屏幕手机到全面屏、刘海屏、水滴屏。任何系统无非干两件事&#xff1a;输入和输出&#xff0c;接收到外部输入信号后经过操作系统处理后输出信息…

嵌入式工程师函数变量,常用的命名规则(参考学习)

很多工程师不注重平时编码习惯&#xff0c;比如命名规则&#xff0c;一会大写、一会小写&#xff0c;一会中文拼音&#xff0c;一会下划线等&#xff0c;导致自己写的代码自己都看不懂了。 今天就来分享一点关于软件代码常见的几种命名规则。 匈牙利命名法 匈牙利命名法广泛应…

关于我使用numpy.random.choice()遇到坑这件事

做仿真时经常使用到随机数&#xff0c;下面是一个场景&#xff1a;使用np.random.choice([0,1],p[0.5,0.5],size1)去进行随机的二选一&#xff0c;假设需要随机选择1000次&#xff0c;为了保证结果的稳健性&#xff0c;对前述过程重复50次&#xff0c;为了保证可复现性&#xf…

Nexus Repository的搭建

一、前言 Nexus Repository用于管理maven的jar包。java开发程序员每天都在使用&#xff0c;但是自己搭建或者管理的就很少。除非你是系统架构师。因为这一套东西&#xff0c;基本是搭建一次就不需要人来搭建了&#xff0c;日后打开界面维护的机会也很少&#xff0c;我们只需要…

嵌入式驱动学习第一周——阻塞IO,进程的休眠与唤醒

前言 本文介绍进程的休眠与唤醒。 嵌入式驱动学习专栏将详细记录博主学习驱动的详细过程&#xff0c;未来预计四个月将高强度更新本专栏&#xff0c;喜欢的可以关注本博主并订阅本专栏&#xff0c;一起讨论一起学习。现在关注就是老粉啦&#xff01; 行文目录 前言1. 阻塞和非阻…