客户端使用手册 ===================== 账户维护 -------- 在日常使用过程中,用户可以根据实际需要,在账户模块对系统内的账户进行维护,用户可以修改已有的账户信息,或者删除不需要的账户。 .. image:: _images/guide-app-account-panel.png :width: 1500px :height: 1000px 账户设置 ~~~~~~~~~ 用户可以对已有账户的信息(除账户名外)进行修改,具体的点击账户的设置按钮后会有该账户的信息表单,修改完成后保存;如果账户的交易柜台连接处于开启状态,修改成功后,需要手动重启该账户的交易连接后,修改才能生效。 .. image:: _images/guide-app-td-setting.png :width: 1500px :height: 1000px 账户删除 ~~~~~~~~~ 在交易账户列表,点击删除按钮可以删除不需要的交易账户,但是,在删除交易账户之前,需要保证: - 需要删除的交易账户的交易连接已经关闭 - 如果被删除的交易账户是该柜台的行情接收账户,需要关闭该柜台的行情连接 如果被删除的账户时该柜台的行情账户,系统会自动选择该柜台的其他账户作为行情源账户。需要注意的是,删除账户会把与该账户有关的所有信息都删除,其中包括账户资金、账户持仓、账户委托记录、账户成交记录,账户交易日志。 账户信息 -------- 账户日志 ~~~~~~~~~ 用户可以点击账户后面的运行日志按钮,在新的窗口打开账户的实时运行日志,方便用户实时地监控账户的运行情况 .. image:: _images/guide-app-td-log.png :width: 1500px :height: 1000px 账户持仓 ~~~~~~~~~ 在交易账户列表中,选中需要查看持仓的账户后,在持仓模块就会显示该账户的持仓信息,其中包括: - 代码:持仓标的的代码 - 多空:持仓的方向 - 昨:该标的的昨仓 - 今:该标的的今仓 - 总:该标的的总持仓 用户可以通过搜索标的代码来定位自己需要查看的标的持仓,可以通过点击导出按钮,导出账户的持仓明细 说明:账户的持仓信息会在启动账户的交易进程的时候,与该账户在交易柜台的持仓信息进行同步,同步完成以后,系统内会维护该账户的持仓信息,如果该账户在系统外进行了交易,则账户在系统内的持仓与账户在交易柜台的真实持仓会不一样。 账户委托 ~~~~~~~~~ 在交易账户列表中,选中需要查看委托记录的账户后,在委托模块就可以看到该账户的委托记录。 在委托模块中,默认显示的是该账户的未完成委托;点击当日委托按钮后,会显示该账户当日所有的委托记录; 用户可以通过点击导出按钮,导出该账户某一时间段内的历史委托记录; - 下单时间:触发该笔委托的时间 - 代码:该笔委托的标的代码 - 买卖:该笔委托的买卖方向 - 开平:该笔委托对应的仓位开平方向 - 委托价:该笔委托对应的委托价格 - 已成交/全部:该笔委托已成交的数量与该笔委托的委托总量的比 - 订单状态:该笔委托当前的状态 - 策略:触发该笔委托的策略名称 用户也可以通过搜索关键字的方式定位自己需要的委托记录,搜索的对象为委托记录里面的: - 代码名称 - 策略名称 - OrderID(系统维护的订单编号,在列表中没显示) 功夫量化交易系统支持用户对未完成委托进行撤单操作,点击全部撤单按钮后,系统会对当前该账户的所有未完成订单进行撤单操作; .. list-table:: 委托订单状态对应表 :header-rows: 1 * - 字段 - 字段说明 * - 等待 - 委托订单请求已发送,等待柜台返回信息,非最终状态 * - 错误 - 委托订单请求失败,最终状态 * - 全部成交 - 委托订单请求已全部成交,最终状态 * - 全部撤销 - 委托订单请求已全部撤销,最终状态 * - 部分撤销部分成交 - 委托订单部分撤销部分成交,最终状态 账户成交 ~~~~~~~~~ 在交易账户列表中,选中需要查看当日成交记录的账户后,页面右下方就会显示该账户的当日成交记录。 在当日成交记录中,我们展示了每一笔成交记录的: - 成交时间:该笔交易完成的时间 - 代码:该笔交易的标的代码 - 买卖:该笔交易的买卖方向 - 开平:该笔交易对应的仓位开平方向 - 成交价:该笔交易标的的成交价格 - 成交量:该笔交易标的的成交数量 - 策略:触发该笔交易的策略名称 用户可以通过点击导出按钮,导出某一时间段内的该账户的成交记录; 用户也可以通过搜索关键字的方式定位自己需要的成交记录,搜索的对象为成交记录里面的: - 标的代码 - 策略 账户盈亏 ~~~~~~~~~ 在交易账户列表中,选中需要查看盈亏的账户后,收益曲线就显示该账户的实时盈亏情况 收益曲线有两种表现形式:日线、分钟线 - 日线会显示该账户添加到系统后的整体盈亏走势以及累计收益 - 分钟线显示该账户当天的整体盈亏走势以及当日收益 切换行情源帐号 ~~~~~~~~~~~~~~~~~~~ 行情进程的原理是绑定柜台下账户,从账户信息的的行情地址中获取行情,每个柜台只需绑定一个账户,可以通过切换不同的账户来作为行情源,从而接收期望的行情信息。 .. image:: _images/guide-app-switch-md.png :width: 1500px :height: 1000px 柜台下账户对应字段 ~~~~~~~~~~~~~~~~~~~ .. list-table:: 添加/设置CTP交易柜台账户字段 :header-rows: 1 :width: 1000px * - 字段 - 字段含义 * - account_name - 账户别名(例如:ctp测试) * - account_id - 账户名称(例如:089270) * - password - 账户密码(例如:123456) * - broker_id - 券商代码(例如:9999) * - auth_code - 授权码,实盘由券商提供,模拟盘为 0000000000000000 * - product_info - 软件信息,KUNGFU * - app_id - 申请授权码的时候提交的id,实盘填写 TAURUS_KUNGFU_2.0,模拟盘填写 simnow_client_test * - broker_marginRatio - 开启请求对应Broker保证金比例,不开启则使用交易所默认保证金比例 * - td_uri - 交易柜台地址 (以 “tcp://“ 开头)(例:tcp://180.168.146.187:11***) * - account_code - 账户授权码 (官网上方–许可购买) .. list-table:: 添加/设置CTP行情柜台账户字段 :header-rows: 1 :width: 1000px * - 字段 - 字段含义 * - account_id - 账户名称(例如:089270) * - password - 账户密码(例如:123456) * - broker_id - 券商代码(例如:9999) * - td_uri - 交易柜台地址 (以 “tcp://“ 开头)(例:tcp://180.168.146.187:11***) .. list-table:: 添加/设置XTP交易柜台账户字段 :header-rows: 1 :width: 1000px * - 字段 - 字段含义 * - account_name - 账户别名(例如:ctp测试) * - account_id - 账户名称 * - password - 账户密码 * - software_key - 用户开发软件Key * - td_ip - 交易柜台IP地址 * - td_port - 交易柜台端口 * - client_id - 1~99任意数字,用于区分同一账户多点登陆 * - account_code - 账户授权码 (官网上方–许可购买) .. list-table:: 添加/设置XTP行情柜台账户字段 :header-rows: 1 :width: 1000px * - 字段 - 字段含义 * - account_id - 账户名称 * - password - 账户密码 * - md_ip - 行情柜台IP地址 * - md_port - 行情柜台端口 * - protocol - 接收行情协议 TCP或者UDP * - buffer_size - 设置采用UDP协议时的接受缓冲区大小 * - client_id - 1~99任意数字,用于区分同一账户多点登陆 策略维护 ------------- 在KungFu交易系统中,策略模块相当于系统的策略池,用户可以根据实际需要,在策略模块中对已有策略进行编辑修改和删除,同时可以查看到每一个策略实时的持仓情况、委托情况、成交情况、盈亏情况以及交易日志。 .. image:: _images/guide-app-strategy-maintenance.png :width: 1500px :height: 1000px 更换策略文件 ~~~~~~~~~~~~~ 在实际使用中,如果用户需要修改策略的本地文件路径,可以点击策略右侧相应的设置按钮,重新绑定新的策略文件。 如果策略正在运行,需要重启策略后,策略新绑定的文件路径才能生效。 编辑策略代码 ~~~~~~~~~~~~~ 在KungFu交易系统中,内嵌了IDE,用户可以在KungFu系统中编写本地策略,点击策略右侧相应的编辑按钮,会有策略编辑IDE弹窗,在弹窗内,用户可以对策略绑定的本地文件进行编辑,在KungFu内嵌的IDE中,支持 - 创建新的文件 - 创建新的文件夹 - 编译已有文件内容 - 重命名已有文件 - 设置缩进方式(利用空格键还是利用Tab键进行缩进)、缩进距离(一个缩进是两个空格还是四个空格) .. image:: _images/guide-app-strategy-edit.png :width: 1500px :height: 1000px 删除策略 ~~~~~~~~~~~~~ 在删除不需要的策略之前,需要保证策略处于关闭状态,需要注意的是,策略删除成功后,系统会将该策略的所有相关信息都删除,其中包括策略持仓信息、策略委托信息、策略成交信息、策略盈亏信息、策略交易日志信息。 策略信息 -------- 策略持仓 ~~~~~~~~~ 在策略列表中,选中需要查看持仓的策略后,在持仓模块就会显示该策略的持仓信息,其中包括: - 代码:持仓标的的代码 - 多空:持仓的方向 - 昨:该标的的昨仓 - 今:该标的的今仓 - 总:该标的的总持仓 用户可以通过搜索标的代码来定位自己需要查看的标的持仓,可以通过点击导出按钮,导出策略的持仓明细; 用户可以通过搜索标的代码来定位自己需要查看的的标的持仓; 策略委托 ~~~~~~~~~ 在策略列表中,选中需要查看委托记录的策略后,在委托板块会显示该策略的委托记录。 在委托模块中,默认显示的是该策略的未完成委托;点击当日委托按钮后,会显示该策略当日所有的委托记录; 用户可以通过点击导出按钮,导出该策略某一时间段内的历史委托记录; 在委托记录列表中,我们展示了每一笔委托记录的: - 下单时间:触发该笔委托的时间 - 代码:该笔委托的标的代码 - 买卖:该笔委托的买卖方向 - 开平:该笔委托对应的仓位开平方向 - 委托价:该笔委托对应的委托价格 - 已成交/全部:该笔委托已成交的数量与该笔委托的委托总量的比 - 订单状态:该笔委托当前的状态 - 账户:显示执行该委托的交易账户名称 用户也可以通过搜索关键字的方式定位自己需要的委托记录,搜索的对象为委托记录里面的: - 代码名称 - 账户名称 - OrderID(系统维护的订单编号,在列表中没显示) 功夫量化交易系统支持用户对未完成委托进行撤单操作,点击全部撤单按钮后,系统会对当前该策略的所有未完成订单进行撤单操作。 策略成交 ~~~~~~~~~ 在策略列表中,选中需要查看当日成交记录的策略后,页面右下方就会显示该策略的当日成交记录。 在当日成交记录中,我们展示了每一笔成交记录的: 在成交记录列表中,我们展示了每一笔成交记录的: - 成交时间:该笔交易完成的时间 - 代码:该笔交易的标的代码 - 买卖:该笔交易的买卖方向 - 开平:该笔交易对应的仓位开平方向 - 成交价:该笔交易的标的成交价格 - 成交量:该笔交易的标的成交量 - 账户:执行该笔成交的交易账户名 用户也可以通过搜索关键字的方式定位自己需要的成交记录,搜索的对象为成交记录里面的: - 标的代码 - 账户 策略盈亏 ~~~~~~~~~ 在策略列表中,选中需要查看盈亏的策略后,收益曲线就会显示该策略的实时盈亏情况 收益曲线有两种表现形式:日线、分钟线 - 日线会显示该策略添加到系统后的整体盈亏走势以及累计收益 - 分钟线显示该策略当天的整体盈亏走势以及当日收益 交易日志 ~~~~~~~~~ 交易日志模块会显示策略列表中选中的策略的交易日志详情,如果该策略正在运行,交易日志也会实时更新,用户勾选跟踪至底部后,交易日志会一直滚动显示最新的日志信息; 用户可以根据搜索关键字的方式来筛选需要查看的交易日志,如果策略的交易日志过多,用户也可以点击清空按钮,清空前端显示的交易日志; .. image:: _images/guide-app-strategy-log.png :width: 1500px :height: 1000px 状态监控 -------- 账户监控 ~~~~~~~~~ 为了方便用户实时监控系统内账户的交易连接状态以及柜台的行情连接状态,在系统页面的右下角设置了账户状态监控浮窗,用户可以通过浮窗按钮的字体颜色来判别当前系统的状态,具体规则如下: - 当所有连接都就绪时,按钮文字为绿色 - 当有连接未打开,其他连接都为就绪时,按钮文字为灰色 - 当有连接状态处于异常时,按钮文字会显示为橙色或者红色 用户还可以在状态浮窗中启停账户的交易连接以及柜台的行情连接 .. image:: _images/guide-app-account-monitor.png :width: 1500px :height: 1000px 进程监控 ~~~~~~~~~ 为了方便用户可以实时地监控功夫交易系统的主控进程(master)以及数据进程(watcher)的状态,在系统页面的右下角有主进程状态监控浮窗,点击展开浮窗后,可以看到主控进程和数据进程的实时状态,让用户更加全面掌握系统的状态; .. image:: _images/guide-app-process-monitor.png :width: 1500px :height: 1000px 如果发现进程出现报错,用户可以打开进程的运行日志,通过详细的运行日志,定位进程报错的原因; .. image:: _images/guide-app-process-log.png :width: 1500px :height: 1000px 交易功能 -------- 订阅 K 线行情(BAR) ~~~~~~~~~~~~~~~~~~~~~~ 功夫交易系统支持订阅k线行情(BAR),开启订阅K线行情功能,需要进入功夫的系 统设置模块,选择BAR行情柜台、设置BAR频率后,BAR频率可以选择:30s、1min、2min、3min、4min、5min、 10min以及15min,设置完成后,即可打开BAR数据进程开关; .. image:: _images/guide-app-BAR-parameter-settings.png :width: 1500px :height: 1000px 设置入口 .. image:: _images/guide-app-bar-setting.png :width: 1500px :height: 1000px BAR数据进程设置 完成BAR数据进程的设置以及开启后,即可在策略内添加需要订阅需要BAR行情的标的: :: # 订阅需要BAR行情的标的 def pre_start(context) context.subscribe("bar", tickers, EXCHANGE) 然后即可通过on_bar定义策略收到BAR行情以后的行为: :: # 收到BAR行情以后,打印BAR行情信息 def on_bar(context,bar) context.log.info("[on_bar] {}".format(bar)) 系统会根据预设的BAR频率,以及策略订阅的标的列表,向策略推送相应的BAR行情,BAR的数据结构详情可以查看功夫API文档。 系统设置 -------- 点击Kungfu—-Setting按钮,即可打开功夫的系统设置弹窗 .. image:: _images/guide-app-settings.png :width: 1500px :height: 1000px .. image:: _images/guide-app-settings-2.png :width: 1500px :height: 1000px 性能设置 ~~~~~~~~~~~~ .. image:: _images/guide-app-performance-settings.png :width: 1500px :height: 1000px 在性能设置中,用户可以开启极速模式。 策略使用本地Python环境设置 ~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. image:: _images/guide-app-python-setting.png :width: 1500px :height: 1000px kungfu自带Python中,会有部分常用模块,如果使用模块kungfu中没有,可以使用本地Python环境: - 选择本地Python路径 : 找到本地Python路径, 选择pythonw.exe - 使用本地Python :打开whl文件夹, 然后打开Python文件夹, 在Python文件夹中打开cmd, pip install kungfu-2.3.8-py3-none-any.whl - 注意 : 本地Python的版本为 3.7.9 , 否则会报错 日志级别设置 ~~~~~~~~~~~~ .. image:: _images/guide-app-log-level.png :width: 1500px :height: 1000px 在日志界别设置中,用户可以设置系统显示的最低日志界别,日志级别从低到高分别为: - TRACE - DEBUG - INFO - WARN - ERROR - CRITICAL 例如将日志级别设置为INFO,则系统将不会显示日志级别为TRACE以及DEBUG的日志信息,设置完日志级别后,需要重启进程,设置才能生效,主进程(ledger&master)的日志级别需要重启系统设置才可生效 策略编辑设置 ~~~~~~~~~~~~ .. image:: _images/guide-app-strategy-editor-settings.png :width: 1500px :height: 1000px 在策略编辑器设置中,用户可以设置KungFu策略编辑器的: - 缩进类别:使用“TAB”键还是”Space”键作为缩进按钮 - 缩进大小:选择一个缩进的距离,可以选择两个空格或者四个空格