模块功能
kfs模块功能
kfs文件路径
Windows: {kungfu安装目录}/resources/kfc/kfs.exe
Linux: {kungfu安装目录}/resources/kfc/kfs
MacOS: {kungfu安装目录}/Contents/Resources/kfc/kfs
小技巧
Windows与MacOS版本可通过图形化界面的菜单栏, 文件->打开功夫安装目录, 可以直接打开 {kungfu安装目录}/resources 目录
extension模块
install
下载package.json里面配置的依赖项目
$ kfs extension install
compile
编译代码生成二进制文件,
如果是cpp代码,根据package.json配置编译生成CPython模块或可执行程序。
如果是Python代码,使用Nuitka编译生成二进制库文件。
$ kfs extension compile
build
先检测依赖的库文件是否已经下载,若没下载则进行下载。如果package.json配置的是cpp代码项目,会自动生成CMakeLists.txt配置文件。然后在执行kfs extension compile的操作生成二进制文件。
$ kfs extension build
package.json文件字段范例:
"kungfuDependencies": {
"xtp": "v2.2.37.4"
},
"kungfuBuild": {
"cpp": {
"target": "bind/python",
"links": {
"windows": [
"xtptraderapi",
"xtpquoteapi"
],
"linux": [
"xtptraderapi",
"xtpquoteapi"
],
"macos": [
"xtptraderapi",
"xtpquoteapi"
]
}
}
}
这是xtp柜台的编译配置信息,执行 kfs extension build 之后,会先下载xtp的v2.2.37.4版本的API头文件和库文件,生成的CMakeLists.txt的配置文件中,设置编译输出为CPython模块,链接库xtptraderapi和xtptraderapi。
小技巧
注: 如果曾经在下载过程中被打断,导致目录下有依赖的库目录但是文件不全,此时检测结果会视为已下载,需要删除 __kungfulibs__ 和 __pypackages__ 目录再执行kfs extension build 命令。
package
将dist目录中编译生成的文件打包到压缩包中
$ kfs extension package
clean
删除build目录和dist目录中编译生成的文件
$ kfs extension clean
format
格式化代码:
cpp的代码使用clang-format进行格式化
Python的代码使用black进行格式化
$ kfs extension format
list
展示kungfu云环境里支持的柜台API列表,列表中的API版本只需要加到package.json的kungfuDependencies字段中, 在执行build的时候就可以自动下载API的头文件和库文件,并且自动配置CMakeLists.txt配置信息。
如果列表中没有您需要的柜台版本,可以联系我们进行添加。
$ kfs extension list
package.json文件字段范例:
"kungfuDependencies": {
"xtp": "v2.2.37.4",
"ctp": "v6.6.8"
}
kfs extension install 时会将xtp的v2.2.37.4版本的API头文件和库文件下载到__kungfulibs__/xtp/v2.2.37.4目录下,将ctp的v6.6.8版本的API头文件和库文件下载到__kungfulibs__/ctp/v6.6.8。
kfc模块功能
kfc: 用于启动功夫功夫进程
kfc文件路径
Windows: {kungfu安装目录}/resources/kfc/kfc.exe
Linux: {kungfu安装目录}/resources/kfc/kfc
MacOS: {kungfu安装目录}/Contents/Resources/kfc/kfc
linux下的journal数据读取
journal文件是功夫交易系统中记录进程行为的数据文件。journal文件具有极其丰富的数据信息,如Quote行情信息中记录了档位报价详细信息,可用于盘后复盘。
获取sessions列表
$ ./kfc journal sessions

数据详情展示
$ ./kfc journal trace -i session_id

数据展示
$ ./kfc journal show -i session_id

进程启动
进程分为主进程 , 柜台进程 , 策略进程
主进程启动
主进程分为 : master (主控进程), ledger (计算进程)
$ ./kfc -l info run -c system -g master -n master -m live
备注
参数介绍
-l : 是日志级别, 共有5个级别: trace , debug , info , warning , error , critical
-c : 进程类别: system
-g : 组: master进程为 master ; ledger 进程为 service
-n : 名称: master (主控进程), ledger (计算进程)
-m : 启动模式: live (实时交易)
柜台进程启动
柜台进程为: 交易账户进程(TD) , 行情源进程(MD)
# 比如: 启动账户为123456的sim测试柜台的交易账户进程
$ ./kfc -l info run -x '/opt/Kungfu/resources/app/kungfu-extensions/sim/' -c td -g sim -n 123456 -m live
# 比如: 启动sim测试柜台的行情源进程
$ ./kfc -l info run -x '/opt/Kungfu/resources/app/kungfu-extensions/sim/' -c md -g sim -n sim -m live
备注
参数介绍
-l : 是日志级别, 共有5个级别: trace , debug , info , warning , error , critical
-x : 柜台插件模块路径(绝对路径),比如上面例子中的sim柜台,柜台插件所在路径为 “/opt/Kungfu/resources/app/kungfu-extensions/sim/”
-c : 进程类别: 交易进程为 td ; 行情进程为 md
-g : 组: sim(测试柜台)
-n : 名称: sim
-m : 启动模式: live (实时交易)
策略进程启动
$ ./kfc -l info run -c strategy -g default -n test '/home/sim.py' -m live
备注
参数介绍
-l : 是日志级别, 共有5个级别: trace , debug , info , warning , error , critical
-c : 进程类别: 策略进程为 strategy
-g : 组: 策略为 default
-n : 名称: 策略ID
-m : 启动模式: live (实时交易)
策略路径为绝对路径