Linux命令行使用手册
简介
功夫 CLI 系统是基于 Linux 操作系统的命令行监控交互界面,告别 Linux shell 小黑屋,通过简洁的界面,所有交易所需要数据一览无遗,操作灵活、简单
注意
对于linux系统版本,要求为 : centos 7.x , 建议 : centos 7.6
安装
下载含有Kungfu-CLI功能的功夫交易系统Linux安装包 Kungfu-version.rpm 或者是 Kungfu-version.AppImage 或者是 Kungfu-version.zip
注意
安装包的具体名字要看下载的版本 , 比如 : Kungfu-3.0.7-linux-x86_64-latest.rpm , Kungfu-3.0.7-linux-x86_64-latest.AppImage , Kungfu-3.0.7-linux-x86_64-latest.zip
Kungfu-version.rpm 格式的安装包,安装命令为
yum install Kungfu-version.rpm
# 例如 : yum install Kungfu-3.0.7-linux-x86_64-latest.rpm
Kungfu-version.AppImage 格式的安装包,安装命令为
需要将 appimage 抽出,生成 squashfs-root 文件夹(该文件夹名称以系统生成为准),再将其内容复制到 /opt/Kungfu (如果opt下没有Kungfu文件夹,需要自己创建) 目录下
- ./Kungfu-version.AppImage --appimage-extract
# 例如 : ./Kungfu-3.0.7-linux-x86_64-latest.AppImage --appimage-extract
- cp -R squashfs-root/* /opt/Kungfu
- sudo chmod 777 -R /opt/Kungfu/resources/
# 需要把Kungfu/resources/下的文件权限改为777
Kungfu-version.zip 格式的安装包,安装命令为
将安装包放置于文件夹中,解压缩即可,例如 : 解压缩到 /home/Kungfu 文件夹中 (Kungfu为自己创建的文件夹)
- mkdir /home/Kungfu
- unzip Kungfu-3.0.7-linux-x86_64-latest.zip -d /home/Kungfu
卸载
安装新版本之前需要先卸载旧版本,不建议覆盖安装
对于安装的是.rpm包 的卸载命令 : yum remove Kungfu
对于安装的是.appimage安装包, 卸载直接删除 /opt/Kungfu 文件夹即可
对于安装的是.zip包,直接删除所在文件夹即可
注意
如果是大版本更新,建议卸载旧版本之后,删除kf_home以及同级目录的config文件夹
rm -rf ~/.config/Kungfu/home
rm -rf ~/.config/Kungfu/config
文件路径
安装完成后,执行路径
- ::
对于 .rpm 安装包 和 .appimage安装包的执行路径为 : cd /opt/Kungfu/resources/kfc
对于 .zip 安装包的执行路径为 : cd /解压缩所在文件夹/resources/kfc
KF_home资源目录(账户/行情信息/数据/key文件/日志文件/缓存等数据存放) 路径如下
cd ~/.config/Kungfu/home
日志存放 路径如下
cd ~/.config/Kungfu/home/logview/日期/
账户/行情/策略的添加信息存放路径
cd ~/.config/kungfu/home/runtime/db/system/etc/kungfu/live/config.db
功能说明
监控所有进程
在Kungfu CLI文件目录内,输入命令
$ ./kfc cli monit
注意
master进程默认关闭,需要手动开启master进程后,系统才能正常运行

界面左侧会显示系统内所有的进程,其中包括:
ARCHIVE : 归档进程
MASTER:主控进程
LEDGER:数据进程
CACHED : 缓存进程
DZXY : 斗转星移
schedule : 定时启停任务进程
MD:行情柜台进程
TD:交易柜台进程
Strat:策略进程
进程解释 :
归档进程 : 把KF_HOME 里runtime下面所有journal跟log,打包到 KF_HOME/archive 目录下,然后压缩
主控进程 : 程序主进程
数据进程 : 管理行情数据,交易数据等
缓存进程 : 管理行情数据,交易数据等数据缓存
斗转星移 : 为了不阻塞cli monit 的界面渲染,把性能消耗大的数据读取展示操作放在了单独的DZXY进程里,再通过进程通信把数据转到monit界面上
定时启停任务进程 : 管理所有定时任务
同时显示每一个进程对应的状态,通过上下键移动光标选择进程,选中后通过回车键可以启动或停止该进程;在界面右侧会显示进程的实时运行日志
master进程默认关闭,需要手动开启master进程后,系统才能正常运行
开启 master进程, ARCHIVE / LEDGER / CACHED / DZXY 会同步开启
注意
master进程默认关闭,需要手动开启master进程后,系统才能正常运行
开启 master进程, ARCHIVE / LEDGER / CACHED / DZXY 会同步开启
ARCHIVE 进程状态 “Stopped”是没关系的
其他进程必须是 “Running” 才可以启动 td , md 进程
td , md 进程状态为就绪 “Ready” 才可以打开策略/算子进程
需要先开启 master 进程(并且状态为 “Running” 或者是 “运行中”)之后,退出monit界面,再进行添加交易账户/行情源/策略/算子等操作
退出monit界面 : ctrl+c
添加账户
在Kungfu CLI文件目录内,输入命令行
注意
添加交易账户/行情源账户之前需要先开启master进程 ( ./kfc cli monit , 开启master进程)
$ ./kfc cli add
通过上下按键选择添加交易账户(td) / 行情(md) / 策略(strategy),然后选择柜台,目前支持sim模拟柜台,CTP期货柜台,CTP穿透测试柜台(穿透测试使用)以及XTP股票柜台,回车确定,然后输入对应的账户表单

注意
1.行情中同一柜台只能添加一个账户
2.sim的交易账户柜台(td),只需填写账户(随意填写)与撮合模式 ,行情源柜台(md)选择sim柜台后回车即可,无需填写信息
ctp交易柜台(TD)账户信息
字段 |
字段含义 |
---|---|
account_name |
账户别名(例如:ctp测试) |
account_id |
账户名称(例如:089270) |
password |
账户密码(例如:123456) |
broker_id |
期货券商代,码实盘由券商提供,simnow模拟盘填写 9999 |
auth_code |
穿透认证码,实盘由券商提供,simnow模拟盘填写 0000000000000000 |
product_info |
客户端名称,Kungfu |
app_id |
客户端识别号,实盘填写 TAURUS_Kungfu_2.0,simnow模拟盘填写 simnow_client_test |
td_ip |
交易ip (例:180.168.146.187) |
td_port |
交易端口 (例:10201) |
sync_external_order |
开启后则同步用户在其他交易软件的订单 |
recover_order_trade |
开启后,启动账户时将从柜台拉取本交易日的订单 |
ctp行情柜台(MD)信息
字段 |
字段含义 |
---|---|
account_id |
账户名称(例如:089270) |
password |
账户密码(例如:123456) |
broker_id |
实盘由期货券商提供. (如果账户为simnow的模拟账户填写 9999) |
md_ip |
行情ip (例:180.168.146.187) |
md_port |
行情端口 (例:10201) |
xtp交易柜台(TD)账户信息
字段 |
字段含义 |
---|---|
account_name |
账户别名(例如:xtp测试) |
account_id |
账户名称 |
password |
账户密码 |
software_key |
用户开发软件Key,券商提供 |
td_ip |
交易柜台IP地址 |
td_port |
交易柜台端口 |
client_id |
1~99任意数字,用于区分同一账户多点登陆 |
sync_external_order |
开启后则同步用户在其他交易软件的订单 |
recover_order_trade |
开启后,启动账户时将从柜台拉取本交易日的订单 |
xtp行情柜台(MD)信息
字段 |
字段含义 |
---|---|
account_id |
账户名称 |
password |
账户密码 |
md_ip |
行情柜台IP地址 |
md_port |
行情柜台端口 |
protocol |
接收行情协议 TCP或者UDP |
buffer_size |
设置缓冲区大小 |
client_id |
1~99任意数字,用于区分同一账户多点登陆 |
query_instruments |
是否查询query_instruments, 开启后会查询所有可交易标的, 流量太大频繁查询可能导致账号或ip被XTP拉黑 |
OKX交易柜台(TD)账户信息
字段 |
字段说明 |
---|---|
账户别名 |
账户备注 |
账号 |
账号 (名称随意) |
密码 |
OKX交易密码 |
Api key |
账户登录key |
密钥 |
账户登录密钥 |
是否同步外部订单 |
开启后,当用户交易账户进程开启时,其他交易软件的订单也将同步到功夫交易系统中,委托记录中“下单源”将显示“系统外” |
模拟盘交易 |
模拟账户登录需开启,实盘账户登录无需开启 |
OKX行情柜台(MD)信息
字段 |
字段含义 |
---|---|
开启Ticker推送 |
开启Ticker数据推送,可能会占用很大内存 |
开启Transaction推送 |
开启逐笔成交推送,可能会占用很大内存 |
开启费率推送 |
开启费率数据推送,可能会占用很大内存 |
BinanceFuture交易柜台(TD)账户信息
字段 |
字段说明 |
---|---|
账户id |
账户id(随意填写) |
api_key |
账户密钥 |
api_secret |
账户密匙 |
测试网 |
模拟账户登录需开启,实盘账户登录无需开启 |
BinanceFuture行情柜台(MD)信息
字段 |
字段含义 |
---|---|
开启Ticker推送 |
开启Ticker数据推送,可能会占用很大内存 |
开启Transaction推送 |
开启逐笔成交推送,可能会占用很大内存 |
开启费率推送 |
开启费率数据推送,可能会占用很大内存 |
添加策略
在Kungfu CLI文件目录内,输入命令
注意
添加策略之前需要先开启master进程 ( ./kfc cli monit , 开启master进程)
$ ./kfc cli add

选择 strategy 添加策略
strategy_id (需保证该策略ID唯一) : 输入策略id(不能与已有的策略id重复,不能带有下划线以及特殊符号)
strategy_path : 策略文件所在的本地路径(路径为绝对路径,比如 : /home/strategy/demo.py)
删除账户/行情/策略/算子信息
在Kungfu CLI文件目录内,输入命令
$ ./kfc cli remove
界面会显示当前系统内的所有交易账户(td),行情(md),策略(strategy),算子(operator),通过上下键移动光标,选中需要删除的,回车删除

更改已添加的账户/行情/策略信息
在Kungfu CLI文件目录内,输入命令
界面会显示当前系统内的所有交易账户(td)/行情(md)以及策略(strategy),通过上下键移动光标,选中需要更改的信息,回车确定.如果要更改某信息,比如地址,在到达地址选项的时候写入新地址后回车确定,如果不更改本信息,直接回车下一个
$ ./kfc cli update
展示已添加的账户/行情/策略信息
在Kungfu CLI文件目录内,输入命令
$ ./kfc cli list
添加算子插件-bar数据
注意
添加算子 operator-bar 之前,需要先添加想要使用的行情源
在选中标的时候,空格键选中标的,回车键确定选择标的完成
对于选中的标的再次点击空格键为取消选中
对于选中多个标的,可以通过 上下键与空格键配合,回车键确认选择完成
在Kungfu CLI文件目录内,输入命令add
$ ./kfc cli add
选择算子”operator”,点击回车

选择 “extension”算子插件,回车确认

目前官方封装好的插件只有一个bar数据
选择Bar bar,表示使用算子插件bar数据;回车确认

按照表单填写数据
字段 |
字段含义 |
---|---|
Select one type of source |
算子类型,选择 Bar |
id |
算子id,不允许重复,其他策略/算子调用该算子的标识 |
source |
选择行情源,如xtp、ctp、sim |
instruments |
选择标的,允许输入多个标的,使用逗号分隔;允许多选,多选请查看下方步骤 |
period |
计算周期,单位为秒,可看作计算结果推送间隔 |
单选标的:点击空格键,前方出现绿色按钮表示选中,再次点击空格键取消选中。 点击回车键确认选择标的完成

多选标的:与单选标的同理,回车确认好第一个标的后,通过上下键选择其他标的,然后空格键选中此标的,回车键确认选择标的完成

标的选择完毕,再次点击回车键确定,成功创建算子插件bar数据
添加算子文件
在Kungfu CLI文件目录内,输入命令add
$ ./kfc cli add
选择算子”operator”,点击回车

选择 “file”算子文件,回车确认

按照表单填写数据
字段 |
字段含义 |
---|---|
operator_id |
输入算子id,不允许重复,其他策略/算子调用该算子的标识 |
remarks |
备注 |
file_path |
输入算子文件路径 |
算子文件路径输入完毕,点击回车确认,成功创建算子文件
监控单进程
在Kungfu CLI文件目录内,输入命令
$ ./kfc cli monit -l
界面显示系统内所有的账户进程以及策略进程,通过上下键移动光标选择需要监控的进程,回车确认

当选中账户进程,界面会显示该账户的详细情况,在界面的左上方会显示账户的行情进程状态以及交易进程状态,通过上下键移动光标,回车键进行启动和关闭进程

Assets 窗口,显示当前账户资金盈亏信息
Positions 窗口,显示当前账户的持仓信息
Order Records 窗口,显示该账户的委托记录
Trade Records 窗口,显示该账户的成交记录
Cancel All Order:撤单按钮,选中撤单按钮后,通过回车键可以对该账户下所有未完成委托进行撤单操作
当选中策略进程,界面会显示该策略的详细情况,在界面的左上方会显示策略的运行情况,可以通过回车键进行启动和关闭进程

Assets 窗口,显示当前策略资金盈亏信息
Positions 窗口,显示当前策略的持仓信息
Order Records 窗口,显示该策略的委托记录
Trade Records 窗口,显示该策略的成交记录
Cancel All Order:撤单按钮,选中撤单按钮后,通过回车键可以对该策略下所有未完成委托进行撤单操作
关闭功夫进程
在Kungfu CLI文件目录内,输入命令
$ ./kfc cli shutdown
定时启停
开启定时启停任务
注意
定时启停默认是关闭的,使用需要先开启
system 主控进程只能重启 , tdmd/strategy/operator 可以设置开启与停止
添加任务之后需要重启schedule进程
如果要 system/td/md/strategy/operator 按顺序启动,每个之间时间间隔60s左右
$ ./kfc cli schedule active

关闭定时启停任务
$ ./kfc cli schedule inactive

添加定时启停任务
$ ./kfc cli schedule add


更改定时启停任务
$ ./kfc cli schedule update

删除定时启停任务
$ ./kfc cli schedule delete

查看定时启停任务
$ ./kfc cli schedule show

全局设置
在Kungfu CLI文件目录内,输入命令
$ ./kfc cli config

system : 系统设置
performance : 性能设置
strategy : 使用本地python
currency : 币种展示
trade : 交易设置
update : 版本更新
系统设置

Update homeDir : 功夫将会以选择的 Home 目录作为系统缓存数据的根目录, 目录路径不可以包含中文, 且路径不建议太长 (过长会导致进程无法启动), 修改后重启功夫生效
Update logLevel : 全局日志设置 (日志有6个级别,日志文件只会记录等于和高于设置级别的日志内容。日志级别从低到高分别为:)
trace
debug
info
warning
error
critical
Update logFrame : 全局日志输出Frame信息 (对系统内所有日志生效, 开启后会在 log 上附加当前 frame 的信息, 修改后重启功夫生效)
Update language : 选择语言,修改后重启功夫生效
Update bypassArchive : 跳过归档 (仅删除上个交易日留下的journal与log文件, 不再压缩打包, 归档后无法恢复之前的内存数据,会加快启动速度)
Update bypassArchiveDev : 跳过归档-开发者模式(非开发者请勿开启此选项开启后, 每次启动客户端时不进行任何归档操作, 保留所有 journal 和 log 文件, 帮助开发者更快地使用诊断工具排查问题, 重启后生效。 当普通跳过归档与开发者跳过归档设置同时开启时, 开发者模式跳过归档功能优先生效)
Update verifyLocation : 是否开启location_uid校验
Update bypassCached : 纯易筋经内存数据库模式(在此模式下, 交易数据不在会落地到本地关系数据库内, 仅会在内存数据库中保留, 应对如作为交易总线等特殊场景, 除非明确知道风险, 请勿打开, 重启后生效)
注意
设置均重启后生效
性能设置

Update rocket : 开启极速模式(开启极速模式会极大的降低系统延迟 (只有当 CPU 核数大于 4 时才能开启) , 并会使 CPU 使用效率达到100%, 重启后生效)
Update bypassAccounting : 跳过UI进程计算(UI 进程不再处理计算逻辑, 完全通过计算进程更新数据, 减轻 UI 进程性能占用, 重启后生效)
Update bypassTradingData : 纯监控模式(该模式下仅可监控进程运行状态, UI 进行性能占用达到最低, 重启后生效)
Update bypassRefreshBook : 跳过持仓行情订阅(打开后, 不再默认订阅交易账户持仓的行情更新, 浮动盈亏以及市值相关字段使用开仓均价计算, 开启后可减轻机器性能负担, 重启后生效)
Update lowMemory : 低内存模式(柜台进程定期清理维护的交易信息缓存, 以减少内存占用, 应对特殊场景, 可能造成前端展示信息错误, 除非明确知道风险, 请勿打开, 开启后重启柜台进程生效)
注意
设置均重启后生效
使用本地python
当要使用功夫的python中没有的模块,可以使用本地python,下载安装模块到本地.本地Python版本必须为 3.9.x

使用本地python并下载 .whl 依赖 (不再使用的时候选择 no)
填写本地python路径
下载依赖 : pip install /opt/Kungfu/resources/app/dist/public/python/Kungfu-xxx.whl
注意
对于2.4版本 (Kungfu-1.0.x-win-x64-latest.exe)、2.5版本(Kungfu-1.1.x-win-x64-latest.exe)、2.6版本(Kungfu-2.6.x-win-x64-latest.exe),whl文件路径为 : {kungfu安装目录}\resources\app\dist\public\python\kungfu-x.x.x-cp39-cp39-win_amd64.whl
对于2.7版本(Kungfu-2.7.x-win-x64-latest.exe)、3.0版本(Kungfu-3.0.x-win-x64-latest.exe),whl文件路径为 : {kungfu安装目录}\resources\kfc\kungfu-wheel\kungfu-x.x.x-cp39-cp39-win_amd64.whl
币种

Update instrumentCurrency :币种展示(打开时,会在持仓面板的标的列展示标的币种)
交易设置

Update bypassSyncPosition :跳过每分钟一次的持仓同步(开启后, 不再进行每分钟一次的持仓同步, 仅在启动交易账户时拉取最新持仓(每分钟一次的持仓同步有概率会因为在途成交回报问题导致持仓重复计算, 开启该选项后仅在功夫本地计算持仓, 但如果涉及功夫系统外委托对持仓造成的影响, 则不会更新到本地), 重启后生效)
Update notAutoRestartTd :交易进程断开不再自动重启(交易进程断开时是否自动重启, 如果关闭, 则当交易进程出错后, 不会尝试重连三次, 如果打开, 则会重启三次;在重启过程中(重启开始到交易进程就绪), 策略内查询到的持仓会为0, 需要在策略内通过 on_deregister, on_broker_state_change 这两个方法来判断柜台状态是否断开/重启就绪)
版本更新

Update isCheckVersion : 检测更新(启动功夫时, 是否检测更新)
获取帮助
在Kungfu CLI文件夹内,输入命令行
$ ./kfc cli -h
界面会显示Kungfu CLI所有支持的命令以及相应的解释

命令解释
命令 |
使用 |
解释 |
-V, --version |
./kfc cli --version |
查看软件版本 |
-h, --help |
./kfc cli --help |
获取所有支持的命令以及相应的解释 |
monit |
./kfc cli monit |
进入主控面板 |
list |
./kfc cli list |
账户/行情/策略/算子信息展示 |
add |
./kfc cli add |
添加账户/行情/策略/算子信息 |
update |
./kfc cli update |
修改账户/行情/策略/算子信息 |
remove |
./kfc cli remove |
删除账户/行情/策略/算子信息 |
export |
./kfc cli export |
导出数据 |
shutdown |
./kfc cli shutdown |
关闭软件 |
config |
./kfc cli config |
打开全局设置 |
showConfig |
./kfc cli showConfig |
全局设置展示 |
clearLog |
./kfc cli clearLog |
清理日志 |
clearJournal |
./kfc cli clearJournal |
清理journal数据 |
clearDB |
./kfc cli clearDB |
清理db数据 |
showdir home |
./kfc cli showdir home |
功夫资源目录位置查看 |
showdir log |
./kfc cli showdir log |
功夫日志文件位置查看 |
schedule |
./kfc cli schedule |
定时器任务 |
窗口字段
Assets 窗口
字段 |
字段含义 |
UnRealizedPnl |
未实现盈亏 |
Avail |
可用资金 |
MarketValue |
市值(股票) |
Margin |
保证金(期货) |
Positions 窗口
字段 |
字段含义 |
Ticker |
标的代码 |
Dir |
仓位状态(多空) |
Yesterday |
昨仓 |
Today |
今仓 |
Total |
总持仓 |
Open |
开仓均价 |
Last |
最新价 |
UnrealPnl |
未实现盈亏 |
Order Records 窗口
字段 |
字段含义 |
UpdateTime |
更新时间 |
Ticker |
标的代码 |
Side |
买卖方向 |
Offset |
开平方向 |
Price |
委托价格 |
Filled/Not |
已完成/全部 |
Status |
委托状态 |
StratId(AccountId) |
发出委托的策略 or 账户 |
System LA |
系统延迟 |
Network LA |
网络延迟 |
Trade Records 窗口
字段 |
字段含义 |
UpdateTime |
更新时间 |
Ticker |
标的代码 |
Side |
买卖方向 |
Offset |
开平方向 |
Price |
成交价格 |
Volume |
数量 |
StratId(AccountId) |
发出委托的策略 or 账户 |
Trade LA |
成交延迟 |