实盘
「实盘」区别于「回测」,指真正与交易所交互(获取行情、查询持仓、下单撤单等)的策略程序实例。连接交易所生产环境的是实盘,连接交易所模拟环境(很多交易所提供测试环境)的同样是实盘。
创建实盘
在实盘创建页面选择运行策略、托管主机和交易所后创建,需要事先准备好三样东西:
实盘按小时计费,账户余额不足时无法启动,见实盘计费与充值。
实盘监控
在实盘管理页面,运行中的实盘右侧操作栏可以点击「监控」开启实盘监控。开启后,实盘不是因手动操作而退出时,平台会向账号绑定的邮箱发送通知。
实盘数据库
以实盘ID123456为例,它的数据库文件位于所属托管者工作目录下的logs/storage/123456/123456.db3(SQLite格式),包含以下表:
- chart:图表数据。
- cfg:状态栏内容、图表配置等最新状态。
- kvdb:
_G()函数持久化保存的数据。 - log:实盘日志。
- profit:收益数据。
同一目录下还有策略进程的标准输出stdout.log和标准错误stderr.log。
本章内容
分组:实盘和策略的分组管理。实盘围观:公开展示实盘,或生成私有围观链接。实盘消息推送:把日志推送到手机App、邮箱或WebHook。实盘报错、异常退出的常见原因。
让他人查看、操作部分实盘可以使用子账号。
分组
在「实盘」页面和「策略库」页面点击右侧的分组管理按钮,可以给实盘、策略分组管理,分组名称可以自定义。
例如给策略分组时,可以把模板类库分为一组、JavaScript语言的策略分为一组、测试用策略分为一组。
-
策略分组

-
实盘分组

实盘围观
在发明者量化交易平台实盘页面的实盘列表中点击「公开」按钮即可公开展示当前行的实盘。
实盘围观目前支持两种方式:
- 1、在发明者量化交易平台的实盘围观页面公开展示实盘。点击「公开」按钮后选择公开分享即可。
- 2、创建实盘围观私有链接。
点击「公开」按钮后选择内部分享,设置有效期后即可生成私有链接,用于访问该策略实盘的私有围观页面。
实盘消息推送
推送设置页面中可以开启消息推送功能。

- 移动端(App)
开启移动端App推送后,实盘程序发出的推送消息将发送至发明者量化移动端App。 - 邮箱
开启邮箱推送需先验证邮箱,验证通过后即可接收实盘程序发出的推送消息。 - WebHook
开启WebHook推送后,可自定义推送地址,例如设置为:http://abc.com/push.php?data={body}。
当实盘程序发出推送消息时,平台会向所设置的地址http://abc.com/push.php?data={body}发送一个请求(仅支持GET方法),推送的消息内容将替换到{body}位置。
策略中推送消息
- JavaScript/TypeScript/Python/Rust语言
在策略代码中,可使用Log()函数以及其它能在日志区域输出日志信息的函数,例如:exchange.CreateOrder()、exchange.CancelOrder()等。
为这些函数传入一个附带参数"@"(即在必要参数之外再增加一个附带参数),例如:Log("This is a push message", "@"),即可将这条输出的日志信息进行推送,平台会根据「推送设置」进行消息推送。Rust语言中对应Log!宏,用法相同:Log!("This is a push message", "@");。 - PINE语言/My语言
在PINE语言/My语言策略所集成的「交易类库」参数中,可开启交易日志推送,触发交易动作后将自动进行推送。 - Blockly可视化
在「工具」一栏中选择消息推送模块,即可实现指定信息的推送。
消息推送存在频率限制,具体规则如下:在实盘的每个20秒周期内,仅保留并推送最后一条消息,其余消息将被过滤,不予推送。
实盘报错、异常退出的常见原因
实盘无法启动
- 没有在线的托管者
实盘所选的托管者离线时实盘无法启动。在托管者页面确认托管者在线,或换一个在线的托管者。 - 账户余额不足
启动实盘需要预付第一个小时的费用,余额不足时无法启动;运行中余额耗尽,实盘会被平台停止。充值后重新启动,见实盘计费与充值。 - 租用的策略到期或并发数已满
租用的策略到期后,使用它的实盘会被停止且无法再启动;达到租用的最多并发实盘数后,无法再启动新的实盘。 - 密钥解密失败
报错中包含secret key decrypt failed (wrong password)。原因是修改了发明者量化交易平台的账号密码,原先配置的交易所密钥无法再解密。处理方法:- 在「交易所」管理页面重新填写交易所的密钥、密码等信息。
- 停止所有托管者,用新密码重新启动托管者。
- 凭据文件读不到
交易所配置中使用了file:///xxx.txt凭据文件,而实盘目录里没有该文件,报错中包含read key file;路径不合法时报key file path must be relative and cannot contain '..'或key file path escapes the robot directory。见本地凭据文件。
策略代码导致的错误
-
静态语法错误

此类错误比较明显,通常在策略编辑页面就能看到错误标记,回测时也能发现。
-
运行时错误
最常见的是对函数返回值不做合法性判断就直接使用。 -
过度占用内存
在全局变量里保存过多无法被垃圾回收的内容,导致内存占用过大。 -
未合理使用
exchange.Go并发请求
调用异步的exchange.Go后没有及时wait等待结果,导致并发任务数量过多。 -
递归调用过深
递归层数过多,超出调用栈大小。
其它报错
- 接口业务错误、网络请求错误
此类报错会显示相关的交易所对象名称、函数名称、错误消息和原因,本身不会导致实盘异常停止。它们通常是起因而不是直接原因,直接原因一般是没有判断接口返回值是否合法就直接使用而引发的程序异常。 interrupt错误
程序正在执行某个操作(例如访问交易所接口)时,用户点击了实盘页面上的停止按钮,停止中断了当前操作而打印的日志。它没有影响,只是一条记录。
更多问题见常见问题汇总。