策略看板
我的策略
| ID | 名称 | 标的名称 | 标的 | 表达式 | 动作 | 数量 | 启用 | 上次结果 |
|---|
价格预警
| 标的 | 方向 | 目标价 | 现价 | 距离 | 触发动作 | 状态 | 最近结果 |
|---|
调度器状态
添加自选股
| 类型 | 代码 | 名称 | 市场 | 现价 | 涨跌 | 涨幅 | K线 | 建议 |
|---|
添加持仓
| 代码 | 名称 | 数量 | 成本 | 现价 | 状态 | 当日盈亏(¥) | 市值(¥) | 盈亏(¥) | 盈亏% |
|---|
🧪 模拟账户快照
当前模拟持仓(FIFO 重算) 场外基金 T+1 确认,当日买入 T+1 可卖
| 代码 | 名称 | 数量 | 成本 | 现价 | 状态 | 当日盈亏(¥) | 市值(¥) | 盈亏(¥) | 盈亏% | 可卖 | 操作 |
|---|
手动下单
⏱ 定投计划
| 启用 | 计划 | 标的 | 频次 | 每期 | 下次执行 | 状态 | 操作 |
|---|
成交记录
| 时间 | 代码 | 动作 | 价格 | 数量 | 金额 | 盈亏(¥) | 状态 | 执行结果 | 来源 | 备注 |
|---|
账户快照
快照会把当前持仓(代码 / 市场 / 名称 / 数量 / 成本)+ 可用资金存下来。 恢复时账户会被重建为快照那一刻的状态,再按今天的行情重算市值与盈亏(相当于带着这份持仓走到今天)。 恢复会覆盖当前账户的成交记录与持仓,恢复前建议先存一份当前快照。
账户权益曲线
持仓个股曲线
K 线
新建策略
策略列表
| ID | 名称 | 标的名称 | 标的 | 表达式 | 动作 | 数量 | 启用 ⓘ | 上次结果 | 操作 |
|---|
新建预警
价格**上破 / 下破**你设的目标价,就推送到 邮箱 / Webhook / PushDeer / 微信 和站内消息栏。 每分钟比对一次,不用写表达式;行情只读现成缓存,不会额外增加行情拉取。
我的预警
「立即检查」只读**现成的行情缓存**(不会额外去拉行情),所以它反映的是"这会儿缓存里是什么价"。 数据太旧(超过 30 分钟)或不是今日行情时会跳过 —— 免得拿昨天的收盘价误报。
| 标的 | 方向 | 目标价 | 现价 | 距离 | 触发动作 | 状态 | 最近结果 | 操作 |
|---|
示例策略看板
历史快照
每次扫描存一份当时的看板结果 所有快照发送广播(管理员)
广播是异步发送的:点完可以离开本页,发送完成后会在下方消息栏里留一条记录(发给谁、发了什么、推了几条)。
消息设置
普通用户的消息栏有上限(超出自动删除最旧的);管理员自己的消息栏无上限 —— 广播记录与异常提醒属于留痕,不能被自动清掉。
消息栏
加载中…
我的账号
我的推送通道
每个通道:先勾「启用」,再填该通道的凭据。勾选后策略命中时自动推送。
🤖 AI 模型配置
每个用户可配置多个模型(各自独立的 Provider / API Key / 模型名),Key 互不共享、只消耗自己的额度。
| 名称 | Provider | 模型 | Key | 默认 | 操作 |
|---|
🚀 发起组合分析
选择模型与分析范围,生成组合诊断报告(逐标的建议 + 其他可买标的推荐)。
⚙️ 分析设置
- 逐只展开上限:真实/模拟各自最多逐只分析的持仓数
- 思考强度:模型思考量,low 最快最省(推荐)
- picks 候选池:从全市场初筛候选标的,供 AI 推荐参考
📜 历史报告
| 生成时间 | 触发方式 | 模型 | 账户规模 | 耗时 | 操作 |
|---|
💼 持仓相关
📰 市场快讯
☀️ 今日要闻
🔥 热榜
用户管理
| ID | 用户名 | 角色 ⓘ | 状态 | 邮箱 | 邮件 | Webhook | PushDeer | 微信 | 新闻上限 | 创建时间 | 操作 |
|---|
调度器
运行日志
一行 = 一次运行;命中/错误 显示 0 = 没命中/没报错,不是出错。
这里只记「真有事」的运行(出错或有命中,无事 6 小时一条心跳);摘要不含策略名/计划名/标的。
日志可删:清空日志清当前来源(「全部来源」=整表),行末删只删一条,不可恢复。
后台日志级别:服务器 bash script/log_level.sh set WARNING。
| 时间 | 来源 | 命中 | 错误 | 摘要 |
|---|
保活 / 公网地址
后台每 5 分钟三源交叉查一次公网 IP,变化后自动推送管理员(邮件/Webhook/PushDeer/微信),
避免"路由器重启后外网入口变了却不知道新网址"。进程保活由服务器上的 keepalive.sh
(cron 每分钟)负责:uvicorn / nginx 挂了会自动拉起。外网入口由
cf_probe.sh(cron 每 2 分钟)经公网域名回探一次 —— 进程指标只能证明本机活着,
「手机 → CF 边缘 → 隧道 → nginx」这一段通不通只有它能看出来。
系统监控
资源采样 60 秒一跳、接口统计按分钟聚合,均保留 7 天。曲线看趋势(是否撞刷新尖峰),
表格定位慢接口 —— 页面“卡了一下”时先来这里对时间轴。右上角时间范围对曲线和接口统计同时生效。
「卡顿定位」的阻塞曲线跟时间档走,热点线程表只看最近一跳(60s,定位价值在当下谁在烧)。
「子进程内存」的存活数只统计真正干活的 worker(取数常驻 2 个、OCR 按需启停),
multiprocessing 常驻的 resource_tracker / forkserver 框架进程另计,
但内存合计是含它们的。
卡顿定位
| 热点线程 Top5(最近一跳) | CPU% | 状态 |
|---|
接口调用统计
所选时段 · 按次数排序| 接口 | 次数 | 均值 | 最大 | 4xx | 5xx |
|---|
IP 访问与黑名单
域名隧道流量由 Cloudflare 附带真实客户端 IP(nginx 改写后伪造不了); 访问统计是内存态(重启清零),黑名单落库持久化、命中即 403。
黑名单
| IP | 原因 | 来源 | 封禁截止 | 操作 |
|---|
近 1 小时访问
| IP | 近 1 分钟 | 近 1 小时 | 累计 | 最后访问 | 操作 |
|---|
手动拉黑
填 IP 立即生效:命中后该 IP 所有请求直接 403。默认永久(只能由管理员手动解封); 选了时限则到期自动解封。已封的 IP 与解封/改时长在「黑名单」区块。
自动封禁
命中下面任一条即按 IP 自动封禁(有期限、到期自动解封)。 三道防误伤:① 只封真公网 IP(内网访问 / 本机永不封); ② 登录成功过或用着 token 的 IP 进「可信名单」豁免 12 小时——自己输错密码不会被自锁; ③ 自动封禁绝不覆盖手动封禁。
流量控制
正常站点开关
维护(非管理员见维护页、接口 503)→ 软暂停(同上)→
关闭CF隧道(关 CF 隧道)→ 停止服务(连主服务一起停,之后后台自己也进不去);
降级模式能设时长、到点自动恢复,不触发自愈;后两档需邮箱验证码,
后台执行 sudo bash /root/stockboard/script/service_guard.sh resume
手动恢复,把 resume 换成 status 可查看当前状态与剩余时间。
消息源配置
这里集中配置站点级的消息来源凭据(邮件 SMTP + 微信测试号)—— 配一次、所有用户共用。每个用户自己只需在「我的推送通道」里填 自己的收件邮箱 / openid。
📧 邮件(SMTP 服务器)
💬 微信(官方测试号)未配置
配置地址:mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
长文本想点「全文」就地展开(不跳转):需对方 48 小时内给测试号发过消息 (发一句话即可开启);超过窗口自动改用模板卡片,点「详情 >」跳站内读全文。