当前位置: 首页 > backend >正文

【WonderTrader源码详解 1】【环境搭建 2】【编译安装WonderTrader】

一、引言

本篇来讲述如何搭建 wondertrader 和 wtpy

二、wondertrader

2.1 源码下载

# /home/leo/sda_1.6TBgit clone https://gitee.com/wondertrader/wondertrader.gitgit clone https://gitee.com/wondertrader/wtpy.git

2.2 源码编译

cd /home/leo/sda_1.6TB/wondertrader/src./build_debug.sh# 最终编译后的产物在  build_debug 中

gcc/g++ 版本

gcc version 8.4.0gcc version 8.4.0

2.3 安装编译后的库


/home/leo/sda_1.6TB/wondertrader# 这里需要注意 wtpy 和 wondertrader 是同级目录
/home/leo/sda_1.6TB/wtpy

~/sda_1.6TB/wondertrader$ ./copy_bins_debug_linux.sh
  • ./copy_bins_debug_linux.sh 内容如下
despath=$1
if test "$despath" = ""; then despath="../wtpy"
fiecho "wtpy path is $despath"root="./src/build_debug/build_x64/Debug/bin"
folders=("Loader" "WtBtPorter" "WtDtPorter" "WtPorter")
for folder in ${folders[@]}
docp -rvf $root/$folder/*.so $despath/wtpy/wrapper/linuxfor file in `ls $root/$folder`doif [ -d $root"/"$folder"/"$file ]thencp -rvf $root/$folder/$file/*.so $despath/wtpy/wrapper/linux/$filefidone
done

三、wtpy 环境搭建

3.1 conda 环境创建

conda create -n wtpy_env python=3.10conda activate wtpy_env

3.2 源码安装

直接 在我们的 wtpy_env 环境中安装 wtpy

pip install ./wtpy/

3.3 测试

/home/leo/sda_1.6TB/wtpy/demos/datakit_stkpython3 ./runDT.py

# 运行报错, nump 版本不对导致
ValueError: numpy.dtype size changed, may indicate binary incompatibility. Expected 96 from C header, got 88 from PyObject# 卸载 NumPy(可能需要 sudo)
pip uninstall -y numpy# 清理残留的编译缓存(重要!避免使用旧缓存)
pip cache purge# 重新安装兼容版本的 NumPy(例如 1.21.6,具体版本需匹配依赖库)
pip install numpy==1.21.6  # 或其他兼容版本(如 1.23.x、1.24.x)
  • 解决完上述问题后,就可以 运行成功了。
(wtpy_env) leo@leo:~/sda_1.6TB/wtpy/demos/datakit_stk$ python3.10 ./runDT.py 
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtPorter.cpp][get_version][72]
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtPorter.cpp][initialize][57]
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtPorter.cpp][getRunner][50]
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtRunner.cpp][WtDtRunner][35]
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtRunner.cpp][initialize][93]
[08.13 01:23:37 - info ] Trading sessions loaded
[08.13 01:23:37 - info ] Commodities configuration file ../common/stk_comms.json loaded
[08.13 01:23:38 - info ] Contracts configuration file ../common/stocks.json loaded, 2 exchanges
[08.13 01:23:38 - info ] Holidays loaded
[08.13 01:23:38 - info ] ShmCaste initialized @ ./exchange.membin
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtRunner.cpp][initDataMgr][258]
[08.13 01:23:38 - info ] Data storage module /home/leo/sda_1.6TB/anaconda3/envs/wtpy_env/lib/python3.10/site-packages/wtpy/wrapper/linux/libWtDataStorage.so loaded
[08.13 01:23:38 - info ] WtDataWriter initialized, root dir: ../storage/, save_csv_tick: false, async_mode: true, log_group_size: 20, disable_history: false, disable_tick: false, disable_min1: false, disable_min5: false, disable_day: false, disable_trans: false, disable_ordque: false, disable_orders: false, min_price_mode: 0
[08.13 01:23:38 - info ] Reading parser config from mdparsers.yaml...
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtRunner.cpp][initParsers][264]
[08.13 01:23:38 - info ] [parser] Parser module /home/leo/sda_1.6TB/anaconda3/envs/wtpy_env/lib/python3.10/site-packages/wtpy/wrapper/linux/parsers/libParserXTP.so loaded
[08.13 01:23:38 - info ] 1 market data parsers loaded in total
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtPorter.cpp][register_parser_callbacks][115]
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtPorter.cpp][getRunner][50]
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtRunner.cpp][registerParserPorter][293]
[08.13 01:23:38 - info ] Callbacks of Extented Parser registration done
[08.13 01:23:38 - info ] WonderTrader datakit initialzied��version: UNIX v0.9.9 Build@Aug 13 2025 01:12:31
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtPorter.cpp][start][66]
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtPorter.cpp][getRunner][50]
debug [/home/leo/sda_1.6TB/wondertrader/src/WtDtPorter/WtDtRunner.cpp][start][46]
[08.13 01:23:38 - info ] [ParserXTP] Connecting server successed: 0, begin to subscibe data ...
[08.13 01:23:38 - info ] [ParserXTP] Market data of 4 instruments of SSE subscribed
[08.13 01:23:38 - info ] [ParserXTP] Tick_by_tick data of 4 instruments of SSE subscribed
[08.13 01:23:38 - info ] [ParserXTP] Market data of 1 instruments of SZSE subscribed
[08.13 01:23:38 - info ] [ParserXTP] Tick_by_tick data of 1 instruments of SZSE subscribed
[08.13 01:23:38 - info ] 1 parsers started
http://www.xdnf.cn/news/17658.html

相关文章:

  • 从 VLA 到 VLM:低延迟RTSP|RTMP视频链路在多模态AI中的核心角色与工程实现
  • Java 大视界 -- 基于 Java 的大数据可视化在能源互联网全景展示与能源调度决策支持中的应用
  • 《工程封装》(Python)
  • 解决 HTTP 请求 RequestBody 只能被读取一次的问题
  • 【PyTorch学习笔记 - 03】 Transforms
  • 串口超时参数深度解析:ReadTotalTimeoutMultiplier、ReadIntervalTimeout等
  • Day24|学习前端CSS
  • scikit-learn/sklearn学习|岭回归python代码解读
  • 数据分析小白训练营:基于python编程语言的Numpy库介绍(第三方库)(上篇)
  • vue-cli搭建项目脚手架
  • -bash: ll: 未找到命令
  • RabbitMQ-知识技能图谱(总结篇)
  • leetcode3258:统计满足K约束的子字符串数量Ⅰ(变长滑动窗口详解)
  • Windows server服务器上部署python项目域名访问(超详细教程)
  • Web攻防-业务逻辑篇Fuzz技术数据并发条件竞争JS挖掘参数盲猜Turbo插件SRC
  • pyside控件_左右范围滑动控件
  • Kubernetes 资源管理全解析:从基础到企业级实践
  • 初识神经网络04——构建神经网络2
  • 【基于DesignStart的M3 SoC】
  • 当“超级高速“遇见“智能大脑“:5G-A×AI如何重塑万物智联时代
  • 告别数据孤岛!React 路由 3 种传参方法全解析
  • Qt之QMetaEnum的简单使用(含源码和注释)
  • 标准IO操作
  • Python 常用的正则表达式
  • Redis序列化配置类
  • vue2+elementUI实现园型动态步骤条小组件,带缩放功能
  • 【4】Transformers快速入门:自然语言模型 vs 统计语言模型
  • 【无标题】centos 配置阿里云的yum源
  • vue文件或文件夹拖拽上传
  • WPS文字和Word:不只是表格,段落也可以排序