Skip to content

您可通过docker快速体验banbot的UI,并进行策略开发、回测等。您需要启动TimeScaledb和banbot两个容器。

为获得更好的策略开发体验,建议您本地安装golang环境并使用Cursor辅助策略开发。

启动TimeScaledb

bash
docker run -d --name timescaledb -p 127.0.0.1:5432:5432 \
  -v /opt/pgdata:/var/lib/postgresql/data \
  -e POSTGRES_PASSWORD=123 timescale/timescaledb:latest-pg17

建议您启用-v数据目录映射,避免后期升级镜像导致K线重新下载。

如您使用windows,则需要修改宿主机数据目录/opt/pgdata

为避免您的数据库被未授权访问,建议您仅允许本地连接,即-p 127.0.0.1:5432:5432

启动Banbot

创建一个本地配置文件 /root/config.yaml:

yaml
exchange:
  binance:
    account_prods:
      user1:  # you can change this
        api_key: your_api_key_here
        api_secret: your_secret_here
#database:
#  url: postgresql://postgres:123@[host.docker.internal]:5432/ban

banbot在docker中使用 postgresql://postgres:123@[host.docker.internal]:5432/ban作为默认数据库连接字符串, 您可以通过设置 database.url 修改.

bash
docker run -d --name banbot -p 8000:8000 -v /root:/root\
  --add-host=host.docker.internal:host-gateway banbot/banbot:latest -config /root/config.yml

现在,您可以在浏览器访问http://127.0.0.1:8000,体验banbot的UI界面了!

编写交易策略

您点击顶部导航栏第一项,即可切换到策略管理页面。左侧文件树已经内置了一些示例策略,来自Banstrats

您可直接点击展开查看策略的源代码(如ma/demo.go),也可以直接创建新策略。

执行回测

您可以在回测管理页面,开始新的回测任务,回测任务的所有配置都是通过yaml配置进行的,您至少需要指定以下配置:

yml
timerange: "20240101-20250101"
pairs: ['ETH/USDT']  # 您可指定多个品种回测,如果忽略此项,则通过pairlists动态计算品种列表
run_policy:
  - name: ma:demo
    run_timeframes: [15m]
    # params: {atr: 15}