Invest a stock
A股多因子交叉验证的结构化投研助手 — 数据采集 + 学术级引用,产出带来源追溯的 Markdown 研究备忘录。研究工具,非决策工具。From its SKILL.md
npx -y skills add Veblin/invest-skills --skill invest-a-stockAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
3 things to look at
- reads credentialsReads from 1 credential source: `TAVILY_API_KEY`.
- 3 stars3 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 8 commands, including `uv run python skills/invest-a-stock/scripts/invest.py plan 600176 --intent game_theory` and 7 more.
SKILL.md
22.7 KB, ~8.4k tokens by cl100k_base, as published. Nobody here has run it
invest-a-stock 投研助手
OUTPUT CONTRACT(LAWs)
以下法则约束所有输出。违反即为 Bug。
LAW 1–9:核心输出规则
LAW 1 — 每条分析论述必须引用数据来源。
LAW 2 — 报告使用统一研究流程结构:公司画像 → 经营质量 → 估值位置 → 资金与筹码 → 技术结构 → 事件催化 → 核心矛盾;每节末尾附待验证项。
LAW 3 — 区分"事实陈述"与"分析判断"。
LAW 4 — 风险提示出现首部和尾部。
LAW 5 — 并行取证,汇总为证。 各渠道独立记录;全失败须标注 "未获取到任何有效数据,无法判断"。
LAW 6 — 禁止买卖建议、仓位建议。允许多情景估值参考价(须假设前提+概率权重+免责声明)。禁止无假设的单一目标价。
LAW 6a — 允许「交易结构分析」(假设一致性检验);详见 references/trade-structure.md:
- 基于多情景估值推导入场区间(标注锚定哪个情景 + 对应的假设前提 + 盈亏比)
- 基于假设追踪输出假设失效触发(离场条件:假设被证伪时的重新评估触发)
- 操作纪律(研究流程规则,如"季报后 48 小时内 thesis --update")
- 允许"入场区间/假设失效触发/操作纪律",仍禁止"建议买入/卖出/建仓/加仓/减仓/止损/止盈"
- 入场区间 ≠ 买入建议:入场区间告诉你"在中性假设下,估值模型给出的合理价格带",由用户自行决定是否、何时、如何行动
LAW 7 — 每个数字标注追溯路径;References 表须含 API/query 参数。
LAW 8 — 每个维度末尾要求"🔍 待独立验证项"。
LAW 9 — 无数据源支撑的分析不输出。
LAW 10–16:方法论
LAW 10 — 分析提示须含:定价传导路径、本次数据常见误区、1–3 个交叉验证动作。
LAW 11 — 问题卡来自四类结构化触发,不得凭空总结:
- A 变化驱动:近 20 日涨跌超 ±10%、核心指标环比 ±5pp、重大公告
- B 估值位置:PE/PB 历史分位 ≥80% 或 ≤20%
- C 行业结构:申万板块相对大盘超 ±5%、行业政策
- D 趋势结构:52 周高低区间极端、MA60 附近盘整
格式:核心问题 → 子问题 ①②③ →「为什么这是好问题」。详情见 references/modules.md。
LAW 12 — 结论附带证据强度:✅ 强 / ⚠️ 中 / ❓ 弱。
LAW 13 — 动态驱动:最多 5 条候选解释 + 声明主导因子。
LAW 14 — 静态基本面 12 题 + 分层激活(见 references/modules.md)。
LAW 15 — Bull/Bear 须含数值场景化链条。
LAW 16 — 左/右概率并列呈现,禁止单一「左侧/右侧」结论。
LAW 17 — 结论先行(金字塔结构):简报和报告均采用结论→论据→细节的倒金字塔结构。
- 简报首屏必须有核心结论和逻辑链(数据→推理→判断),不得以"模块1/模块2"等流程性标题开头
- 每个模块标题必须传递信息量(完整判断句,禁止名词短语如"估值位置")
- 每个分析段落第一句必须是加粗主旨句(读者只读主旨句就能理解全文逻辑)
- 看摘要等于看全文:简报本身是完整判断,.md 文件是详细论证
常见违规模式
| # | 违规 | 规则 | 正确写法 |
|---|---|---|---|
| 1 | "当前处于左侧/右侧" | LAW 16 | "左侧特征更强:…;右侧支撑:…" |
| 2 | "建议买入/卖出/持有" | LAW 6 | 永远不给买卖建议。可输出入场区间(基于情景锚定+假设前提),但不是建议 |
| 3 | 无假设的"目标价 XX 元" | LAW 6 | 多情景估值参考价+假设 |
| 3a | "止损设在 85 元"/"建议在 95 元买入" | LAW 6a | 改为"悲观情景估值下限 80 元,跌破意味市场定价比悲观更差"+"中性情景锚定区间 95-120 元" |
| 4 | 无来源的"往往/通常" | LAW 3 | 标注待补或案例 |
| 5 | 亏损期 PE 分位当贵贱 | P0-2 | 标注仅作位置参考 |
| 6 | "极度高估/低估" | 措辞 | 用数值比较 |
| 7 | "模块1:当前状态快照"等流程性标题 | LAW 17 | 标题改为结论句,如 "PE 36.5x 处 98% 分位,已定价乐观预期" |
| 8 | 段落无段首主旨句,直接展开数据 | LAW 17 | 每段第一句加粗概括核心判断 |
措辞规范
禁止:买入/卖出/持有/建仓/加仓/减仓/止损/止盈、建议(某价格)买入/卖出。
允许(LAW 6a 交易结构分析):入场区间、假设失效触发、操作纪律、盈亏比、情景锚定。
报告路径:reports/{symbol}-{name}/{YYYY-MM-DD-HH-MM-SS}.md,Claude 内只输出简报。
数据源策略
v0.3+ 多源并行:全部可用源同时采集,差异保留于 _meta.all_sources,由分析阶段标注。
Skill 身份声明
研究工具,非决策工具。 多因子交叉验证、归因讨论、概率结构;不做买卖/仓位建议。
并行取证哲学
全部可用源并行查询 → 各渠道独立记录 → 汇总为证。全失败 → LAW 5 标注;多源有数据 → 标注以何为主。
输出格式(层叠输出)
第一层(Claude 对话简报):结论先行、逻辑链闭环、一屏可扫描。禁止展开完整九模块。模板如下:
简报铁律
- 结论在首屏:读者 30 秒内看到核心判断,禁止以风险提示/问题卡/模块编号开头
- 每条结论带逻辑链:数据 → 推理 → 判断,一行闭环
- 标题即论点:禁止 "模块1:当前状态快照" 等名词标签,改为完整判断句
- 看摘要等于看全文:简报本身是完整判断,详细论证在 .md 文件中
简报模板(严格顺序)
模板使用说明: 以下
##标题为结构占位符,实际输出时须替换为传递信息量的完整判断句(LAW 17)。如## 核心结论→## {一句话概括最重要的判断}。段首必须加粗主旨句。
# {name} ({symbol}) — {date} 研究简报
## 核心结论
[2-3 句最重要的判断,每条携带支撑数据]
[证据强度: ✅/⚠️/❓ 🌐/📡/🔮 🕐/📅/🗄️ ✓✓/✓✗/—]
## 逻辑链
1. 数据 A → 推论 B → 子结论 C
2. ...
∴ 核心判断
## 位置感
周期位置: [...] / 估值位置: [...] / 市场态度: [...]
## 多模块结论速览
| 维度 | 结论 | 关键数据 | 逻辑链 | 置信度 |
|------|------|---------|--------|:------:|
| 估值 | PE 38.5x, 92% 分位, 已定价乐观预期 | PE 38.5x vs 中位 18.2x | ... | ⚠️ |
| 经营 | ... | ... | ... | ... |
| 资金 | ... | ... | ... | ... |
| 催化 | ... | ... | ... | ... |
| 风险 | ... | ... | ... | ... |
## 多情景参考
| 情景 | 核心假设 | 传导路径 | 估值区间 | 概率 |
|------|---------|---------|:------:|:---:|
| 乐观 | ... | A→B→C | XX~YY | 30% |
| 中性 | ... | ... | ... | 40% |
| 悲观 | ... | ... | ... | 30% |
## 关键观察节点
| 时间 | 事件 | 验证什么 | 如何修正判断 |
|------|------|---------|-------------|
## 交易结构分析
> ⚠️ 假设一致性检验,非买卖建议。入场区间基于多情景估值推导,盈亏比 = |上行空间|/|下行空间| × 概率比。
### 入场区间(基于情景锚定)
| 情景锚定 | 价格区间 | Forward PE | 假设前提 | 盈亏比 |
|---------|:------:|:-----:|---------|:-----:|
| 悲观锚 | XX~YY | — | ... | >X:Y |
| 中性锚 | XX~YY | — | ... | X:Y |
| 乐观锚 | XX~YY | — | ... | <X:Y |
### 假设失效触发(离场条件)
| 条件 | 类型 | 触发后动作 |
|------|------|----------|
| ... | 假设证伪/叙事动摇/财务恶化 | 重新评估/下调情景/收紧条件 |
### 操作纪律
1. 定期检查(季报后 / 宏观重大变化 / 价格进入极端区间)
2. 假设追踪(thesis --update 对照假设 vs 实际)
3. 仓位匹配(基于情景概率 × 盈亏比,与个人风险承受能力匹配)
## 主要风险
[3-5 条,标注严重度 🔴/🟡/🟢]
## 致命风险
> 若 [X 可观测条件] 发生,当前核心判断 [Y] 失效。
## 盲点
- [盲点 1] — 当前: [未知/数据不可得]
- [盲点 2] — 当前: [未知/数据不可得]
> ⚠️ 免责声明:本简报由自动化引擎 + Claude 分析生成,不构成投资建议。完整报告见 `reports/{symbol}-{name}/{YYYY-MM-DD-HH-MM-SS}.md`
第二层(.md 文件):完整备忘录 + References(见 references/references-format.md),采用 LAW 17 金字塔结构。
第三层(concise 对话模式):Hermes/OpenClaw 等对话场景使用。结论先行 + 关键数据展开块。3-5 段核心结论直出,详细数据用 <details> 折叠。CLI 对应 --mode concise。
Concise 输出契约
对话场景下遵循以下两层结构:
第 1 层 — 结论速览(3-5 段,最先输出):
| 段 | 内容 | 来源 |
|---|---|---|
| 1 | 定位句:symbol/name/industry + PE 历史位置 + 定性 | 估值+基本信息 |
| 2 | 核心矛盾:1-2 条,附具体数值 | 交叉验证 |
| 3 | Bull Case:关键假设 + 支撑数值 | 生意+财务分析 |
| 4 | Bear Case:主要风险 + 触发条件 | 风险+治理分析 |
| 5 | 催化剂与观察节点(可选) | 事件+公告分析 |
第 2 层 — 关键数据展开(<details> 块):
<details><summary>展开:财务速览</summary>
| 指标 | 最近报告期 | 趋势 |
ROE / EPS / 毛利率 / OCF/净利润
</details>
<details><summary>展开:估值位置</summary>
| 指标 | 当前值 | 历史分位 | 中位数 |
PE / PB / PS
</details>
<details><summary>展开:资金行为</summary>
- 北向资金 / 股东户数 / 内部人信号
</details>
强制规则:
- 结论速览第一条输出,不得在前置过程后
- 每条结论附来源标签
- Bull/Bear 含数值假设
- 禁止输出完整九模块
- 按"假设→证据→结论"链式排列
SOP-QC 自检
措辞(LAW 6/16/3/17)、结构(简报一屏内、首屏含结论+逻辑链、标题传递信息量、段首主旨句、风险提示首尾、LAW 7)、证据(SOP-EV、分位伴中位数、Bull/Bear 数值化)、分析合成三步(对抗性假设检验 ≥3 假设、致命一击条件句、盲点 ≥2 条)。财报专项的 Bull/Bear 撰写与快速否决 8 条见 financials.md F-2 / F-3。
分析合成三步(所有模式强制)
简报和完整报告均须包含以下三步。不可跳过。
1. 对抗性假设检验
对核心判断依赖的关键假设,逐一找可证伪条件。
| 关键假设 | 可证伪条件 | 观测窗口 |
|---|---|---|
| "毛利率改善可持续" | 下季毛利率环比回落 >2pp | 下份季报 |
| "行业景气度上行" | 行业 PMI/订单指数连续 2 月回落 | 月度 |
| ... | ... | ... |
硬约束:≥3 个关键假设,每个必须有可观测证伪条件。不可证伪的假设标注「不可验证,置信度降级」。观测窗口须为具体时间或事件节点。
2. 「致命一击」归纳
一句话回答:如果这个分析错了,最可能是因为什么?
若 [X 可观测条件] 发生,当前核心判断 [Y] 失效。
硬约束:必须是条件句(若…则…)。指向具体可观测的失效条件,不是「市场风险」「政策不确定性」等标签。
3. 盲点检查
Final pass 自问:
- 有什么重要变量完全没有被讨论?
- 当前共识最可能忽略什么风险?
- 如果一段时间后回头看,今天最明显的盲点会是什么?
🔍 盲点发现:
- [盲点 1] — 当前: [未知/数据不可得/未覆盖]
- [盲点 2] — 当前: [未知/数据不可得/未覆盖]
硬约束:≥2 条。不能输出空集。
SOP-EV 证据强度
可靠性 ✅/⚠️/❓ | 丰富度 🌐/📡/🔮 | 时效 🕐/📅/🗄️ | 交叉验证 ✓✓/✓✗/—
专项加载与 intent 路由
执行前用 Read 加载对应专项(完整 report --deep 加载全部):
| 用户意图 / CLI | 读取专项 | plan --intent |
|---|---|---|
| 默认完整分析 | modules.md | deep_analysis |
| 舆情深挖 | sentiment.md | sentiment_deep |
| 财报深研 | financials.md | financials_deep |
| 资金行为扫描 | game-theory.md | game_theory |
| 完整 report --deep | 全部专项 + modules.md | deep_analysis + --deep |
规则:专项单独运行仍须 evidence;完整分析用 report --mode full(--mode 允许 brief/full/concise,不用 --mode=sentiment)。
九模块结构详见 references/modules.md。财报 F 规范详见 references/financials.md。
数据来源
详见 references/source-guide.md。
CLI 命令
# 生成采集计划(intent: deep_analysis | quick_check | catalyst_monitor | compare
# | sentiment_deep | financials_deep | game_theory)
uv run python skills/invest-a-stock/scripts/invest.py plan 600176 --intent game_theory
# 按计划采集 + 证据表 + 报告
uv run python skills/invest-a-stock/scripts/invest.py collect 600176 --plan /tmp/plan.json
uv run python skills/invest-a-stock/scripts/invest.py evidence 600176 --plan /tmp/plan.json
uv run python skills/invest-a-stock/scripts/invest.py report 600176 --plan /tmp/plan.json --mode full
# 常用
uv run python skills/invest-a-stock/scripts/invest.py collect 600176
uv run python skills/invest-a-stock/scripts/invest.py report 600176
uv run python skills/invest-a-stock/scripts/invest.py report 600176 --outdir=./reports/
uv run python skills/invest-a-stock/scripts/invest.py report 600176 --deep
uv run python skills/invest-a-stock/scripts/invest.py compare 600176 000858
uv run python skills/invest-a-stock/scripts/invest.py diagnose
uv run python skills/invest-a-stock/scripts/invest.py diff 600176
uv run python skills/invest-a-stock/scripts/invest.py store list
uv run python skills/invest-a-stock/scripts/invest.py collect 600176 --store
运行目录:
code/。必须用uv run python。--mode:brief|full|concise。
代理 / VPN
akshare/baostock 自动绕过 HTTP 代理;diagnose 可查 proxy_detected。规则与 TUN 说明见 source-guide.md。
引用格式(精简)
事实:"数值" [来源: {路径} / {日期}] | 分析:[依据: …;逻辑链: …] | 推测:[推测,待验证]
完整规范:references/references-format.md
技术指标
MA/MACD 仅描述市场状态,不生成交易信号。
采集顺序
SOP-M1 宏观情景(--with-macro)
简报首行:[宏观情景] PMI + CPI + LPR → 政策方向 | VIX + 波动等级 + SOX + 费城半导体指数
示例:[宏观情景] PMI 50.2 + CPI +0.3% + LPR 3.45% →偏宽松 | VIX 18.5 正常 SOX 6,850
diagnose→ 2.plan/collect→ 3.evidence(专项推荐)→ 4.report→ 5.store(可选)
v0.1.9 CLI 扩展
# 质量门
uv run python skills/invest-a-stock/scripts/invest.py rigor 600176 --verify-all [--strict]
uv run python skills/invest-a-stock/scripts/invest.py audit report.md --extract
uv run python skills/invest-a-stock/scripts/invest.py audit report.md --verdict
# 质地检查 / 组合 / 假设追踪
uv run python skills/invest-a-stock/scripts/invest.py check 600176
uv run python skills/invest-a-stock/scripts/invest.py portfolio holdings.json [--stress]
uv run python skills/invest-a-stock/scripts/invest.py thesis 600176 --init|--update|--status
# 价格冲击插值(非风险中性概率)
uv run python skills/invest-a-stock/scripts/invest.py shock 300274 \
--pre-price 163.46 --post-price 140 --eps-base 6.55 --eps-hit 1.64 \
--pe-normal 27 --pe-stressed 20
# 新闻包(公告 + 查询包 + 可选 Tavily)
uv run python skills/invest-a-stock/scripts/invest.py collect 600176 --with-news-pack
TAVILY_API_KEY 可选;无 Key 时 Layer3 静默跳过,Layer1+2 仍产出。
SOP-DEEP(四视角并行)
完整 --deep 报告时分两阶段并行:采集(3 Agent)→ 分析(4 Agent)。
Phase 1 — 并行采集 + 交叉验证(3 Agent 同时启动):
┌─ Collector A: 财务主线(Tushare)─────────────────────┐
│ invest.py collect SYMBOL --deep │
│ --dims "financials,valuation,basic_info" │
│ 产出: /tmp/{symbol}_collect_A.json │
└───────────────────────────────────────────────────────┘
┌─ Collector B: 行情+资金+财务交叉验证(akshare主)─────┐
│ invest.py collect SYMBOL --deep │
│ --dims "financials,quote,kline,valuation" │
│ financials 用 akshare 做主源,与 A 的 Tushare 交叉 │
│ 产出: /tmp/{symbol}_collect_B.json │
└───────────────────────────────────────────────────────┘
┌─ Collector C: 补充数据(股东/研报/事件/行业)─────────┐
│ invest.py collect SYMBOL --deep │
│ --dims "shareholders,research,events" │
│ 产出: /tmp/{symbol}_collect_C.json │
└───────────────────────────────────────────────────────┘
验证规则:
- financials 维度:A(Tushare)vs B(akshare),关键字段(ROE/EPS/毛利率)差异 <5% → 通过
- 差异 ≥5% → 触发 Collector D(Tie-breaker, baostock):
invest.py collect SYMBOL --dims "financials" --source baostock - 三取二投票决定最终值,无法决定则保留差异并标注"跨源分歧"
- 合并 3-4 份 JSON → 完整 collection(用
scripts/merge_collections.py)
Phase 1 耗时: 3 Agent 并行 ≈ 30-40s(vs 串行 80s)
Phase 2 — 四视角并行分析(4 Agent 同时启动):
同时启动 4 个 Agent(用 references/agent-prompts.md 的模板,替换变量):
Agent A: 生意质量 → section_1_business.md
Agent B: 财务与估值 → section_2_financials.md
Agent C: 行业与竞争 → section_3_industry.md
Agent D: 风险与治理 → section_4_risk.md
每个 Agent 的参数: {collection_json_path} = 合并后的 JSON 路径,
{symbol} = 标的代码, {output_dir} = reports/{symbol}-{name}/
Phase 3 — 合成(主编 Claude):
- 等待 4 个分析 Agent 全部完成
- 读取 4 个 section 文件 + 合并后的 collection JSON
- 运行
valuation_calc.py SYMBOL嵌入估值数据(DCF/多情景/预期差) - 合成完整报告 →
reports/{symbol}-{name}/{YYYY-MM-DD-HH-MM-SS}.md,采用以下 LAW 17 金字塔结构。
模板使用说明: 以下
##标题为结构占位符,实际输出时须替换为传递信息量的完整判断句(LAW 17)。段首必须加粗主旨句。
# {name} ({symbol}) — 深度研究备忘录 {date}
## 核心结论
(从 4 Agent section 提炼,≤5 句,每条携带数据+逻辑链)
[证据强度]
## 位置感
周期位置 / 估值位置 / 市场态度 — 三句话定位当前状态
## 模块结论速览
| 维度 | 结论 | 关键数据 | 逻辑链 | 置信度 |
|------|------|---------|--------|:------:|
## 论证展开
(每节标题为完整判断句,段首加粗主旨句,数据→推理→判断一行闭环)
## 多情景参考
(表格:情景 | 假设 | 传导 | 估值区间 | 概率)
## 观察节点
(表格:时间 | 事件 | 验证什么 | 如何修正判断)
## 主要风险
(3-5 条,标注严重度 + 缓解因素)
## 致命风险
> 若 [X 可观测条件] 发生,当前核心判断 [Y] 失效。
## 对抗性假设检验
| 关键假设 | 可证伪条件 | 观测窗口 | 状态 |
|----------|----------|:---:|:---:|
| ... | ... | ... | ✅/⚠️/❓ |
## 盲点扫描
🔍 盲点发现:
- [盲点 1] — 当前: [未知/数据不可得/未覆盖]
- [盲点 2] — 当前: [未知/数据不可得/未覆盖]
## References
(保持现有 LAW 7 格式)
3b. 执行分析合成三步(详见 SOP-QC 上方「分析合成三步」章节):
- 对抗性假设检验:从 4 Agent section 提炼 ≥5 个关键假设,逐一找可证伪条件
- 致命一击:一句话条件句归纳最大风险
- 盲点扫描:检查四视角是否有遗漏维度
- 输出 Claude 对话简报(按第一层模板,一屏内)
- QC 自检:LAW 1-17 逐条验证 + 分析合成三步完整性(对抗性假设检验 ≥5 假设、致命一击条件句、盲点 ≥2 条),尤其 LAW 17(标题是否传递信息量、段首是否有主旨句、简报首屏是否有核心结论)
四视角覆盖内容:
- 生意质量:商业模式 / 护城河 / 管理层 / 价值链
- 财务与估值:DCF 三情景 / 财务健康 / 盈利质量 / 估值位置
- 行业与竞争:波特五力 / 竞争格局 / 产业链利润池
- 风险与治理:快速否决 / 风险信号 / 公司治理 / Known Unknowns
Agent prompt 模板详见 references/agent-prompts.md。 采集/分析阶段的所有 Agent 只调 Bash(invest.py/merge_collections.py),不调 Tushare/akshare API — 不触发限流。
SOP earnings-review(季报/年报后)
- 对比指引 vs 实际(营收/净利/毛利率)
- OCF/净利润是否背离(阈值 0.6)
- 资本开支与产能叙事是否一致
- 更新 thesis
--update假设状态
SOP industry-research / news-pulse
-
collect --with-news-pack获取公告 + 查询包 - 对
query_pack执行 WebSearch/Tavily,回填 NewsCard - 外生冲击假说⑥段:方向 + 可信度 + 来源
- 重大波动时用
shockCLI 计算价格冲击插值比例(附学术声明)
What ships with it: 140 files
1918.8 KB alongside SKILL.md, 129 of them executable
references/
- agent-prompts.md15.8 KB
- financials.md5.7 KB
- game-theory.md3.1 KB
- ic-framework.md3.8 KB
- modules.md2.7 KB
- references-format.md2.1 KB
- sentiment.md2.6 KB
- source-guide.md9.2 KB
- trade-structure.md4.6 KB
scripts/
- check_report.shruns1.4 KB
- check-version.shruns1.6 KB
- invest.pyruns82.7 KB
- lib/analysis_templates.pyruns16.7 KB
- lib/archiver.pyruns3.3 KB
- lib/assets/chart.umd.min.jsruns200.4 KB
- lib/catalyst.pyruns11.5 KB
- lib/chain.pyruns5.5 KB
- lib/collector/_base.pyruns11.6 KB
- lib/collector/__init__.pyruns541 B
- lib/collector/_kline_cache.pyruns3.3 KB
- lib/collector/_legacy.pyruns495 B
- lib/collector/_orchestrate.pyruns129.9 KB
- lib/collector/_sources.pyruns34.7 KB
- lib/data_util.pyruns361 B
- lib/db_util.pyruns348 B
- lib/env.pyruns12.4 KB
- lib/events.pyruns22.8 KB
- lib/evidence.pyruns5.6 KB
- lib/financial_rigor.pyruns14.5 KB
- lib/financials.pyruns2.4 KB
- lib/fusion.pyruns6.8 KB
- lib/industry/banks.pyruns5.8 KB
- lib/industry/base.pyruns8.5 KB
- lib/industry/__init__.pyruns1.5 KB
- lib/industry/tech_hardware.pyruns6.0 KB
- lib/__init__.pyruns62 B
- lib/_invest_path.pyruns510 B
- lib/json_util.pyruns1.3 KB
- lib/kline_cache.pyruns347 B
- lib/lint.pyruns15.6 KB
100 more files not listed here. See all 140 in the repository.