TradingBeats · For You 时间线 · 方法论

For You 打分规则 v1

草案 · 2026-09-13给鹏哥与技术团队仓库路径 方法论/打分规则.md配套 打分后台

把「每 5 分钟跑一次,行为分乘人的权重乘时间衰减,分档出流」写成一套可以直接实现、可以在后台逐项核对的规则。所有数字都是默认参数(见第 7 节),改参数不改结构。

总公式 · 每条帖子 p 在第 k 个节拍
S(p,k)=B(p)×g(P(a))×D(p,k)
B · 行为分 · 0–10
这条动作本身有多大、什么类型、结果如何。纯数字规则,动作每次更新时重算。
P · 人的分 · 0–10
这个地址值不值得看。AI 打,每天一次,慢变量。g(P) 把它变成有界乘数。
D · 时间衰减 · 0–1
按节拍老化,越大的动作衰减越慢;24 小时到期,特别大的留到 72 小时。

三者分工:B 决定「这件事本身」,P 决定「谁做的」,D 决定「多久以前」。人的分做成乘数而不是加数,是因为你们要的是「给人打权重」:P = 10 的人最多把自己的帖子放大 1.5 倍,P = 1 的人缩到 0.6 倍,不会出现加法模型里「名人的小动作压过无名氏的强平」。

01节拍与动作

1.1 节拍

1.2 监控集合

1.3 动作 = 行

沿用现有方法论的「行」:同地址、同币、同动作类型的相邻成交合并,间隔 ≤ 90 分钟(现货 120 分钟)视为同一行,仓位归零处强制断行,反手拆成「平掉原仓 + 从零开新仓」两行。动作类型:行前仓位为 0 → 建仓;行前仓位与变动同号 → 加仓(按浮盈浮亏分滚仓 / 补仓);否则减仓(按盈亏分止盈 / 止损,归零为清仓);被清算的是本人 → 强平;现货买卖;账本类 入金 / 出金 / 质押 / 解押 / 转入 / 转出。

1.4 跨节拍的行:原地更新,不重复发

「超过 5 分钟的动作先不考虑」的落地方式就是这条。不需要额外逻辑,一个 2 小时的 TWAP 只是一条被更新了 24 次的帖子。

1.5 成帖门槛(可关)

建议保留一条低门槛,目的是过滤刷单噪音、控制存储,不是筛质量(质量由分档决定):

02行为分 B 规则 · 0–10

四个归一化到 [0, 1] 的分量加权,再乘压制系数:

B_raw = 0.40 · size + 0.30 · type + 0.20 · result + 0.10 · context
B     = 10 · clamp(B_raw · m, 0, 1)

2.1 size 规模

2.2 type 动作类型

类型type类型type
强平1.00出金0.50
清仓0.80入金0.40
建仓0.70解押0.40
补仓(带浮亏加)0.50质押0.25
滚仓(带浮盈加)0.50现货卖出0.40
止损部分0.50现货买入0.35
止盈部分0.45转入 / 转出0.20

2.3 result 结果

2.4 context 市场语境

2.5 压制系数 m(连乘)

03人的分 P AI · 0–10 · 每天一次

3.1 节奏

3.2 先验值(AI 未评时用)

公众人物/KOL 7;行为命名巨鲸 6;风投与财库 5;社区交易员 5;其他有备注 4;仅因上过前十大进池 3。有 X 账号 +1,有描述 +0.5,上限 10。排除类型 0。

3.3 喂给 AI 的「地址事实表」

组字段
身份别名、主体类型、人工描述、X 账号与简介、粉丝数
资金总资产、全周期盈亏、30 天盈亏、7 天盈亏、30 天曲线的最大回撤
交易画像回合数、胜率、平均持仓时长、最大单笔名义、强平次数、多空占比、交易过的币种数、TWAP 成交占比、日均行数
上榜进过哪些资产前十大、最高名次、最近一次在榜时间
近期最近 10 条过门槛动作的标题句(就是帖子的标题句)

3.4 AI 输出(结构化)

overall   0–10   综合分,就是 P
dims      影响力 fame / 实力 skill / 信号价值 signal / 戏剧性 drama,各 0–10
tags      ≤ 4 个短标签,如「方向性重仓」「对冲」「频繁强平」「新入场」
reason    ≤ 60 字,一句话理由
exclude   true / false,行为像做市、对冲、搬砖,不该进流

3.5 让分数稳定的四条

  1. 批内相对比较:每次请求送 25 个地址,AI 在同一批里比较着打,比逐个绝对打分稳。
  2. 锚点:每批混入 3 个固定锚点地址(已定分,如某头部 KOL = 9、某典型标注巨鲸 = 6、某做市商 = 排除)。任一锚点偏差 > 1.5,整批作废重跑。
  3. 平滑:已有旧分(≤ 14 天)时 P_new = 0.6 · AI + 0.4 · P_old,单日变动上限 ±2。
  4. 只在输入变了才重评:事实表哈希没变的地址跳过,沿用旧分。

3.6 留痕

每条 P 记录 addr, P, dims, tags, reason, exclude, prompt_version, model, facts_hash, scored_at。评分标准那段 prompt 有版本号,改一次 prompt 就是一个新版本,后台按版本对比分数变化。

3.7 人的分变乘数

g(P) = (1 − κ) + κ · P / 5      κ = 0.5  →  g ∈ [0.5, 1.5],P = 5 时 g = 1
P = 0 → 不成帖

κ 调大,人的权重更重(κ = 1 时 g ∈ [0, 2])。

04时间衰减 D 按节拍 · 0–1

age  = 现在 − 行内最后一笔成交时间(小时)
D    = 1                               age ≤ 1
D    = 0.5 ^ ((age − 1) / H(B))        age > 1
H(B) = clamp(12 · 2^((B − 5) / 2), 6, 48)    小时

半衰期随行为分变。「特别大的行为可留」就是这一条,不用另立规则:

B = 3
6h
半衰期
B = 5
12h
半衰期
B = 7
24h
半衰期
B ≥ 9
48h
半衰期

D 每个节拍重算,所以「以每次跑为节点,新帖子进、最老的退」成立;只是「退」由 D 和出场规则决定,不是数量上限。

05合成、分档、出流

5.1 分档

5.2 档内顺序

档内按行内最后一笔成交时间新在前,不按 S。分档管质量带,档内顺序管新鲜度,两件事分开。以后要加「随机」就是把这一条换掉,其余不动。

5.3 出流(每次刷新 / 每页)

候选 = 第 1 档 ∩ 该用户未读
按 5.2 排序,同一地址最多 2 条、同一资产最多 4 条
取 10 条;不够则拼接第 2 档未读,依此类推
返回的 10 条立即记为已读(已读表按帖子 id,72 小时过期)

5.4 推送与刷新:什么会变、什么不会变

说明

拉取式,不是推送式。用户每次打开、下拉刷新、翻页,服务端按当前节拍的档位取这个用户未读的 10 条。没有定时批量推送,也没有主动通知。

一条给一个人只出现一次。发过就记已读,72 小时内不再出现;帖子最长也只活 72 小时,所以对同一个人就是只见一次。分数和档位每 5 分钟都在变,但一条帖子后来升到第 1 档也不会回头再推给已经看过的人;原地更新(滚仓 300 万变 350 万)同样不重置已读。

两个人同一时刻看到的不一样,因为已读表是按人的:A 的「第 1 档未读」和 B 的不是同一批。

东西变不变多久
规则里的权重(0.40 / 0.30 / 0.20 / 0.10、κ、半衰期、上限)不变,版本内常量改了就是新版本
行为分 B同一行来了新成交才变随成交
人的分 P变每天一次
衰减 D、总分 S、档位变每 5 分钟一节拍
某个用户的已读只增不减72 小时过期

待定 主动推送(比如关注的地址有大动作时发通知)不在 v1 里。要做的话建议规则:只推关注的地址、只推 B ≥ 7 的动作、每人每小时最多 3 条、同一行只推一次(原地更新不再推)。

06后台展示

两张表,都按分数排,每个数字可以点开看来源。已按本节做成 打分后台,跑在 feed3.json 的真实帖子上。

帖子表

标题句 · S · B(size / type / result / context 四个分量、m 压制)· P(g 乘数)· D(age、H)· 档 · 更新次数 · 帖子 id。

地址表

别名 · P · 四个维度 · 标签 · 理由 · exclude · 先验值 · 上次评分时间 · prompt 版本 · 事实表快照(点开)。

第一版验收标准:鹏哥能在地址表里看出「为什么这个人 8 分那个人 4 分」,能在帖子表里看出「为什么这条在第 1 档」。

07参数表

参数默认作用
TICK5 分钟节拍
GAP_PERP / GAP_SPOT90 / 120 分钟合行间隔
THRESHOLD_ONtrue成帖门槛开关
MIN_NOTIONAL / MIN_PNL1 万 / 5,000 美元门槛
W_SIZE / W_TYPE / W_RESULT / W_CTX0.40 / 0.30 / 0.20 / 0.10B 的权重
SIZE_ABS_LO / SIZE_ABS_HI1 万 / 1,000 万美元size_abs 两端
SIZE_REL_FULL30% 总资产size_rel 满分点
RESULT_LO / RESULT_HI1 万 / 100 万美元result 两端
M_FLAT / M_SPAM / M_TINY0.5 / 0.6 / 0.7压制系数
SPAM_ROWS30 行 / 24 小时刷单判定
KAPPA0.5人的权重强度
P_BATCH / P_ANCHORS / ANCHOR_TOL25 / 3 / 1.5AI 批次与锚点
P_SMOOTH / P_MAX_STEP0.6 / ±2平滑
P_STALE14 天过期退回先验
GRACE1 小时衰减前的平台期
H0 / H_MIN / H_MAX12 / 6 / 48 小时半衰期基准与上下限
EXIT_AGE / KEEP_B / HARD_EXIT24 小时 / 8 / 72 小时出场
TIERS10档数
PAGE / CAP_ADDR / CAP_ASSET10 / 2 / 4每页条数与多样性上限
READ_TTL72 小时已读保留

08算例

例一 · 名人的一次中等清仓

麻吉大哥(P = 9),清仓 HYPE 多单,盈利 15 万,名义 300 万,总资产 5,000 万,HYPE 在热度榜第 3,30 分钟前。
size_abs = (6.48 − 4)/3 = 0.83    size_rel = 300/(0.3×5000) = 0.20    size = 0.64
type = 0.80    result = (5.18 − 4)/2 = 0.59    context = 0.6
B = 10 × (0.256 + 0.240 + 0.118 + 0.060) = 6.7
g(9) = 1.4    age 0.5h → D = 1
S = 9.4 12 小时后 H(6.7) = 21.9h,D = 0.71,S = 6.7;24 小时出场(B < 8)。

例二 · 无名氏的强平

只因上过前十大进池的匿名地址(P = 3),BTC 多单被强平,名义 500 万,亏损 120 万,总资产 800 万。
size_abs = 0.90    size_rel = 500/(0.3×800) → 1    size = 0.93
type = 1.0    result = (6.08 − 4)/2 → 1    context = 0
B = 10 × (0.372 + 0.300 + 0.200 + 0) = 8.7
g(3) = 0.8
S = 7.0 H(8.7) = 43.6h:12 小时后 D = 0.84,S = 5.9;24 小时后 D = 0.69,S = 4.8,因 B ≥ 8 留到 72 小时。

例三 · 名人的一次小补仓

KOL(P = 8),补仓 3 万美元 BTC,总资产 200 万,浮亏 1 万,BTC 在热度榜第 8。
size_abs = 0.16    size_rel = 0.05    size = 0.13
type = 0.50    result = 0.5 × 0 = 0    context = 0.3
m: N < 1% E 且 N < 10 万 → × 0.7
B = 10 × (0.052 + 0.150 + 0 + 0.030) × 0.7 = 1.6
g(8) = 1.3
S = 2.1 H = 6h,6 小时后 S = 1.2。第 9、10 档,24 小时出场。
名人清仓
9.4 无名氏强平
7.0 名人小补仓
2.1

名人身份把一次中等清仓抬到第一档,但抬不动一次小补仓;无名氏的强平靠行为分自己站到前面。

08b实现状态 2026-09-15

08c人优先模式与头像加成 2026-09-15 晚上线

用户两条要求:人比行为和时间衰减重要得多;首页尽量是有头像的帖子。落地为三处,默认开启,参数在后台可调:

合成公式换主轴:S = P × (1 + B/10) × D′。P 是主轴,行为分只在 1 到 2 倍之间放大;D′ 在 P_GRACE = 6 小时内不衰减,之后半衰期 P_HALF = 36 小时(对所有帖子一样,不随 B 变),P_EXIT = 48 小时出场。PERSON_FIRST = 0 可回到 v1 的 S = B × g(P) × D。

P 的来源分三层:手调(p_overrides.json)> AI 主观分(地址池体检/p_scores.json,v2:只看名字的认知度与故事性)> 先验值。排除类型仍是 0。

头像加成:作者是「人」(KOL / 社区交易员 / 行为命名巨鲸),有 X 头像且粉丝 ≥ AV_MIN_FOL = 5000,P 加 AV_BONUS = 2(封顶 10)。后台来源列显示「主观v2+头像」。

有头像的人成帖门槛放低(gen_feed3 CFG):绝对下限 2 万 → 5 千美元,相对下限 12% → 3% 本地址最大行,盈亏下限 1 万 → 2 千;刷单地址的抬高从 35% 最大行改为 10%。麻吉 48 小时 80 行原来只成 8 帖,就是被 12% / 35% 两条相对门槛挡住的。

供给的上限:活 feed 918 条存活帖子里,有头像且粉丝 ≥ 5000 的作者只有 11 条帖子。排序只能把这些顶上去,变不出更多。要让首页真正「尽量有头像」,还得:把 KOL 推特流(/xfeed/ 的流③)作为帖子并进来;给更多地址标上 X(这是标注工作)。

08dbuilder 头部用户加成 2026-09-16

用户要求:builder app 的头部用户要突出,权重抬高、多出现在时间线上;时间线和各榜单上要能看出他是哪家 builder 的,放 builder 头像。

数据:flowscan builder intelligence 全量主表 746,890 个地址,取「总榜前 1000 ∪ 每家有名 builder 各自前 100(按累计 builder fee)」= 4,432 个地址 → builders_top.json(主 builder、本 builder 名次 rb、总榜名次 r、累计 / 30 日 / 7 日 fee)。builder logo 来自 flowscan 的 /logos/ 静态图,47 家 → builders_logo.json。

加成(叠在 P 上,封顶 10,后台参数可调):本 builder 交费第 ≤ 20 名 +3;≤ 100 名 +2;总榜 ≤ 1000 名 +1。后台来源列显示「+builder」,算式里写清是哪家第几名。

候选:近 7 日有 builder fee 的头部用户(730 个)全部进全网候选,交费越多分越高,保证他们的动作被抓到。

展示:帖子卡片、地址主页、发现地址(Pro 表)、热门地址、悬浮卡、KOL 榜、推特流上,名字旁边一个圆形 builder logo + 名字的小徽章,悬停看「交费第几名」。

09与现有代码的对应

现有 gen_feed3.py 的 score = 名气 + 规模 + 动作 + 盈亏 + 相对规模 + 时效 + 热度,改动是替换不是推倒:

现有项去处
名气(CAT_W 查表 + X + 描述)变成 P 的先验值;正式值由 AI 给,乘数 g(P)
规模、动作、盈亏、相对规模、热度归一化后进 B 的 size / type / result / context / m
时效 −0.35 × (小时/12)换成 D
贪心重排(同地址 −0.9、同币 −0.45)与热门资产保底换成出流时的每页上限(同地址 2、同资产 4)
p['id'] = 排名序号换成 (地址, dex, 币, 行起始时间) 哈希
行的合并、动作判定、句式、行动线原样沿用