Files
tick-stock-panel/docs/configuration.md
T
shy3130 010c484289 feat(data): 全量分钟 (full_minute) 数据集开放插件/自定义源接入
像其他能力一样可路由: 声明 full_minute 数据集并在设置页路由, 即接入
盘中全市场分钟落盘服务 (与 TickFlow Expert 同一能力键 intraday.universe)。

- policy: _DATASET_CAP_MAP 增补 full_minute → INTRADAY_UNIVERSE, 自定义源
  声明且被路由时自动补授能力, 服务门控对两类源统一口径
- capabilities 注册表: full_minute 从不可路由 (field=None) 改为
  full_minute_data_provider 偏好路由; preferences/settings API 收发新字段
- 插件契约: get_intraday_batch (修复轮, 未实现回退 get_minute 当日窗口) +
  get_intraday_latest (稳态增量, 可选; 未实现降级仅修复轮, 节奏下限 60s)
- YAML 声明式源: full_minute 数据集与 minute 同形, loader 白名单放行,
  源编辑器 UI 可配置; 仅修复轮语义
- kline_sync 边界: fetch_intraday_custom_batch / _fetch_intraday_custom_latest,
  帧过北京墙钟守卫, 与 TickFlow 边界函数同纪律
- minute_refresh: 删「自定义分钟源让位」逻辑, 改按路由取数;
  status 增 provider / provider_effective / repair_only
- 前端: 监控页卡片按能力驱动, 数据源页路由矩阵, api.ts 类型
- 测试: 门控/路由/降级/增广新增用例, 后端 1332 全过
- 文档: plugin-development / custom-data-source / configuration / features /
  CONTRIBUTING 契约细化 (AI 可照文档接入)
2026-08-31 22:53:24 +08:00

6.8 KiB
Raw Blame History

配置详解

所有配置从根目录 .env 读取(复制 .env.example 开始),也可在面板 设置 页面可视化修改。本文件解释每个配置项的作用。

部署相关配置(端口/密码/老 CPU 兼容)的实操见 deployment.md


数据源:TickFlow

TICKFLOW_API_KEY=              # 留空 = None 模式(历史日K免费);填 Key = 按订阅档位解锁

TickFlow 是内置默认数据源;同时支持插件化接入第三方数据源(YAML 声明自有接口见 custom-data-source.md,插件开发见 plugin-development.md),在面板 设置 → 数据源 切换。

  • 留空(None 模式):通过 free-api 使用历史日 K(当日数据盘后 1-2 小时可用),无需付费即可体验核心选股/回测功能
  • 填入 API Key:按你的订阅档位解锁更多能力

实时行情按档位

档位 实时能力
Free 自选页前 5 个标的实时监控(最低 6 秒刷新)
Starter+ 全市场实时行情
Pro 分钟 K + 盘口
Expert WebSocket + 财务数据 + 全量分钟

完整能力矩阵见 tickflow.org/pricing,高等档位含较低档全部权益。 在面板 设置 → 凭据与能力 点「重新检测」可查看当前档位标签。

档位仅适用于 TickFlow 数据源。功能门槛的统一标准是"能力"(kline.minute.batchdepth5.batchfinancial 等能力键):其他第三方/自定义数据源以声明的数据集能力为准,系统会按当前数据源配置自动合并判定,UI 提示一律以能力名表达,不再依赖 TickFlow 档位名。

全量分钟 (full_minute)

「全量分钟」是一项独立能力(能力键 full_minute,探测名 intraday.universe),与其他能力同样可路由:盘中把全市场当日 1 分钟 K 持续增量落盘到本地 data/kline_minute/ 当日分区,分钟策略(minute_filter)与分时视图即可读到新鲜数据。接入方式二选一:

  • TickFlow Expert:配置 Expert 档 Key,零配置即用(修复轮 intraday.batch + 稳态 intraday.universe 单请求增量)
  • 插件/自定义源:声明 full_minute 数据集并在 设置 → 数据源 → 全量分钟 路由到该源 — Python 插件实现 get_intraday_batch(必需)/get_intraday_latest(可选,未实现自动降级仅修复轮、节奏下限 60s);YAML 声明式源数据集配置与 minute 同形(仅修复轮语义)。契约细节见 plugin-development.mdcustom-data-source.md

接入步骤:

  1. 设置 → 凭据与能力(TickFlow 路径)配置 API Key(Expert 档),或在 设置 → 数据源 声明/安装提供 full_minute 的源并路由;点「重新检测」后能力列表出现「全量分钟」
  2. 开启实时行情后落盘服务自动启动;仅连续竞价时段(9:3011:30 / 13:0015:00)运行,午休/收盘自动暂停与恢复
  3. 冷启动(如 10 点才开服务)自动触发全天修复轮,一次批量补齐 9:30 起的全部缺口;稳态走增量轮(默认 6 秒一轮,可配 3–120 秒),幂等合并滚出全天
  4. 与盘后分钟同步写同一分区(unique(symbol, datetime) 幂等合并),互不冲突

说明:标的池为 A 股股票(CN_Equity_A),ETF 不在内(分时走批量补拉路径);覆盖滞后超阈值或连续空轮会自动再跑修复轮自愈。


AI(可选)

用于自然语言生成策略。所有配置留空即跳过,不影响核心功能。支持任意 OpenAI 兼容接口。

AI_PROVIDER=openai_compat              # openai_compat | ollama
AI_BASE_URL=https://api.deepseek.com/v1
AI_API_KEY=                            # 留空 = 关闭 AI
AI_MODEL=deepseek-chat
AI_DAILY_TOKEN_BUDGET=500000           # 每日 token 预算上限
配置项 说明
AI_PROVIDER openai_compat(OpenAI 兼容,支持 DeepSeek / 通义 / OpenAI 等)或 ollama(本地模型)
AI_BASE_URL 接口地址,如 DeepSeek https://api.deepseek.com/v1
AI_API_KEY 留空则关闭 AI 功能
AI_MODEL 模型名,如 deepseek-chat
AI_DAILY_TOKEN_BUDGET 每日 token 预算,超限后当日不再调用

接入示例见 strategy.md 的「AI 生成策略」章节。


服务

HOST=0.0.0.0          # 开发服务监听地址 / Docker 主机绑定地址
PORT=3018             # 开发后端端口 / Docker 主机映射端口
LOG_LEVEL=INFO        # DEBUG | INFO | WARNING | ERROR
  • HOST:0.0.0.0 监听所有网卡(容器/公网部署需要);仅本机用可设 127.0.0.1
  • PORT:默认 3018;开发模式兼容显式的 BACKEND_PORT 覆盖,改端口后 SSH 转发命令也要同步改
  • LOG_LEVEL:排查问题时改 DEBUG

数据

DATA_DIR=./data       # Parquet / DuckDB 数据存储目录

整个 data/ 目录都不纳入 git —— 行情 K线、财务、自选、回测、监控记录,乃至概念/行业扩展数据,全部是程序运行时生成/拉取的用户数据。

如需迁移数据,直接拷贝整个 data/ 目录即可。详见 deployment.md → 更新代码


访问密码(公网部署)

AUTH_PASSWORD='你的密码'  # 至少 6 位;仅首次生效,已设过则不覆盖

面板首次设置访问密码时,出于安全考虑仅允许本机或内网访问(防公网陌生人抢先设置锁死面板)。公网服务器部署可通过此环境变量预置首个密码。 密码建议使用单引号包裹,Docker 启动时会把整个原始 .env 只读挂载到容器内 /app/.env,兼容已有的未加引号配置。容器可以读取其中的密钥但不能修改该文件,请保持主机文件权限为 600 并仅运行可信镜像。

详细步骤、SSH 转发方案、重置密码方法见 deployment.md → 访问密码设置


后端依赖 Extras(可选)

BACKEND_EXTRAS=             # 留空默认;legacy-cpu 兼容老 CPU

老 CPU 无 AVX2/FMA 支持时设为 legacy-cpu,会给 Polars 切到 rtcompat 运行时;需回测则 legacy-cpu backtest。Docker 构建和 ./dev.sh / .\dev.ps1 都会读取此值并同步依赖。详见 deployment.md → 老 CPU 兼容


配置优先级

  1. 面板设置页(设置 → ...):UI 修改后立即生效,持久化到 data/
  2. .env 文件:启动时读取
  3. 环境变量:Docker / 系统环境变量,优先级最高

多数配置可在面板设置页修改,无需手动编辑 .env。仅 AI Key、API Key 等敏感项建议放 .env(不提交到 git)。