Package: wtpy
wtpy这是WonderTrader针对Python3适配的子框架wtpy子框架简介apps子模块WtBtAnalyst.py	回测分析模块，主要是利用回测生成的数据，计算各项回测指标，并输出到excel文件WtCtaOptimizerCTA优化器，主要是利用multiprocessing并行回测，并统计各项交易指标，最后将统计结果汇总输出到csv文件WtHotPicker		国内期货换月规则辅助模块，支持从交易所网站页面爬取数据确定换月规则，也支持解析datakit每日收盘生成的snapshot.csv来确定换月规则wrapper子模块该模块主要包含了所有和C++底层对接的接口模块ContractLoader.py	主要用于通过CTP等接口加载基础的commodities.json和contracts.json文件WtBtWrapper.py	主要用于和回测引擎C++核心模块对接WtDtWrapper.py	主要用于和数据组件C++核心模块对接WtDtHelper.py	主要提供将用户自己的数据和WonderTrader内部数据格式进行转换的功能WtDtServoApi.py	主要向用户提供直接通过python访问datakit落地的数据的接口WtExecApi.py	主要用于和C++独立执行模块WtExecMon对接WtWrapper.py	主要用于和实盘交易引擎C++核心模块对接WtMQWrapper.py	主要提供直接使用底层WtMsgQue模块的对接WtDtHelper.py   主要用于和底层的WtDtHelper数据辅助模块对接monitor子模块该模块主要包含了内置的监控服务，提供了Http和websocket两种连接方式DataMgr.py	主要用于读取并缓存组合数据EventReceiver.py	主要用于在指定的udp端口接收组合转发的各种事件PushSvr.py	主要用于向web提供websocket服务WatchDog.py	主要用于自动调度服务端的进程WtBtMon.py	主要进行回测的管理WtMonSvr.py	监控服务核心服务模块 ，利用flask实现了一个http服务接口staticwebui静态文件其他模块主要位于根节点下，包含了各个子模块的入口组件WtCoreDefs.py	主要定义的Python版本的策略基类，方便用户重写CodeHelper.py 品种代码辅助模块，内置了一些方法，方便使用ContractMgr.py 合约管理器模块，用于加载contracts.json或stocks.json文件，并提供查询方法CtaContext.py	主要定义了CTA策略的上下文，可以理解为单策略的运行环境HftContext.py	主要定义了HFT策略的上下文，可以理解为单策略的运行环境SelContext.py	主要定义了SEL策略的上下文，可以理解为单策略的运行环境ExtToolDefs.py	扩展模块定义文件，主要定义了一些扩展模块的基础接口ProductMgr.py	品种管理器，主要用于Python环境中的合约属性、品种属性查询SelContext.py	选股策略上下文，即选股策略直接交互的APISessionMgr.py	交易时间模板管理器，主要用于Python环境中的交易时段模板管理StrategyDefs.py	各引擎策略基础定义模块，定义了CTA、HFT、SEL三种策略基类WtBtEngine.py	回测引擎转换模块，主要封装底层接口调用WtDtEngine.py	数据引擎转换模块，主要封装底层接口调用WtEngine.py		交易引擎转换模块，主要封装底层接口调用如何让获取WonderTradergithub地址：https://github.com/wondertrader/wondertradergitee地址：https://gitee.com/wondertrader/wondertraderwtpygithub地址：https://github.com/wondertrader/wtpygitee地址：https://gitee.com/wondertrader/wtpywtpy获取地址：https://pypi.org/project/wtpy/wtpy可以直接在python3.8以上的版本安装pipinstallwtpy--upgrade延伸项目将wtpy作为底层回测引擎的强化学习框架Wt4ElegantRLhttps://github.com/drlgistics/Wt4ElegantRL相关资源关注公众号wondertrader，可以收到WonderTrader的实时资讯用户交流QQ群上线：610730738(加入前请先star一下, 然后提供github用户名)更多WonderTrader的文档请看https://wondertrader.github.io/WonderTrader半官方文档https://dumengru.github.io/docs_wondertrader/更新日志0.9.9C++底层更新到2023/11/27发布的v0.9.9版本(重要)全面将原来的基于DequeueRecord的容器改成新的基于numpy内存直接构建ndarray的容器，数据读写性能很很大提升，目前估算下来差不多10倍左右合约信息增加了上市日期和下市日期的概念，可以在回测中读取当日可用合约（这个还需要维护大的合约列表）其他配合底层的优化和调整细节调增了bug修复0.9.8C++底层更新到2023/08/18发布的v0.9.8版本WtMonSvr增加移动版入口控制台webui全新改版内置的数据下载模块wtpy.apps.datahelper新增对天勤数据tqsdk的支持优化了python部分调用底层日志接口时的编码处理机制，适配不同操作系统WtMonSvr增加了一个token访问模式，主要用于一些跨域访问的场景完善了PushSvr中处理认证信息的细节其他配合底层的优化和调整0.9.7C++底层更新到2023/03/21发布的v0.9.7版本监控服务的DataMgr获取资金的接口增加了对一次性读取全部策略资金数据的机制控制台webui做了一些优化其他配合底层的优化和调整0.9.6C++底层更新到2022/12/19发布的v0.9.6版本配合底层调整了WtDtServo的一些接口完善了WtWrapper中和底层关于图表的接口对接调整了WtCtaOptimizer和WtBtEngine一些接口，便于在终端中调用WtCtaOptimize新增了一个消息队列的支持，可以发布优化的进度等信息配合底层扩展接口，完善了对增量回测的支持控制台webui做了一些优化其他配合底层的优化和调整0.9.5C++底层更新到2022/11/04发布的v0.9.5版本将flask改成fastapi（因为flask的依赖包版本繁复，直接安装会有一些依赖版本匹配的问题）其他配合底层的优化和调整修复了一些已知的bug更多修改日志请参考WonderTrader v0.9.5更新日志调试资源请查看https://gitee.com/wondertrader/wtpy_utils/raw/master/pdb_wtpy_v0.9.5.rar0.9.4C++底层更新到2022/08/29发布的v0.9.4版本其他配合底层的优化和调整monitor下WtBtSnooper模块进一步完善，支持自定义指标数据处理webui中的回测展示页面，完善了对自定义指标的绘制，以及其他的细节完善更多修改日志请参考WonderTrader v0.9.4更新日志调试资源请查看https://gitee.com/wondertrader/wtpy_utils/raw/master/pdb_wtpy_v0.9.4.rar0.9.3C++底层更新到2022/07/14发布的v0.9.3版本其他配合底层的优化和调整绩效分析器去掉对matplotlib的依赖，改成利用excel生成图表配置文件解析的时候，增加一个编码判断的逻辑WTSTickStruct的买卖队列改成了单项，而不用数组，这样在python中转dataframe的时候便于处理停用BarList和TickList，全部改成更高效的WtBarRecords和WtTickRecordsWtDtServo配合底层新增了一个get_ticks_by_date接口用于按交易日读取tick数据以及一个get_sbars_by_date接口用于按交易日读取秒线数据WtDtServo配合底层新增了一个get_bars_by_date用于按交易日获取分钟线数据WTSBarStruct的to_tuple方法进行了扩展apps.datahelper新增一个dumpBars接口，将要落地的K线数据直接通过回调的方式传出来，方便灵活控制如何保存K线数据WtBtEngine和WtEngine中初始化的时候，把默认的基础文件名改成None，并加入判断，可以兼容配置文件中的配置项新增一个TraderDumper，调用底层的TraderDumper模块，可以将交易接口的数据转接出来monitor.DataMgr模块读取数据的时候加了一些兼容处理，减少web控制台报错WtBtEngine和WtEngine增加了配置自定义连续合约规则的接口registerCustomRuleWtHotPicker的演示demo中增加米筐数据源的支持绩效分析做了一些优化，主要是把目录改成output目录，后面的策略子目录通过策略id自动生产，这样就不用多次输入了完善了WtCtaOptimizer的一些细节遗传算法优化器优化webui控制台发布包做了一个更新，主要增加了一些分页机制，页面可以不用那么卡webui新增一个独立页面backtest.html，该页面主要提供可视化回测查看和分析功能monitor下新增一个WtBtSnooper模块，可以运行一个简单的回测结果提取服务demo进一步完善更多修改日志请参考WonderTrader v0.9.3更新日志调试资源请查看https://gitee.com/wondertrader/wtpy_utils/raw/master/pdb_wtpy_v0.9.3.rar0.9.2C++底层更新到2022/03/28发布的v0.9.2版本demo进一步完善其他配合底层的优化和调整更多修改日志请参考WonderTrader v0.9.2更新日志调试资源请查看https://gitee.com/wondertrader/wtpy_utils/raw/master/pdb_wtpy_v0.9.2.rar0.9.0(重大版本)C++底层更新到2022/03/14发布的v0.9.0版本（重要）重构了底层数据结构WTSTickStruct和WTSBarStruct，wtpy做了同步修改（重要）配置文件全面兼容yaml和json两种格式，并实现了一个WTSCfgLoader模块自动处理（重要）底层实现了对7*24小时交易品种的支持（重要）完善了监控服务，支持扩展异常事件通知接口新增一个WtCCLoader模块，用于从网络接口加载合约列表新增一个遗传算法参数优化模块WtCtaGAOptimizerdemo进一步完善其他配合底层的优化和调整更多修改日志请参考WonderTrader v0.9.0更新日志调试资源请查看https://gitee.com/wondertrader/wtpy_utils/raw/master/pdb_wtpy_v0.9.0.rar0.8.0(大版本)C++底层更新到2021/12/24发布的v0.8.0版本（重要）实现了ExtDataLoder的机制，实盘和回测框架都可以通过应用层的扩展数据加载器加载历史数据（可参考demos/test_dataexts）（重要）实现了ExtDataDumper的机制，如果向datakit注册了ExtDataDumper，在收盘作业的时候，就会通过ExtDataDumper将实时数据转储（可参考demos/test_dataexts）（重要）配合C++底层完善了对T+1交易机制的支持WatchDog模块做了调整，增加了对进程使用的内存的监控新增了一个高性能容器DequeRecord（ByZerounNet），用于python部分的缓存替换原来的WtKlinData和WtHftData，在数据缓存方面，大致可以提升5%~10%的性能demos下新增一个cta_unit_test，作为一个基准测试demo，以后会逐步完善其他细节优化和bug修正0.7.1C++底层更新到2021/10/24发布的v0.7.1版本回测框架C++底层增加了单步控制机制，用于控制回测进度，主要为了配合强化学习框架的调用习惯WtDtEngine支持扩展Parser的接入，可以参考/demos/datakit_fut/testExtParser.py其他配合底层的优化和调整0.7.0C++底层更新到2021/09/12发布的v0.7.0版本新增一个WtDataServo模块，分为两种实现方式， 一种是调用本地底层WtDtServo模块，直接访问数据文件，根据需要可开启web接口，另外一种是直接访问第一种实现方式提供的web接口拉取数据，详情可以参考/demos/test_dataservo优化了WtWrapper和WtBtWrapper，将原来的global变量全部改成局部变量，可以提升运行效率通过singleton修饰器限定Wrapper为单例，和底层统一新增一个WtMsgQue模块，通过WtMQWrapper模块调用底层的WtMsgQue模块EventReceiver模块改成调用WtMsgQue来实现，并按照回测和实盘框架分别实现EventReceiverWatchDog启动和监控进程的机制进行了优化，不再使用threading挂载进程句柄的方式，而是利用cmdline和processid进行检查和监控，这样WtMonSvr重启之后，就可以重新根据命令行挂在已经在运行的进程WtMonSvr新增回测管理模块WtBtMon，用于提供回测相关的接口服务WtMonSvr完善了组合配置文件查询和修改的接口WtMonSvr完善了组合风控过滤器filters.json的读取机制WtMonSvr新增了用户修改密码和管理员重设用户密码的接口PushSvr根据EventReceiver收到的数据，进行了适配，完善了消息推送的机制WtBtAnalyst模块新增了run_simple接口，用于只进行最简单的每日资金分析，并将结果输出到summary.json文件apps下新增了一个WtHotPicker.py模块，用于确定主力合约和次主力合约其他配合底层的优化和调整webui剥离出来，单独发布到wtconsole仓库0.6.5C++底层更新到2021/07/19发布的v0.6.5版本WtDtHelper新增一个resample_bars接口，用于将制定的dsb数据文件重新采样为其他周期的K线SessionInfo新增一个toString对象，生成json格式的字符串暴力优化器CTAOptimizer支持设置多个回测时段完善了read_dsb_bars和read_dsb_ticks接口，同时新增read_dmb_bars和read_dmb_ticks接口调用WtDtHelper.dll的同名接口Context新增一个is_backtest属性，用于判断是否在回测模式监控服务新增了查看组合文件结构、获取组合下文件内容以及修改组合下文件内容的接口完善了webui控制台针对风控员的权限控制完善了绩效分析模块的兼容性webui完善其他代码级的优化和完善0.6.4C++底层更新到2021/05/24发布的v0.6.4版本WtDtHelper中调用优化，去掉了global修正了一些底层接口调用时参数对应不上的问题WtDtHelper新增了直接从python里向C++底层喂历史数据的接口trans_bars和trans_ticks新增了一些demo针对C++底层进行适配：1、CTA增加一个stra_get_fund_data接口，2、回测引擎，支持设置slippageWtEngine构造函数提供指定数据输出目录的genDir参数，以及日志配置文件的logCfg参数其他代码级的优化和完善0.6.3C++底层更新到2021/04/14发布的v0.6.3版本绩效分析工具WtBtAnalyst功能大幅度扩展0.6.2C++底层更新到2021/03/17发布的v0.6.2版本日志信息翻译成英文webui的部分表格添加了排序和统计功能0.6.1C++底层更新到2021/02/26发布的v0.6.1版本统一封装了一个PlatformHelper模块，用于确定操作系统的各种信息将绝大部分的函数参数和返回值都增加了类型，方便调用的时候查看将K线容器类的成员变量做了修改，size->capacity，count->size，便于用户理解WtDtHelper模块新增两个接口read_dsb_ticks和read_dsb_bars，同步调用C++底层WtDtHelper模块的同名接口，用于直接读取dsb文件CTA策略新增一个stra_get_last_exittime用于获取上一个出场信号WtBeEngine和WtCtaOptimizer两个模块都增加了对C++策略的支持回测框架增加对session开始和结束事件的响应接口监控服务：增加了查看和修改入口脚本的接口/qrygrpentry、/cmtgrpentryweb-ui：去掉vue-json-viewer库，改用codemirror，用于展示和编辑代码web-ui：控制台新增入口代码修改的组件，用于修改组合盘下的run.py入口文件web-ui：优化了一些展示的细节wtpy.apps下添加了一个datahelper子模块，该模块的主要作用就是将不同数据源的数据按照WonderTrader支持的格式保存起来0.6.0C++底层更新到2021/01/26发布的v0.6.0版本CTA策略API新增一个stra_get_tdate，用于获取当前交易日CTA策略API和SEL策略API各新增一个stra_get_all_position，用于获取全部的持仓数据完善了WtBtWrapper模块中对tick数据的处理完善了数据辅助模块WtDtHelper完善了跟C++底层新增的HFT接口的对接初步完成了跟C++底层新增的股票Level2数据访问接口的对接将WtDataDefs模块中的WtTickData改成WtHftData，作为高频数据的通用容器0.5.4.1WatchDog模块中修改了一周星期的序列，因为Python从周一到周天标记为0-6，而WonderTrader采用周天到周六为0-60.5.4C++底层更新到2020/12/25发布的v0.5.4版本C++底层接口针对传递配置文件内容的支持做了修改，同步修改了wtpy中的部分关联代码修正了监控服务中的WatchDog模块在linux下的启动参数的bug，解决了linux下无法启动的问题修正了监控服务的自动调度任务没有检查是否启用标记，从而导致重复启动的bug修改了监控服务的WebUI的一些展示细节wrapper下新增一个WtDtHelper模块，用于对接C++底层的WtDtHelper模块，给python调用处理数据转换的任务将WtBtAnalyst模块迁移到wtpy.apps下新增一个WtOptimizer，用于遍历优化策略参数0.5.3CTPLoader增加一个isMini的参数，用于控制底层调用MiniLoader对接CTPMini2进行拉取WtKlineData新增一个slice方法，用于对已有K线进行切片C++底层更新到2020/12/08发布的v0.5.3版本CtaContext新增一个stra_get_sessinfo接口，用于获取品种的交易时间信息monitor模块中的web-gui修改了一些bug修正了绩效分析模块的一些bug0.5.2同步WonderTrader核心为v0.5.2监控服务monitor增加了一个日志模块WtLogger.py，内部使用logging模块来记录日志进一步完善了web-ui的部分功能和配色新增一个CTPLoader模块，主要用于调用底层CTPLoader执行程序，用于从CTP账号加载合约列表0.5.1同步WonderTrader核心为v0.5.1新增一个monitor监控服务模块，其中包含http服务、websocket服务两种对web端提供的服务，同时新增了组合事件组件，用于接收组合转发出来的实时事件，还新增一个调度模块用于自动调度服务器上的定时任务新增一个web-ui目录，用于管理wtpy的web-ui项目，暂时实现了PC版的监控界面，位于web-ui/console下，web-ui采用vue2+webpack来实现，前端采用element-ui界面库，能够实时提供强大的组合盘监控服务0.5.0同步WonderTrader核心为v0.5.0引入了hft策略以后，策略可以直接调用行情接入模块Parsers，所以调整C++底层模块的目录结构，方便策略调用增加了HftContext以及BaseHftStrategy两个针对HFT策略的基础模块回测和实盘都完成了跟C++底层的HFT接口的对接0.4.0新增一个SEL引擎，用于调度应用层的选股策略，得到目标组合以后，提供自动执行服务，暂时只支持日级别以上的调度周期，执行会放到第二天因为新增了选股调度引擎，所以全面重构WtPorter和WtBtPorter导出的接口函数，以便调用的时候区分新增一个独立的执行器模块WtExecMon，并导出C接口提供服务。主要是剥离了策略引擎逻辑，提供单纯的执行服务，方便作为单纯的执行通道，嫁接到其他框架之下Windows下的开发环境从vs2013升级到vs2017，boost1.72和curl需要同步升级0.3.6执行器使用线程池，减少对网络线程的时间占用增加了一个实盘仿真模块TraderMocker，可以满足目前已经支持的股票和期货的仿真交易更多接口支持（飞马、易盛iTap、CTPMini）内置执行算法增加TWAP继续完善文档0.3.5把手数相关的都从整数改成浮点数，主要目的是为了以后兼容虚拟币交易(虚拟币交易数量都是小数单位)优化手数改成浮点数以后带来的日志输出不简洁的问题(浮点数打印会显示很多“0000”)逐步完善文档XTP实盘适配，主要是修复bug0.3.4正式开源的第一个版本