Token导航 LogoToken导航TokenDH.com
效率敏感数据clawhub未标认证来源可访问clear审计提醒

backtest-poller回测轮询器

Agent Skill

用于辅助测试设计、自动化测试、用例整理和回归验证。它适合让 Agent 编写单元测试、端到端测试、测试计划或根据失败日志定位问题。使用时需要确认项目测试框架、运行命令和夹具数据,避免为了通过测试而改坏真实逻辑;涉及浏览器或外部服务时,应区分本地模拟、测试环境和生产环境。

总安装

6,178

周安装

260

GitHub Stars

公开资料未说明

下载量

2,163
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:backtest-poller(回测轮询器)
来源仓库:https://github.com/tltby12341/backtest-poller
安装命令:
openclaw skills install backtest-poller
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install backtest-poller

简介

用于辅助测试设计、自动化测试、用例整理和回归验证。

  • 适用于 QuantConnect 回测监控场景,支持自适应轮询与权益跟踪。
  • 可自动下载结果并触发提款停止预警机制。
  • 安装命令:openclaw skills install backtest-poller,需确认 API 密钥与账户权限。
  • 注意实时数据延迟可能导致信号偏差,建议设置合理阈值。

SKILL.md

name
backtest-poller
description
Background daemon that monitors QuantConnect backtests with adaptive polling, real-time equity tracking, drawdown early-stop, auto-download, and auto-diagnosis — survives terminal disconnection.
version
1.0.0
metadata
openclaw
requires
env
bins
primaryEnv
QC_API_TOKEN
emoji
\F440
os

Backtest Poller

Never babysit a 3-hour backtest again. This skill runs a background daemon that monitors your QuantConnect backtests, auto-stops on excessive drawdown, downloads results when done, runs forensic diagnosis, and sends you a system notification.

When to use

  • After submitting a backtest: "Monitor this backtest in the background"
  • "Start the poller daemon"
  • "Check backtest status"
  • "Show me the poller logs"

Architecture

The poller runs as a nohup background process that survives terminal disconnection. All state is persisted to state.json with file-locking to prevent CLI/poller race conditions.

User submits backtest
        |
        v
  [Poller Daemon] (nohup, runs independently)
        |
        |-- Every 30-180s: check QC API
        |-- Track equity & peak equity
        |-- Calculate live drawdown
        |
        |-- If DD > threshold at 20%+ progress:
        |     |-- Delete backtest (early stop)
        |     |-- Record result
        |     \-- Send notification
        |
        |-- If completed:
        |     |-- Download orders.csv + result.json
        |     |-- Run OrderForensics diagnosis
        |     |-- Generate diagnosis.txt
        |     |-- Update state.json
        |     \-- Send macOS notification
        |
        \-- If no active backtests: exit gracefully

Adaptive Polling Intervals

Instead of a fixed 30s interval (360 API calls for a 3-hour backtest), the poller adapts based on progress:

PhaseProgressIntervalRationale
Startup0%, < 2min elapsed30sConfirm backtest actually started
Normal0-30%120sSteady tracking
Midgame30-80%180sLow frequency, save API quota
Endgame> 80%60sNearly done, check frequently

Result: ~50 API calls instead of ~360 for a 3-hour backtest.

CLI Commands

Submit a backtest (auto-starts poller)

python3 cli.py submit \
  --main-file strategy.py \
  --name "MyStrategy_v1" \
  --max-dd 40

Check status of all backtests

python3 cli.py status

Shows a table with: name, status, progress %, current equity, live drawdown, elapsed time.

View poller logs

python3 cli.py logs --lines 30

View completed results

python3 cli.py results --name "MyStrategy_v1" --full

Manually start/stop the poller

python3 cli.py start-poller
python3 cli.py stop-poller

Clean up completed records

python3 cli.py clear

State Management

All state is stored in state.json:

{
  "poller_pid": 12345,
  "poller_running": true,
  "poller_started": "2026-03-17T10:00:00",
  "backtests": [
    {
      "backtest_id": "abc123",
      "name": "MyStrategy_v1",
      "status": "running",
      "progress": 0.45,
      "peak_equity": 12500,
      "current_equity": 11200,
      "live_drawdown": 0.104,
      "max_dd_threshold": 0.40,
      "auto_download": true,
      "auto_diagnose": true
    }
  ]
}

File-locking (fcntl.flock) prevents race conditions between the CLI and the poller daemon writing to the same file.

Auto-Diagnosis

When a backtest completes, the poller automatically:

  1. Downloads orders.csv and result.json to results/<name>/
  2. Runs OrderForensics.full_diagnosis() to generate diagnosis.txt
  3. Extracts a summary: order count, option ROI, zero rate, windfall count

Notifications

On macOS, the poller sends a system notification via osascript when a backtest finishes.

Graceful Shutdown

The daemon handles SIGTERM and SIGINT for clean exit. It clears its PID from state.json only if the PID still matches (prevents stale cleanup from a different process).

Rules

  • Never submit more than one backtest at a time. QuantConnect free tier only allows one concurrent backtest per project. Submitting a second will silently queue or fail.
  • Never manually edit state.json while the poller is running. Use the CLI commands (submit, clear) to modify state. The file uses fcntl.flock locking — manual edits bypass the lock and can corrupt state.
  • Never run multiple poller instances simultaneously. The CLI checks for an existing PID before starting. If you force-start a second poller, both will race on state.json writes.
  • Do not delete files in results/ while the poller is actively downloading. Wait for the "completed" status.
  • Early-stop deletes the backtest permanently from QuantConnect. There is no "pause" API — early-stopped backtests cannot be resumed or recovered.
  • Environment variables QC_USER_ID, QC_API_TOKEN, and QC_PROJECT_ID must be set before running any command. The skill will fail with a clear error if they are missing.

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

84.18%
按下载量换算1,821

安全审计

VirusTotal

可疑

ClawScan

通过

Static analysis

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills