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进程后,系统才能正常运行

_images/linux_monit.png

界面左侧会显示系统内所有的进程,其中包括:

  • 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股票柜台,回车确定,然后输入对应的账户表单

_images/添加账户1_cli.png

注意

  • 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
_images/添加账户1_cli.png

选择 strategy 添加策略

  • strategy_id (需保证该策略ID唯一) : 输入策略id(不能与已有的策略id重复,不能带有下划线以及特殊符号)

  • strategy_path : 策略文件所在的本地路径(路径为绝对路径,比如 : /home/strategy/demo.py)


删除账户/行情/策略/算子信息

在Kungfu CLI文件目录内,输入命令

$ ./kfc cli remove

界面会显示当前系统内的所有交易账户(td),行情(md),策略(strategy),算子(operator),通过上下键移动光标,选中需要删除的,回车删除

_images/删除账户_策略_cli.png

更改已添加的账户/行情/策略信息

在Kungfu CLI文件目录内,输入命令

界面会显示当前系统内的所有交易账户(td)/行情(md)以及策略(strategy),通过上下键移动光标,选中需要更改的信息,回车确定.如果要更改某信息,比如地址,在到达地址选项的时候写入新地址后回车确定,如果不更改本信息,直接回车下一个

$ ./kfc cli update

展示已添加的账户/行情/策略信息

在Kungfu CLI文件目录内,输入命令

$ ./kfc cli list

添加算子插件-bar数据

注意

  • 添加算子 operator-bar 之前,需要先添加想要使用的行情源

  • 在选中标的时候,空格键选中标的,回车键确定选择标的完成

  • 对于选中的标的再次点击空格键为取消选中

  • 对于选中多个标的,可以通过 上下键与空格键配合,回车键确认选择完成

  1. 在Kungfu CLI文件目录内,输入命令add

$ ./kfc cli add
  1. 选择算子”operator”,点击回车

_images/linux-添加算子选择operator.png
  1. 选择 “extension”算子插件,回车确认

_images/linux添加算子-2-5.png
  1. 目前官方封装好的插件只有一个bar数据

选择Bar bar,表示使用算子插件bar数据;回车确认

_images/添加算子插件-bar.png
  1. 按照表单填写数据

字段

字段含义

Select one type of source

算子类型,选择 Bar

id

算子id,不允许重复,其他策略/算子调用该算子的标识

source

选择行情源,如xtp、ctp、sim

instruments

选择标的,允许输入多个标的,使用逗号分隔;允许多选,多选请查看下方步骤

period

计算周期,单位为秒,可看作计算结果推送间隔

单选标的:点击空格键,前方出现绿色按钮表示选中,再次点击空格键取消选中。 点击回车键确认选择标的完成

_images/添加算子插件-单选.png

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

_images/添加算子插件-多选.png
  1. 标的选择完毕,再次点击回车键确定,成功创建算子插件bar数据


添加算子文件

  1. 在Kungfu CLI文件目录内,输入命令add

$ ./kfc cli add
  1. 选择算子”operator”,点击回车

_images/linux-添加算子选择operator.png
  1. 选择 “file”算子文件,回车确认

_images/linux添加算子-选择file文件.png
  1. 按照表单填写数据

字段

字段含义

operator_id

输入算子id,不允许重复,其他策略/算子调用该算子的标识

remarks

备注

file_path

输入算子文件路径

  1. 算子文件路径输入完毕,点击回车确认,成功创建算子文件


监控单进程

在Kungfu CLI文件目录内,输入命令

$ ./kfc cli monit -l

界面显示系统内所有的账户进程以及策略进程,通过上下键移动光标选择需要监控的进程,回车确认

_images/监控单进程_cli.png

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

_images/账户详情_cli.png
  • Assets 窗口,显示当前账户资金盈亏信息

  • Positions 窗口,显示当前账户的持仓信息

  • Order Records 窗口,显示该账户的委托记录

  • Trade Records 窗口,显示该账户的成交记录

  • Cancel All Order:撤单按钮,选中撤单按钮后,通过回车键可以对该账户下所有未完成委托进行撤单操作

当选中策略进程,界面会显示该策略的详细情况,在界面的左上方会显示策略的运行情况,可以通过回车键进行启动和关闭进程

_images/策略详情_cli.png
  • 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
_images/开启启停_cli.png

关闭定时启停任务

$ ./kfc cli schedule  inactive
_images/关闭启停_cli.png

添加定时启停任务

$ ./kfc cli schedule  add
_images/添加启停_cli.png _images/添加启停2_cli.png

更改定时启停任务

$ ./kfc cli schedule  update
_images/更改启停任务_cli.png

删除定时启停任务

$ ./kfc cli schedule  delete
_images/删除启停任务_cli.png

查看定时启停任务

$ ./kfc cli schedule  show
_images/启停任务展示_cli.png

全局设置

在Kungfu CLI文件目录内,输入命令

$ ./kfc cli config
_images/config-30.png
  • system : 系统设置

  • performance : 性能设置

  • strategy : 使用本地python

  • currency : 币种展示

  • trade : 交易设置

  • update : 版本更新

系统设置

_images/config-system-30.png
  • 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 : 纯易筋经内存数据库模式(在此模式下, 交易数据不在会落地到本地关系数据库内, 仅会在内存数据库中保留, 应对如作为交易总线等特殊场景, 除非明确知道风险, 请勿打开, 重启后生效)

注意

  • 设置均重启后生效

性能设置

_images/config-performance-30.png
  • 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

_images/本地python_cli.png
  • 使用本地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

币种

_images/config-currency-30.png
  • Update instrumentCurrency :币种展示(打开时,会在持仓面板的标的列展示标的币种)

交易设置

_images/config-trade-30.png
  • Update bypassSyncPosition :跳过每分钟一次的持仓同步(开启后, 不再进行每分钟一次的持仓同步, 仅在启动交易账户时拉取最新持仓(每分钟一次的持仓同步有概率会因为在途成交回报问题导致持仓重复计算, 开启该选项后仅在功夫本地计算持仓, 但如果涉及功夫系统外委托对持仓造成的影响, 则不会更新到本地), 重启后生效)

  • Update notAutoRestartTd :交易进程断开不再自动重启(交易进程断开时是否自动重启, 如果关闭, 则当交易进程出错后, 不会尝试重连三次, 如果打开, 则会重启三次;在重启过程中(重启开始到交易进程就绪), 策略内查询到的持仓会为0, 需要在策略内通过 on_deregister, on_broker_state_change 这两个方法来判断柜台状态是否断开/重启就绪)

版本更新

_images/config-trade-30.png
  • Update isCheckVersion : 检测更新(启动功夫时, 是否检测更新)

获取帮助

在Kungfu CLI文件夹内,输入命令行

$ ./kfc cli -h

界面会显示Kungfu CLI所有支持的命令以及相应的解释

_images/获取帮助_cli.png

命令解释

命令

使用

解释

-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

成交延迟