手动部署托管者
可以把托管者部署在个人电脑、服务器、树莓派(64位系统)等设备上。托管者只发布64位版本:
- Linux命令行版:x86_64(amd64)、ARM64(aarch64)
- macOS命令行版:Intel、Apple Silicon
- Windows:x64、ARM64,各有命令行版和界面版
在托管者部署页面点击手动部署托管者,按系统下载对应的托管者程序并解压,可执行文件robot即托管者程序。同一页面还显示部署需要的两项信息:

- 通信地址:包含账号UID,形如
node.fmz.com/123456。 - 密码:UID对应的发明者量化交易平台账号的密码。
Windows界面版
运行robot.exe,在界面上填写通信地址和密码,点击启动。
命令行版
bash
chmod +x robot # Linux/macOS 首次运行前加上执行权限
./robot -s node.fmz.com/123456 # 启动后提示输入密码,输入时不回显
123456只是示例,实际的通信地址在托管者部署页面查看。不要用-p在命令行里写明文密码,它会留在shell历史和进程列表里;需要无人值守启动时,把地址和密码写进只有自己可读的配置文件robot.conf:
bash
cat > robot.conf <<'EOF'
s=node.fmz.com/123456
p=你的密码
EOF
chmod 600 robot.conf
./robot -c robot.conf # 启动目录下有robot.conf时,直接 ./robot 也会自动加载
全部参数和配置文件格式见命令行参数。
在后台运行
托管者忽略终端挂断信号:在SSH里前台启动后直接断开连接,托管者会继续运行,运行日志同时写在logs/docker.log。需要开机自启或崩溃后自动拉起时,可以用systemd等服务管理器运行,例如/etc/systemd/system/robot.service:
ini
[Unit]
Description=FMZ robot
After=network-online.target
Wants=network-online.target
[Service]
WorkingDirectory=/opt/robot
ExecStart=/opt/robot/robot -c /opt/robot/robot.conf
Restart=on-failure
TimeoutStopSec=90
[Install]
WantedBy=multi-user.target
bash
sudo systemctl daemon-reload
sudo systemctl enable --now robot
systemctl stop robot发送的SIGTERM会让托管者优雅退出:先停止其上的所有实盘、上报状态,再从平台下线。TimeoutStopSec留出足够的时间,避免收尾未完成就被强制结束。
**升级托管者**
策略运行时和交易所连接器由平台按需下发,不需要手动更新。升级托管者程序本身:先停止托管者(见托管者操作注意事项),用新版本替换robot可执行文件,再在同一工作目录启动。工作目录下的logs目录保留了托管者身份和实盘数据,启动后沿用原来的托管者ID。
**用Docker容器隔离策略进程**
Linux和macOS的命令行版可以用-i参数让每个策略进程运行在独立的Docker容器里(需要本机已安装并运行Docker)。这是策略进程的隔离方式,不是托管者本身的Docker镜像,参数见命令行参数。