QQQ期权策略零基础部署与运维手册

type
Post
status
Published
date
Mar 9, 2026
slug
clbot
summary
本手册面向完全零基础用户,逐步引导你从零完成 CLBOT 的配置、部署与日常维护。密钥管理统一使用 Bitwarden Secrets Manager (BWS),不在任何文件中明文存储敏感信息。
tags
期权策略
category
技术分享
icon
password
创建时间
Mar 8, 2026 11:02 PM

零基础部署与运维手册

本手册面向完全零基础用户,逐步引导你从零完成 CLBOT 的配置、部署与日常维护。密钥管理统一使用 Bitwarden Secrets Manager (BWS),不在任何文件中明文存储敏感信息。

目录

  1. 系统架构概览
  1. 前置准备:账号与工具注册
  1. Bitwarden Secrets Manager 配置
  1. 服务器环境搭建
  1. 项目文件部署
  1. BWS 注入环境变量并启动
  1. Notion 数据库配置
  1. 验证系统运行状态
  1. 日常运维操作
  1. 常见报错与解决方案
  1. 完整环境变量速查表

1. 系统架构概览

各模块职责简述:
  • config.py:统一读取所有环境变量和配置参数
  • market.py:通过 Tradier API 和 yfinance 获取实时行情、期权报价、VIX、CNN 恐贪指数等
  • strategies.py:执行 Titan 核心策略,包含建仓信号检测、持仓风控(止损/追踪止盈/Delta移仓)
  • analyst.py:调用 OpenRouter LLM + Tavily 新闻搜索,生成 AI 研判报告
  • reporter.py:每日定时推送估值监测日报
  • notifier.py:Telegram 消息推送、PushPlus 微信推送、TG 指令监听(/p /buy /sell)
  • database.py:Notion 数据库读写,管理持仓记录和运行状态

2. 前置准备:账号与工具注册

按以下顺序注册所需服务,全部免费层即可启动。

2.1 必须注册的服务

服务
用途
注册地址
Bitwarden
密钥安全管理(核心)
https://bitwarden.com
Telegram
接收交易信号推送
https://telegram.org
Notion
持仓数据库
https://notion.so
Tradier
股票/期权行情与交易
https://tradier.com
OpenRouter
LLM API 网关(AI研判)
https://openrouter.ai

2.2 可选服务

服务
用途
注册地址
Tavily
AI 新闻搜索增强
https://tavily.com
PushPlus
微信消息推送
https://www.pushplus.plus
Healthchecks.io
服务存活监控
https://healthchecks.io

2.3 获取各服务的 Token/Key

Telegram Bot Token 和 Chat ID

  1. 在 Telegram 搜索 @BotFather,发送 /newbot,按提示创建机器人,复制 Bot Token(格式:123456:ABC-DEF...
  1. 向你的机器人发送任意消息,然后访问:
    1. 在返回的 JSON 中找到 "chat":{"id": XXXXXXX},这就是你的 Chat ID

    Notion Token 和数据库 ID

    1. 访问 https://www.notion.so/my-integrations,点击「New integration」
    1. 名称填 CLBOT,权限选「Read content」+「Update content」+「Insert content」,复制 Internal Integration Token
    1. 数据库 ID 见第 7 章说明

    Tradier Token 和 Account ID

    1. 登录 https://tradier.com/user/applications,创建 Application,获取 Access Token
    1. 访问 https://tradier.com/user/account,复制 Account Number(即 Account ID)
    1. 如使用 Paper Trading(模拟盘),将 TRADIER_PAPER 设为 true

    OpenRouter API Key

    1. 登录 https://openrouter.ai/keys,点击「Create Key」
    1. 复制生成的 API Key(格式:sk-or-v1-...

    3. Bitwarden Secrets Manager 配置

    BWS 是 Bitwarden 提供的专为程序密钥设计的保险库,比直接写 .env 文件安全得多。

    3.1 开通 Secrets Manager

    1. 登录 https://vault.bitwarden.com
    1. 左侧菜单点击「Secrets Manager」→「Get Started」(免费层支持 100 个 Secret)
    1. 创建一个 Project,命名为 CLBOT

    3.2 创建所有 Secrets

    在 BWS 控制台,进入你的 CLBOT Project,逐条点击「New Secret」,按下表填写:
    Secret 名称(Key)
    填入的值
    说明
    TRADIER_TOKEN
    你的 Tradier Access Token
    交易与行情
    TRADIER_ACCOUNT_ID
    你的 Tradier Account Number
    账户ID
    TRADIER_PAPER
    false
    模拟盘填 true
    NOTION_TOKEN
    你的 Notion Integration Token
    数据库访问
    NOTION_DB
    你的 Notion 数据库 ID
    见第7章
    TG_TOKEN
    你的 Telegram Bot Token
    推送通知
    TG_CHAT_ID
    你的 Telegram Chat ID
    接收消息的账号
    LLM_API_KEY
    你的 OpenRouter API Key
    AI研判
    LLM_MODEL
    openai/gpt-4o
    推荐模型,可按需改
    TAVILY_API_KEY
    你的 Tavily Key(可选)
    新闻搜索增强
    PUSHPLUS_TOKEN
    你的 PushPlus Token(可选)
    微信推送
    HEALTHCHECK_URL
    你的 Healthchecks.io URL(可选)
    存活心跳
    TIMEZONE
    America/New_York
    交易时区,一般不改
    REPORT_TIME
    07:30
    日报推送时间(ET)

    3.3 生成机器访问令牌(Machine Account Token)

    1. 在 BWS 控制台左侧点击「Machine Accounts」
    1. 点击「New Machine Account」,命名为 clbot-server
    1. 点击进入该账号,切换到「Access Tokens」标签
    1. 点击「Generate Token」,立即复制保存(只显示一次!)
        • 格式为:0.xxxxxxxx.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
        • 这个 Token 命名为 BWS_ACCESS_TOKEN,后续部署时用
    1. 回到「Projects」,将 CLBOT 项目分配给 clbot-server(授予 Read 权限)

    4. 服务器环境搭建

    推荐使用 Ubuntu 22.04 LTS 的 VPS(2核2G 内存即可),国内可用阿里云、腾讯云,国外推荐 Vultr、DigitalOcean。

    4.1 系统初始化

    SSH 登录服务器后,依次执行:

    4.2 安装 BWS CLI

    Bitwarden 提供官方一键安装脚本,自动识别系统架构并完成安装,推荐优先使用此方式
    脚本会自动完成以下步骤:检测系统架构 → 下载对应二进制 → 安装至系统路径。
    安装完成后验证:
    脚本说明: - -f:服务器返回错误时静默失败(不输出 HTML 错误页) - -s:静默模式,不显示下载进度条 - -S:即使 -s 静默,遇到错误仍显示错误信息 - -L:自动跟随重定向
    网络受限时的备用方案(手动下载):

    4.3 配置 BWS 访问凭证

    Project UUID 获取方式:在 BWS 控制台进入 CLBOT 项目,URL 末尾的长串字符串就是 Project UUID。

    4.4 创建项目目录和 Python 虚拟环境


    5. 项目文件部署

    5.1 上传代码文件

    将以下 8 个文件上传至 /opt/clbot/ 目录:
    上传方式(任选其一):
    方式 A:使用 scp 从本地上传
    方式 B:在服务器直接 git clone(如果你的代码在 GitHub)

    5.2 安装 Python 依赖

    提示:如果网络较慢,可以加上清华源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

    5.3 创建 BWS 注入脚本

    /opt/clbot/ 下创建启动脚本 start.sh
    粘贴以下内容(将 BWS_PROJECT_ID 替换为你的实际 Project UUID):

    6. BWS 注入环境变量并启动

    6.1 设置 BWS_ACCESS_TOKEN 为系统持久环境变量

    在文件末尾添加一行:
    保存后重新加载:

    6.2 首次手动测试启动

    观察输出,确认所有 Secrets 都显示「✅ 已加载」,且最后出现:
    Ctrl+C 停止,准备配置为后台服务。

    6.3 配置 systemd 后台常驻服务

    粘贴以下内容:

    7. Notion 数据库配置

    7.1 创建持仓数据库

    1. 在 Notion 中新建一个页面,点击「/」搜索「Database - Full page」
    1. 数据库名称建议填 CLBOT持仓管理
    1. 按下表添加所有必须的字段(属性):
    属性名称
    类型
    说明
    Ticker
    Title(标题,默认存在)
    股票/期权代码
    EntryPrice
    Number
    股票买入价
    Quantity
    Number
    数量(股数或合约数)
    Strategy
    Select
    选项:TitanManual
    Status
    Select
    选项:ActiveClosed
    EntryDate
    Date
    建仓日期
    ExitPrice
    Number
    平仓价格
    ExitDate
    Date
    平仓日期
    HighestPnL
    Number
    历史最高盈亏率(系统自动更新)
    Strike
    Number
    期权行权价(股票可留空)
    Expiration
    Date
    期权到期日(股票可留空)
    EntryPremium
    Number
    期权买入权利金
    EntryDelta
    Number
    期权买入时 Delta
    ContractSymbol
    Text(Rich Text)
    OCC 标准合约代码
    OptionType
    Select
    选项:callput

    7.2 获取数据库 ID

    1. 在浏览器中打开你创建的数据库页面
    1. 复制地址栏 URL,格式如下:
      1. URL 中 notion.so/用户名/ 后面、?v= 前面的 32 位字符串就是 数据库 ID
      1. 将其格式化为:xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx(每8位加一个 )

      7.3 为 Integration 授权访问数据库

      1. 打开数据库页面,点击右上角「···」菜单
      1. 选择「Add connections」,搜索并添加你在第 2 章创建的 CLBOT Integration
      1. 点击「Confirm」确认授权

      8. 验证系统运行状态

      8.1 查看实时日志

      8.2 查看日志文件

      8.3 确认运行正常的标志

      服务启动后,你应该在 Telegram 收到一条消息:
      日志中应出现类似以下内容,无 ERRORCRITICAL 字样:

      8.4 测试 Telegram 指令

      在 Telegram 向你的机器人发送:
      机器人应回复:

      9. 日常运维操作

      9.1 服务管理常用命令

      9.2 更新代码

      9.3 修改配置(通过 BWS)

      1. 登录 https://vault.bitwarden.com → Secrets Manager
      1. 找到对应的 Secret,点击编辑,修改 Value
      1. 回到服务器,重启服务即可生效:
        注意:永远不要直接在服务器上的文件中写入 API Key!所有密钥变更都通过 BWS 控制台操作。

        9.4 手动录入持仓(Telegram 指令)

        买入/录入持仓:
        查看当前持仓:
        平仓(使用实时市价):
        平仓(使用指定价格):

        9.5 查看每日日报

        系统在每个交易日的 REPORT_TIME(默认 07:30 ET)自动通过 PushPlus 推送日报,内容包含: - QQQ 当前 PE 与估值状态 - VIX 恐慌指数与阶段 - CNN 贪婪/恐惧指数 - MA50 / MA200 技术均线 - 距 52 周高点回撤

        9.6 保号任务管理

        保号任务用于防止 Tradier 账户因长期不交易被收取闲置费。
        通过 BWS 修改保号配置:
        Secret Key
        示例值
        说明
        MAINTENANCE_ACTIVE
        true
        是否启用(true/false)
        MAINTENANCE_TRADING_DAYS
        1,15
        每月第几个交易日执行,逗号分隔
        MAINTENANCE_SYMBOL
        NOK
        保号用的低价股代码
        MAINTENANCE_QTY
        1
        买卖股数
        修改后重启服务生效。

        10. 常见报错与解决方案

        问题 1:启动后 Telegram 收不到消息

        检查步骤:
        常见原因: - TG_TOKEN 填写有误:检查 BWS 中的值,确保没有多余空格 - TG_CHAT_ID 填写有误:注意 Chat ID 可能是负数(群组 ID),个人 ID 是正整数 - 服务器无法访问 Telegram API(中国大陆 VPS 需要代理)
        解决办法:

        问题 2:Notion 持仓读取失败

        日志表现: Notion Query ErrorNotion Init Error
        检查步骤: 1. 确认 NOTION_TOKENNOTION_DB 均已正确填入 BWS 2. 确认数据库已授权给 Integration(见第 7.3 节) 3. 确认数据库 ID 格式正确(32 位字符,可带或不带 - 连字符)

        问题 3:行情数据获取失败

        日志表现: YF fallback errorTradier quote error
        检查步骤:
        常见原因: - Tradier Token 未配置或已过期,系统会自动回退到 yfinance - yfinance 被 Yahoo Finance 限速(通常几分钟后自动恢复)

        问题 4:AI 研判不工作

        日志表现: LLM 分析异常AI 未启用
        检查步骤: 1. 确认 LLM_API_KEY 在 BWS 中已设置 2. 确认 OpenRouter 账户有余额(LLM 调用是收费的) 3. 检查 LLM_MODEL 名称是否正确,格式为 供应商/模型名,如 openai/gpt-4o

        问题 5:BWS Secrets 加载失败

        日志表现: 启动脚本显示多个 ⚠️ 未找到
        检查步骤:
        常见原因: - BWS_ACCESS_TOKEN 没有持久化到 /etc/environment - Machine Account 没有被授权访问 CLBOT Project

        问题 6:服务频繁崩溃重启

        检查步骤:
        常见原因: - 网络不稳定导致 API 请求频繁失败,触发 MAX_CONSECUTIVE_ERRORS - 可通过 BWS 调大 ERROR_PAUSE_SECONDS(默认 300 秒)

        11. 完整环境变量速查表

        以下所有变量均应存储在 BWS 中,通过启动脚本注入。

        必填项

        变量名
        示例值
        说明
        TRADIER_TOKEN
        abcd1234efgh5678
        Tradier API Token
        TRADIER_ACCOUNT_ID
        123456789
        Tradier 账户号
        NOTION_TOKEN
        secret_xxxx...
        Notion Integration Token
        NOTION_DB
        xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
        Notion 数据库 ID
        TG_TOKEN
        123456:ABC-DEF...
        Telegram Bot Token
        TG_CHAT_ID
        987654321
        Telegram 接收账号 ID

        选填项(功能增强)

        变量名
        默认值
        说明
        TRADIER_PAPER
        false
        模拟盘模式(true=沙盒)
        LLM_API_KEY
        (空)
        OpenRouter Key,为空则不启用 AI
        LLM_BASE_URL
        https://openrouter.ai/api/v1
        LLM 接口地址
        LLM_MODEL
        openai/gpt-4o
        使用的模型
        TAVILY_API_KEY
        (空)
        新闻搜索 Key,为空则跳过新闻
        PUSHPLUS_TOKEN
        (空)
        PushPlus Token,为空则不推送微信
        PUSHPLUS_TOPIC
        (空)
        PushPlus 群组 Topic(可选)
        HEALTHCHECK_URL
        (空)
        Healthchecks.io 心跳 URL

        运行参数(高级调优)

        变量名
        默认值
        说明
        TIMEZONE
        America/New_York
        时区设置
        REPORT_TIME
        07:30
        日报推送时间(ET 24小时制)
        CHECK_INTERVAL
        60
        主循环间隔(秒,最小10)
        HEARTBEAT_INTERVAL
        3600
        心跳间隔(秒,最小60)
        MAX_CONSECUTIVE_ERRORS
        10
        最大连续错误次数后暂停
        ERROR_PAUSE_SECONDS
        300
        触发错误暂停后的等待时间(秒)
        FORCE_IPV4
        true
        强制 IPv4(纯 IPv6 机器设 false)
        MAINTENANCE_ACTIVE
        false
        是否启用自动保号任务
        MAINTENANCE_TRADING_DAYS
        1,15
        每月第几个交易日执行保号
        MAINTENANCE_SYMBOL
        NOK
        保号股票代码
        MAINTENANCE_QTY
        1
        保号买卖数量(股)

        附录:快速部署命令汇总


        手册版本:v5.2.1 | 最后更新:2026-03
        Loading...

        © YanXiao 2021-2026