关于 fintech-algorithms
面向金融数据分析任务的算法库使用 Skill,指导 Agent 查询并调用涵盖市场、金融和统计计算的函数。它强调按文档核实接口与验证等级,并将计算结果与投资建议区分开。
主要功能
- 01覆盖市场、金融与统计计算
- 02通过查询脚本查找函数契约
- 03核对输入、输出与预热区间
- 04区分 verified 与 contract 验证等级
- 05提供数据适配与分析流程指导
适用场景
- 01根据需求定位合适的金融计算函数
- 02将用户提供的行情数据整理为算法输入
- 03报告计算结果及其验证等级
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ islambaraka90/ fintech-algorithms-library --skill fintech-algorithms安装后在 Claude Code 中输入/fintech-algorithms确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/archetypes.mdingestion.mdpitfalls.mdrecipes.mdscripts/lookup.mjs详细介绍
fintech-algorithms
717 个用于市场、金融和统计计算的纯函数。输入普通数组和对象,输出普通值。零运行时依赖,Node >= 22,ESM。
文档: https://docs.thefintechbuilder.com · 权威 Agent 指南: https://docs.thefintechbuilder.com/guides/ai-agents/
不可妥协的原则
四条规则。违反其中任何一条,都会产生看似正确、实则错误的输出。
- 绝不臆造导入路径、函数名或参数。 每个子路径都与其文档 URL 完全一致,因此看似合理的猜测可能读起来正确,实际却是错的。查证后再回答——使用
scripts/lookup.mjs或下方的查找顺序。如果不存在相关主题,请如实说明并停止。 - 绝不猜测返回字段名。 库中返回键的大小写并不统一:
bollingerBands返回percent_b,macd的行返回fastEma。请阅读该主题保存的示例输出。参见references/pitfalls.md。 - 对任何数值声明注明验证级别。
verified(601 个主题)表示每次构建都会重放运算,并与目录中使用一并编写的 Python 实现计算出的预期值进行断言——这是跨语言一致性,不是独立第三方数据。若有人询问,请这样表述。contract(74 个主题)表示会检查签名和结构,但不会对数值进行断言。 - 分析,不是建议。 这些函数用于计算数值。指标交叉是对序列的观察,不是预测,不是信号,也绝不是针对某个人资金的建议。请说明计算了什么、输入是什么、验证级别是什么。如果有人询问买入或卖出什么,请说明这需要咨询持牌顾问。
此库不会获取数据
没有 HTTP 客户端、供应商 SDK、API 密钥或 node:fs。如果任务需要价格数据,应由调用方提供。这是有意为之:供应商 API 每隔几年就会改写,而算法不会。
当用户希望进行“实时分析”时,流程始终是:他们的数据流 → 他们的适配器 → 验证 → 计算 → 报告。 只有中间两步由此库负责。加载 references/ingestion.md,了解适配器模式以及规范的 Trade / Bar 结构。
哪个入口面向哪个问题
有五种东西带有此库的名称。向错误的入口提问,是最常见的猜测来源。
| 入口 | 回答的问题 | 不适用于 |
|---|---|---|
node_modules/fintech-algorithms/docs.json | 签名、契约、完整示例、验证级别 | — 所有情况都优先使用此项 |
docs.thefintechbuilder.com | 同一份参考文档,通过网络访问 | 关于算法存在原因的说明 |
thefintechbuilder.com | 文章——算法是什么,以及何时使用 | 签名或字段名;它用于讲解,而非规范定义 |
| npm 包 | 要导入的代码 | 探索有哪些内容——这应由注册表完成 |
| 此技能 | 如何查找上述内容 | 作为查证的替代方式 |
两个关系很重要,并且受到强制执行,而非仅仅是惯例:
- 文档 URL 和导入路径是同一个字符串。 将
https://docs.thefintechbuilder.com/替换为fintech-algorithms/,并去掉末尾的斜杠。如果这一规则不再成立,测试就会失败。 - 文档可能领先于 npm 包。 网站会基于
main重建,无需发布版本。如果文档中有某个主题,但无法导入,说明安装的版本早于该页面——在认定有问题之前,请检查https://docs.thefintechbuilder.com/version.json。
某个主题可能使用仓库 optimised/ 目录中的手写实现,而非目录中的实现。该实现经过断言,确保返回完全相同的值并抛出完全相同的错误,因此不会影响你报告的内容——但文章中的代码与包中的代码确实可能不同。
解析顺序
找到能回答问题的第一步后即停止。
- 已安装的软件包——如果
fintech-algorithms是依赖项,请读取node_modules/fintech-algorithms/docs.json。其中包含每个签名、契约和 完整示例,无需联网。优先使用此方式。scripts/lookup.mjs会自动使用它。 - 领域索引——
https://docs.thefintechbuilder.com/{domain-slug}/llms.txt(每个 3–11 KB)。包含全部十七个领域的映射位于/llms.txt顶部的## Per-domain indexes区块;只需获取一次根索引,即可获得永久路由表。 - 主题 Markdown——在任意文档 URL 后追加
index.md。完整契约仅 3–11 KB,而 HTML 有 68–114 KB。 - 完整数据——
https://docs.thefintechbuilder.com/reference/payload.json(约 2.6 MB)。用于数据摄取,不适合回答单个问题。
将文档 URL 转换为导入路径:将 https://docs.thefintechbuilder.com/ 替换为
fintech-algorithms/,并删除末尾的斜杠。
通过
https://docs.thefintechbuilder.com/version.json(小于 1 KB)检查已安装版本是否与文档一致。
工作流
1. 确定要计算的量。 实际要问的是什么?“是否超买” → RSI。“平滑一下” → 要用哪种移动平均线,为什么选它。
2. 获取任何内容前,先按原型缩小范围。 五种输入形状覆盖全部 717 个主题,每条索引行都会标明原型:
| 原型 | 输入 | 返回值 | 数量 |
|---|---|---|---|
series-transform | (number | null)[] + 数值参数 | 长度相同的数组 | 137 |
tape-aggregate | Trade[] + 配置 | Bar[] | 7 |
row-classify | 行 | 每行一个判定结果 | 24 |
snapshot-evaluate | 一个快照 + 判定时间 | 一个判定结果 | 6 |
record-transform | 特定领域的数据 | 特定领域的数据 | 501 |
record-transform 是剩余类别——请阅读该主题自身的契约。
详细信息和已执行示例:references/archetypes.md。
3. 阅读契约。 签名、参数、返回值、预热期、错误。
node scripts/lookup.mjs show rsi
4. 整理数据。 将用户提供的数据映射为文档中所述的输入。如果输入是柱、逐笔数据或报价,请先运行边界验证器。
5. 计算并报告。 说明计算了什么、使用了什么输入、属于哪个层级,以及有多少个开头的值属于预热期而非信号。
快速开始
npm install fintech-algorithms
算法只能通过子路径导入。根导出包含元数据和查询接口(topics、topic、byDomain、byFamily、byArchetype、load、runner),不会重新导出任何算法。某个同级主题的函数不会从另一个子路径重新导出——请分别从各自的子路径导入。
import { calculateSma } from "fintech-algorithms/technical-indicators/trend-smoothing/sma";
calculateSma([44.34, 44.09, 44.15, 43.61, 44.33, 44.83], 5);
// → [null, null, null, null, 44.104, 44.202]
// ^^^^ four warm-up nulls: window - 1
require 条件会解析到同一个 ES 模块——项目没有单独的 CommonJS 构建,因此 require() 需要运行时支持 require(esm)。
查询脚本
scripts/lookup.mjs 与此文件位于同一目录。工作目录是用户的
项目,而非此技能,因此始终使用绝对路径调用它。
这些文件会将 ${SKILL_DIR} 写为包含此 SKILL.md 的目录。
在 Claude Code 中,该值为 ${CLAUDE_SKILL_DIR},由运行环境替你替换。
在其他 Agent 中,请在运行命令前替换为实际路径。
node "${CLAUDE_SKILL_DIR}/scripts/lookup.mjs" search "moving average"
命令:
| 命令 | 作用 |
|---|---|
search <query> | 按名称、slug、类别或条目查找主题 |
show <slug|id|path> | 查看完整契约、预热、错误和已执行示例 |
archetype <name> | 查看所有共享某种输入形状的主题及其注意事项 |
domain <id|slug> | 查看某个领域中的所有主题,并按类别分组 |
domains | 查看 17 个领域及其索引 URL |
version | 查看参考版本与已发布版本 |
如果工作目录上层任意位置安装了此软件包,则读取
node_modules/fintech-algorithms/docs.json;否则会获取并缓存已发布的
负载,缓存一天。设置 FINTECH_DOCS_JSON 可指定文件路径。
接受 slug(rsi)、目录 ID(D07-F03-A01)、完整路径或文档 URL。
如果 show 找不到主题,它会明确说明,而不是猜测——这就是正确答案,
不应设法绕过此限制。
何时加载参考资料
references/archetypes.md— 将用户数据映射到输入形状,或 判断任务需要多少适配器代码。references/ingestion.md— 用户有数据提供方、CSV、websocket 或 经纪商 API,并询问如何连接。references/recipes.md— 端到端任务:清理数据流、构建 K 线、 计算多指标报告。references/pitfalls.md— 在确定任何数值答案之前。内容简短, 且每个条目都对应一个真实的失败模式及其真实原因。
覆盖范围
19 个领域:金融数学、统计学与数据基础(120)· 市场数据工程(31)·公司行动与证券主数据(20)· 指数与基准工程(40)·市场广度与内部指标(28)·价格行为与蜡烛图(52)· 技术指标(137)·几何图表形态(64)·统计时间序列(37)· 市场微观结构(29)·撮合引擎与交易场所逻辑(21)·执行与交易成本分析 (9)·基本面分析与估值(52)·信用风险与违约(7)· 数字资产与链上金融(10)·模型验证与回测(10)· 财报与每股指标分析(8)·波动率与协方差(22)· 投资组合构建(20)。
技术指标、价格行为与几何图表形态在 0.13.0 中首次全部覆盖—— 目录中的每个主题都可安装。
优先使用基础领域。 金融数学、统计学与数据基础是此库其他部分构建 其上的基础层——均值、中位数、百分位数、标准差、相关性、回归、z 分数、 对数收益率、波动率、回撤、夏普比率和风险价值各自只有一种实现, 而非在每个指标中都有一份私有副本。任务需要普通统计量时,应从该领域 导入,而不是自行编写,或借用某个指标的内部实现。它有意未列入软件包 README,因为该文件索引的是面向市场的算法;此处和文档中则完整包含了它。
它不是回测器、执行系统、投资组合管理器,也不是市场数据来源。它只计算 数值,不下单,调用之间也不保留状态。