AI 决策与风控¶
一轮决策¶
- 拉取行情(价格、7 日和 30 日涨跌、日线收盘价,以及代码算好的多周期指标,见下文)和账户余额。各币种的 K 线并行拉取,并缓存几分钟,所以每轮和每次下单前的复核都只需要刷新实时价格。
- 检查暂停条件。已经暂停,或者触发了暂停条件时,不调用模型,本轮跳过。
- 把数据交给模型。模型只能返回一份 JSON 计划:摘要、行情观点、动作列表、信心。每个动作都必须写理由和"判断错了的信号"。
- 解析失败、超时或模型报错时,本轮不交易,只发通知。
- 风控引擎逐条检查动作,每个动作只会落到以下一种结果:
自动执行:不超过自动执行额度,并且今日自动执行总额还有剩余。待批准:超过额度,等你确认。截断:只放行允许的部分,再按上面两条处理。拒绝:违反硬限制。- 全过程写入审计记录:输入、提示词、原始输出、风控结果、成交。
模型还可以给出最多 3 个价格提醒(通常就是它判断错了时的关键价位)。新一轮会替换它之前设的提醒;离现价超过 50%、或者设了就会立即触发的价位会被丢弃。提醒只做通知,不会自动交易。
主模型调用失败时,如果配置了备用模型,会自动改用备用模型,审计里会记下这一点。两个都失败时,本轮不交易。
模型看到的指标与胜率复盘¶
每个币种附带代码计算的指标:trend_1d(价格相对 20 / 50 日均线)、trend_4h(4 小时 EMA12 / EMA26)、二者合成的 regime(uptrend / pullback / rebound / downtrend / range)、日线和 4 小时 RSI14、atr14_pct(日均波幅)、change_24h、vs_sma20。market_breadth 汇总本轮资产中处于上升 / 下降趋势的比例和 BTC 的状态。
动能与量能指标:
| 指标 | 含义 |
|---|---|
macd_1d / macd_4h |
MACD(12/26/9):金叉 / 死叉、零轴上下、柱状图占价格比例及是否在增强 |
bb_1d |
20 日布林带:pct_b(0 在下轨、1 在上轨,超出表示偏离过度)、width(带宽,收窄后常迎来大波动) |
vol_ratio_1d / vol_ratio_4h |
量比:最近一根已收盘 K 线成交量相对前 20 根均量的倍数,放量突破更可信 |
开启合约后,每个合约还带资金费率(当前、近 3 次均值、连续为正的次数)和持仓量(4 小时 / 24 小时变化、持仓价值),用来判断是新资金推动还是空头回补、多头是否拥挤。提示词要求模型顺大势、多周期确认、不追高不抄底、按波动调整金额、只做期望值为正的交易。
track_record 是 AI 自己过去交易的实际结果:每笔由决策产生的现货成交(不含手动分配的再平衡)在 24 小时和 7 天后对照价格评分,BUY 之后上涨、SELL 之后下跌且超过 0.2% 往返手续费算胜;合约按已实现盈亏计。模型据此在胜率低时提高门槛、减小金额。同样的统计显示在「AI 决策」页顶部,也可以通过 /api/track-record 读取。
performance_30d 是账户近 30 天的整体表现(收益、最大回撤、夏普、同期 BTC、胜率、盈亏比、最长连亏),回撤变大、连亏或盈亏比低于 1 时 AI 会降低仓位和频率,见 绩效与回测。
每轮的耗时按阶段记录(行情、账户、模型、执行),显示在决策详情页。
决策调用时模型没有任何工具,能影响结果的只有这份 JSON,所以提示注入最多只能让它提出一个仍然要过风控的方案。
什么时候决策¶
默认是 AI 自主实时决策,不再按固定时间表:
- AI 自己定节奏:每轮计划里,模型可以写
next_check_minutes(多少分钟后再看)和wake_move_pct(多大波动提前叫醒它)。行情平静时它可以拉长间隔省调用,波动大、刚下单或判断临近验证时缩短。没写就用「AI 未指定时的复查间隔」和「默认波动唤醒阈值」。 - 事件实时唤醒:后台通过币安公开的 websocket 实时接收白名单币种和 BTC 的价格(断线时自动改用 REST 轮询)。出现下面任一情况会提前唤醒模型,并在这一轮的输入里告诉它为什么被叫醒:
- 任一关注币种较上一轮价格涨跌超过唤醒阈值;
- 价格触及它设的关键价位(alerts)或你手动设的提醒;
- 合约触发止损、止盈、强平,或在币安上被平仓;
- 你批准的交易成交;
- 它管理的余额发生明显变化(例如充值,或理财之外的资金变动)。
- 边界由你设定(设置 → 节奏):两轮最短间隔(默认 5 分钟,手动决策不受限)、最长不决策(默认 240 分钟,到点必看一次)、每日模型调用上限(默认 48 次,用完后当天不再自主决策并通知你一次,手动决策不计入)。
- 只管时机,不管额度:被唤醒的每一轮和定时轮完全一样,所有动作都要过下面的硬限制,大额照样进审批。已暂停时,事件不会唤醒模型;到点的复查只记录一轮跳过,不调用模型。
改完设置可以马上重跑一轮:保存会影响决策的设置(目标配置、投资备注、资产分配、资金与预算、风控限额、合约、理财、稳定币列表、AI 模型、交易风格、个人观点、免审批)后,网页会弹窗、Telegram 会带按钮,问你要不要让 AI 现在按新设置重新跑一轮。选「立即重跑」就是一次手动决策,不受最短间隔限制、不计入每日调用额度;选「稍后」则等 AI 下一次复查时生效。只改节奏、日报时间这类不影响判断的设置不会问;机器人暂停时也不会问。
Telegram 里,AI 自己预约的例行复查如果决定不操作,不发消息;被事件唤醒的轮次会带上唤醒原因。
想回到老方式,把「决策方式」切成「固定间隔」,就按「决策间隔」定时决策,模型给的时间建议会被忽略。
交易风格与个人观点¶
配置 → 交易风格与观点:
- 交易风格:短线 / 中期 / 长期,决定 AI 的持仓周期和交易频率,并限定 AI 自主模式下的复查间隔:
- 短线:持仓数小时到数天,复查 5–60 分钟,没指定时 30 分钟;
- 中期(默认):持仓数天到数周,复查间隔就是「节奏」里的设置;
- 长期:持仓数月以上,分批建仓、少交易,复查 2–24 小时,没指定时 8 小时。 「节奏」里的最短间隔和最长不决策仍是硬边界,例如最长不决策 240 分钟时,长期风格最多也只隔 4 小时。
- 个人观点:整体看法从「强烈看空」到「强烈看多」五档,可以给单个币种单独设看法,再写几句自己的观点(例如「觉得 ETH 要回调,想做空对冲」)。这些会作为主人观点交给 AI:偏多时更积极找买点,偏空时少买、多留稳定币,开启合约后可以顺着观点考虑做空或对冲。观点是指导不是命令,AI 仍要有行情依据,行情明显相反时会在总结里说明;风控限额不会因观点改变。现货不能做空。
Telegram:/style short|medium|long;/view +1(整体,-2 到 +2)、/view ETH -2(单币)、/view note 觉得要回调、/view clear。
硬限制¶
| 限制 | 默认 | 说明 |
|---|---|---|
| 白名单 | 设置里选中的资产(USDT 计价) | 其他交易对一律拒绝;合约动作有单独的白名单和规则,见合约 |
| AI 投入预算 | 不限 | 设置后,累计净投入不超过预算 |
| 锁定资产 | 无 | 锁定的数量对 AI 不可见、不可用 |
| 只买不卖 | 开 | 可以在设置里允许卖出,卖出需要人工批准;免审批包含卖出时才自动执行,且每天最多「每日笔数」笔、「每日金额」美元 |
| 单笔上限 | $800 | 超出部分截断 |
| 单笔自动执行上限 | $200 | 超过就进审批 |
| 每日自动执行总额 | $400 | 防止 AI 把大单拆成多笔小单来绕过审批 |
| 每日笔数 | 3 | 达到后当天不再买入 |
| 每日成交总额 | $2,400 | 超出部分截断 |
| 稳定币下限 | 15% | 买入后稳定币占比不得低于此值 |
| 类别区间上限 | 见目标配置 | 手动分配时限制类别上限;AI 自主分配没有单币上限 |
| 每轮动作数 | 3 | 多余的拒绝 |
| BTC 7 日跌幅暂停 | 25% | 触发后暂停,需要手动恢复 |
| 行情异常暂停 | 连续 3 次 | 例如缺价格、K 线停更、价格偏离过大 |
每个数值都有代码写死的上下限(config.py 的 HARD_BOUNDS),在设置或配置页填超出范围时,会被收回到范围内。
危险设置要二次确认¶
修改下面这些设置时,网页会弹出确认框,列出每一项的「原值 → 新值」,点「确认修改」才保存;Telegram 会发一条带「确认修改 / 取消」按钮的消息。
- 上表的全部风控数值、允许卖出、风险预设(套用预设会改风控数值)
- 目标配置与区间、分配方式、AI 可交易范围和黑白名单
- 锁定资产、AI 投入预算
- 合约的开关和全部限额
- 理财的开关、申购范围、稳定币现货保留
- 计价币、稳定币列表、实盘准入里「允许保留」的 Key 权限
确认在服务端强制执行:保存请求必须带上服务器为这一次改动签发的确认令牌(10 分钟内有效,绑定原值和新值)。没有令牌、令牌过期,或者确认之后设置又变了,都不会保存。决策方式与节奏、模型、日报时间这类不影响资金安全的设置可以直接保存。开启实盘另有确认短语,见模拟盘与实盘。
执行前的最后检查¶
每一笔下单前,都会用最新数据把全部检查重跑一遍,自动执行和人工批准都一样。所以批准时,如果期间已经暂停、额度用完或者价格异常,订单不会执行。