Vibe-Trading 周期定位透镜(Marks Cycle Positioning)实战指南:以第二层思维与可观测证据校准攻防姿态
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
框架声明,而非投资建议。本文介绍的是 Vibe-Trading 的
investor-lenses技能包中复现的"周期定位透镜"(Cycle Positioning Lens):它是对公开方法论的重构与程序化封装,并非被署名者的原始观点,其产出结论仅在自身框架内成立。
周期定位透镜用于回答一个无法回避的问题:在贪婪与恐惧的周期中,市场此刻站在哪里,我应该更激进、更中性还是更防御?它刻意拒绝预测——不预测点位、不预测日期,而是用量化可观测的市场温度计测量当下,并把结论输出为**姿态(posture)**而非预测。本指南以 marks-cycle-position.md 为骨架,结合 Vibe-Trading 的investor-lenses技能路由与运行机制,完整讲解该透镜的六个优先信号、四个硬否决、评分表、典型误用与证伪器,并给出可直接复用的跨市场指标清单与输出契约。读完你将掌握一套"先测体温、再定攻防"的完整决策流程,以及它在 Vibe-Trading Agent 中的实际调用方式。
一、透镜是什么:一份固定顺序的推理程序
在 Vibe-Trading 的 investor-lenses 技能 中,透镜(lens)被定义为一种推理程序:一组固定、有序的问题,加上明确的否决规则,从一个投资者公开发布的方法论中蒸馏而来。它只在证据已经存在之后运行——不负责收集数据,也不关心数据来自哪里。
周期定位透镜在 12 个透镜中的定位(见 SKILL.md 透镜索引):
| 维度 | 取值 |
|---|---|
| 透镜名 | Cycle positioning(周期定位) |
| 归属 | Howard Marks |
| 风格 | Contrarian / risk-first(逆向 / 风险优先) |
| 最擅长 | 判断贪婪-恐惧周期当前所处位置 |
| 最盲区 | 单一公司的基本面 |
其前导元数据(frontmatter)在源文件头部即被声明:marks-cycle-position.md 第 1-8 行:
name: marks-cycle-position lens: Cycle Positioning and Second-Level Thinking attributed_to: Howard Marks style: contrarian markets: Any liquid market; applies to the market environment rather than to a single security description: Judge where the market sits on the greed–fear cycle, ask what is already priced in rather than what is true, and set aggressiveness from the cycle position rather than from forecasts.这一段元数据是整套技能的结构基石——test_investor_lenses_skill.py 会逐文件校验name / lens / attributed_to / style / markets / description六个键必须齐全,且name必须与文件名一致,保证索引与磁盘双向对齐、不出现死链。
二、它优化什么:给环境测温,而非给公司打分
透镜的优化目标非常明确:根据情绪与定价在周期中的位置,校准自己的进攻强度。它的分析单元是"市场环境",不是"某家公司"。几个关键姿态在源文档中反复强调:
- 它故意拒绝预测——测量当下的温度,调整攻防姿势;
- 它的单位是环境,不是公司;
- 它输出的是一个旋钮(dial):更激进、中性、更防御,附带仓位规模与质量偏好,永远不是日期,也永远不是点位。
这也是它区别于其他透镜的地方。对比同目录下的 dalio-debt-cycle.md(债务周期透镜)——后者回答"经济处于长短债务周期的哪个阶段、组合应该长成什么形状",是配置透镜;而周期定位透镜回答"市场已经 price in 了什么、我应该多大力道出手",是姿态透镜。两者在技能选择表中被明确设计为可叠加(见下文"叠加协议")。
三、六个优先信号:按此顺序依次走过
源文档给出了一套必须按顺序走完的信号清单,顺序本身就是方法论的一部分——跳过任何一项都是对流程的破坏:
1. 第二层思维表述(Second-level formulation)把问题从"这是一家好公司 / 一个经济体好吗"重述为:
- 市场共识是什么?
- 这个共识是否已经嵌入价格?
- 我具体在哪个维度上与其不同?
如果自己的观点与共识完全一致,那么无论正确与否都没有超额收益。这是整个透镜的哲学起点,也是最容易在写作时被一带而过、却决定后续所有步骤质量的一步。
2. 用可观测物测温,而不是用观点测温这一信号包含五个可观测家族,每一类都有明确的度量对象:
| 观测家族 | 具体度量 |
|---|---|
| 风险溢价(risk premia) | 信用利差相对自身历史的水平、股权风险溢价 |
| 发行质量(issuance quality) | 契约条款松紧、IPO 质量、弱资质借款人的融资难易——这是单一最可靠的指标 |
| 系统杠杆(leverage) | 融资余额、prime brokerage 杠杆、衍生品未平仓量 |
| 投资者行为(behaviour) | 资金流、新开户数、换手速度 |
| 叙事(narrative) | "这次不一样"是否在流传、由谁在说 |
注意一个细节:文档特意把"发行质量"标注为单一最可靠指标(the single most reliable indicator here),因为它是"人们用钱投票"的直接结果——弱借款人拿不到钱,比任何问卷调查都诚实。
3. 把位置放到钟摆上,而不是放到预测上只允许在五段刻度上定位:euphoria(狂热)→ optimism(乐观)→ neutral(中性)→ pessimism(悲观)→ capitulation(投降)。必须说明是哪些观测把它放到该位置的——不允许只报结论不报依据。
4. 问价格意味着什么逆向工程当前价格中已经隐含的增长 / 违约 / 利润率假设。价格是一份预期声明,在争论它之前先读懂它。
5. 设定姿态,而不是设定预测输出是"旋钮":更激进、中性、更防御,附带仓位规模与质量偏好。永远不是日期,永远不是点位。
6. 不对称性检查在这种环境下,犯错付出的代价与正确得到的回报,谁更大?周期后期,不对称性会在周期掉头之前很久就变得对你不利。
四、跨市场适配:同一个体温计,不同的读数口径
透镜的可移植性恰恰来自它测量的是行为——"行为在不同标的上会押韵,即便工具各不相同"。但具体指标是市场结构依赖的,源文档给出了三个市场的明确映射:
| 市场 | 使用指标 |
|---|---|
| A 股 | 融资融券余额、新开户数、换手速度、新基金发行 |
| 港股 | 南向资金流、IPO 管线活跃度、双重上市(A+H)折价行为 |
| 加密 | 资金费率(funding rates)、永续未平仓量(perpetual open interest)、杠杆清算(leverage liquidations) |
这三组指标在 Vibe-Trading 仓库中都能找到源码级支撑,说明该透镜并非纸面推演,而是与现有数据基础设施对得上的:
- 资金费率:perp-funding-basis 技能 给出了完整的多空拥挤度阈值表——例如 8 小时资金费率 > +0.05%(年化 +54.75%)判定为极端多头拥挤,对应逆向减多;<-0.02% 判定为空头挤压区,对应逆向做多。它还把资金费率分为 per-8h 的 API 原始小数(
0.0001= 0.01%),年化公式为funding_rate_8h * 3 * 365。 - 杠杆清算:liquidation-heatmap 技能 给出了清算价格与杠杆率的确定性关系(10x 杠杆多头约 -10% 触发清算、50x 约 -2%),并把清算聚集区视为支撑/阻力信号——这正是"系统杠杆"与"杠杆清算"两个观测家族的度量基础。
- 融资余额 / 换手:A 股体系下融资融券余额与新开户数据经由 eastmoney、tushare、akshare 等数据源技能可获取,与 tushare 技能 的日频接口体系对应。
使用提醒:把为某个市场设计的观测清单搬到另一个市场前,必须先读市场适配说明并逐项替换——"套用美国市场叙事判断 A 股温度"是该透镜的高频误用之一。
五、四个硬否决:碰到就停,不参与加权
硬否决(Disqualifiers)是这套方法论里最强调纪律的部分——否决不与正面证据加权抵消,一旦触发,本次运行在该透镜下直接终止。四个否决项必须逐条检查并明确标注"已触发 / 未触发 / 未知":
- 任何包含择时(market-timing)意味的输出——点位或日期。构造上就超出透镜范围;
- 只用叙事测温,缺乏可度量的风险溢价、发行或杠杆证据;
- 为逆向而逆向——与人群相反本身不是 edge,与人群相反且针对某个具体错误定价判断正确才是。必须陈述那个错误定价是什么;
- 断言周期位置却不承认极端会持续——周期读数不是触发器;如果把它当触发器使用,透镜已被误用。
六、评分表:从读数到姿态的映射
源文档给出了一张完整的"读数 → 证据模式 → 姿态"评分表,这是透镜落地的关键产出:
| 读数 | 证据模式 | 姿态 |
|---|---|---|
| Euphoria(狂热) | 利差处于周期最紧、covenant-lite 发行容易、杠杆上升、"新范式"言论盛行 | 最大防御:提高质量、降杠杆、增流动性 |
| Optimism(乐观) | 风险溢价低于均值、发行健康 | 适度防御 |
| Neutral(中性) | 风险溢价接近长期均值 | 正常姿态;此时透镜不增加信息,应当如实说明 |
| Pessimism(悲观) | 风险溢价高于均值、发行有选择性 | 适度进攻 |
| Capitulation(投降) | 被迫抛售、融资在任何价格下都不可得、优质资产随垃圾一起被卖 | 在授权范围内最大进攻 |
注意 Neutral 一行的自我约束:"the lens adds nothing here, say so"——承认透镜此时没有增量信息,本身就是纪律的一部分。这与 SKILL.md 的反模式清单 中的"lens shopping"(反复运行直到某个透镜同意既有结论)形成对照。
七、典型误用:五个已知的失效模式
源文档列出的五个误用,几乎每条都对应一个纪律检查点:
- 当作择时工具使用——极端可以持续得比一个仓位能撑的时间更久。透镜告诉你"如何站队",不告诉你"何时掉头";
- 应用到单一股票——公司的基本面不是周期读数,混为一谈会在两个方向上产生"自信的胡说";
- 只用情绪调查测情绪——调查噪声大且常与持仓数据矛盾。优先相信人们用钱做了什么(发行、杠杆、资金流),而非他们说了什么;
- 把永久看空洗白成纪律——检查过去几年透镜是否产出过任何"应该激进"的读数;如果没有,说明施加了砝码(thumb on the scale);
- 只读单一指标——单独看信用利差、或单独看资金流,都会制造虚假的极端。读数必须在多个观测家族上收敛。
八、证伪器:什么观测会让本次结论作废
一份可证伪的结论才有引用价值。源文档给出了三个具体的证伪条件,每一个都可操作、可核查:
- 你的读数还是"狂热",但风险溢价已大幅走阔 → 温度读数已经过时,钟摆早已移动;
- 弱资质借款人失去融资渠道 → 无论指数点位如何,晚期周期的读数被确认;
- 你认定的"共识"其实不是共识(持仓数据与叙事矛盾)→ 第二层思维前提错误,整个运行作废。
第三条值得展开:它意味着每次输出必须明确"我所说的共识是哪一个,证据是什么",否则一旦叙事与持仓数据打架,结论不是"修正"而是"作废"。
九、输出契约:结论必须以框架为条件
任何在investor-lenses技能下产生的输出都必须按 SKILL.md 的输出契约 依次包含八项内容,周期定位透镜自然受其约束:
- 透镜名称 + 一句话说明它优化什么;
- 结论显式声明以框架为条件——表述为"在此框架下,……",而不是对市场的平铺直叙断言;
- 有序的信号遍历——每个优先信号、找到的证据、是否通过;缺失证据必须写"缺失",不得推断;
- 否决检查——每个硬否决标注 已触发 / 未触发 / 未知;
- 误用检查——当前场景是否落在该透镜被文档记载会失败的区间;
- 证伪器——两三个能推翻结论的具体观测,每个都要具体到别人可以去核查;
- 置信度及其限制因素——"中等,受限于缺乏分行业披露",而不是一个光秃秃的数字;
- 常驻免责声明:这是分析框架,不是投资建议,结论以所用框架为条件。
具体到周期定位透镜,源文档的输出契约 还追加了三条:结论必须以"under a cycle-positioning framework, …"开头;给出钟摆读数并按观测家族逐项列出证据;结论表述为姿态——永远不是点位或日期。
十、在 Vibe-Trading 中如何被调用:渐进式披露与按需加载
周期定位透镜不是一个独立程序,而是通过investor-lenses技能包被 Agent 按需读取的。理解它的运行机制需要看两条链路:
链路一:系统提示只注入摘要,全文按需加载。skills.py 的get_descriptions()只把每个技能的一行描述按分类组注入系统提示;完整文档由load_skill工具按需拉取(get_content)。而 load_skill_tool.py 实现了两级渐进式披露:文档较短(约 53 个技能)一次返回全文;超长文档先返回骨架(标题树 + 每节大小 + 首行 + 开头文本),Agent 再点名要某个 section(支持"Parent > Child"路径消歧),最后才是按 offset 顺序翻页。对周期定位透镜这类纯推理文档,Agent 一次即可读完整篇。
链路二:技能与数据层解耦。test_investor_lenses_skill.py 断言任何透镜文件都不得硬编码已注册的工具名(如get_market_data、funding_rate等带下划线的多词工具名)。这是刻意设计:透镜只描述推理,不绑定数据获取——证据从哪来由运行环境决定,透镜只管"拿到证据后怎么走信号顺序"。这意味着同一份周期定位透镜,既可以在加密场景喂入 funding rates + 未平仓量,也可以在 A 股场景喂入融资余额 + 新开户数,而不需要修改透镜本身。
链路三:技能选择表与叠加协议。在 SKILL.md 的选择表 中,"市场此刻是狂热还是绝望?"被明确路由到Marks(周期定位),并可叠加Dalio(债务周期);反之,"利率/汇率/流动性制度会带来什么?"以 Dalio 起手、叠加 Marks。叠加的纪律包括:最多两到三个透镜;必须选真正可能产生分歧的透镜;每个透镜先独立运行再比较;分歧必须归因到 horizon / caliber / risk preference / information 四类根因之一;永远不对结论取平均——透镜不是投票者。
十一、结构测试:防止文档级纪律在迭代中腐烂
最后值得说明的是,这份透镜文档不是一段孤立文本,它受到结构性测试的持续保护(见 test_investor_lenses_skill.py):
- 必需章节:每个透镜必须包含
What this lens optimizes for / Market-fit note / Priority signals / Disqualifiers / Typical misuse / Falsifiers / Output contract七个章节,缺失即测试失败(第 200-206 行); - 免责声明必在:
**Framework, not investment advice.**必须出现(第 208-211 行); - 框架条件化表述:输出契约小节内必须匹配
under (this|an?) ... framework与not investment advice(第 214-230 行)——防止"顶部免责声明"充当挡箭牌; - 非 stub 守卫:任何透镜正文少于 2500 字符即视为占位符(第 233-236 行);
- 索引双向一致:路由表链接的每个透镜都必须真实存在于磁盘,磁盘上的每个透镜都必须被索引(第 170-175 行)。
换言之,你看到的这份周期定位透镜文档的每一项结构,都被当作产品契约来维护——这正是它可以作为"可复现的推理程序"被 Agent 可靠执行的底层保障。
小结
周期定位透镜把霍华德·马克斯的钟摆思想压缩为一条可执行的路径:第二层思维开场 → 五族可观测证据测温 → 钟摆五档定位 → 逆向工程价格内含预期 → 输出姿态旋钮 → 不对称性收尾,并以四个硬否决、五个误用场景、三个证伪器封住纪律漏洞。在 Vibe-Trading 中,它经由investor-lenses技能路由与load_skill按需加载机制运行,与perp-funding-basis、liquidation-heatmap等数据技能天然衔接,且与债务周期透镜形成受纪律约束的叠加组合。记住它的边界:它告诉你如何被定位,不告诉你何时掉头;它测的是环境的温度,不是公司的质量。这是分析框架,不是投资建议。
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考