mcpField
F
fintech-algorithms

fintech-algorithms

github.com/islambaraka90数据与数据库52.0k 次安装5 周前更新
代码仓库

关于 fintech-algorithms

面向金融数据分析任务的算法库使用 Skill,指导 Agent 查询并调用涵盖市场、金融和统计计算的函数。它强调按文档核实接口与验证等级,并将计算结果与投资建议区分开。

主要功能

  1. 01覆盖市场、金融与统计计算
  2. 02通过查询脚本查找函数契约
  3. 03核对输入、输出与预热区间
  4. 04区分 verified 与 contract 验证等级
  5. 05提供数据适配与分析流程指导

适用场景

  1. 01根据需求定位合适的金融计算函数
  2. 02将用户提供的行情数据整理为算法输入
  3. 03报告计算结果及其验证等级

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/islambaraka90/fintech-algorithms-library --skill fintech-algorithms

安装后在 Claude Code 中输入/fintech-algorithms确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
archetypes.md
ingestion.md
pitfalls.md
recipes.md
scripts/
lookup.mjs

详细介绍

fintech-algorithms

717 个用于市场、金融和统计计算的纯函数。输入普通数组和对象,输出普通值。零运行时依赖,Node >= 22,ESM。

文档: https://docs.thefintechbuilder.com · 权威 Agent 指南: https://docs.thefintechbuilder.com/guides/ai-agents/

不可妥协的原则

四条规则。违反其中任何一条,都会产生看似正确、实则错误的输出。

  1. 绝不臆造导入路径、函数名或参数。 每个子路径都与其文档 URL 完全一致,因此看似合理的猜测可能读起来正确,实际却是错的。查证后再回答——使用 scripts/lookup.mjs 或下方的查找顺序。如果不存在相关主题,请如实说明并停止。
  2. 绝不猜测返回字段名。 库中返回键的大小写并不统一:bollingerBands 返回 percent_b,macd 的行返回 fastEma。请阅读该主题保存的示例输出。参见 references/pitfalls.md。
  3. 对任何数值声明注明验证级别。 verified(601 个主题)表示每次构建都会重放运算,并与目录中使用一并编写的 Python 实现计算出的预期值进行断言——这是跨语言一致性,不是独立第三方数据。若有人询问,请这样表述。contract(74 个主题)表示会检查签名和结构,但不会对数值进行断言。
  4. 分析,不是建议。 这些函数用于计算数值。指标交叉是对序列的观察,不是预测,不是信号,也绝不是针对某个人资金的建议。请说明计算了什么、输入是什么、验证级别是什么。如果有人询问买入或卖出什么,请说明这需要咨询持牌顾问。

此库不会获取数据

没有 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/ 目录中的手写实现,而非目录中的实现。该实现经过断言,确保返回完全相同的值并抛出完全相同的错误,因此不会影响你报告的内容——但文章中的代码与包中的代码确实可能不同。

解析顺序

找到能回答问题的第一步后即停止。

  1. 已安装的软件包——如果 fintech-algorithms 是依赖项,请读取 node_modules/fintech-algorithms/docs.json。其中包含每个签名、契约和 完整示例,无需联网。优先使用此方式。 scripts/lookup.mjs 会自动使用它。
  2. 领域索引——https://docs.thefintechbuilder.com/{domain-slug}/llms.txt (每个 3–11 KB)。包含全部十七个领域的映射位于 /llms.txt 顶部的 ## Per-domain indexes 区块;只需获取一次根索引,即可获得永久路由表。
  3. 主题 Markdown——在任意文档 URL 后追加 index.md。完整契约仅 3–11 KB,而 HTML 有 68–114 KB。
  4. 完整数据——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-aggregateTrade[] + 配置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,因为该文件索引的是面向市场的算法;此处和文档中则完整包含了它。

它不是回测器、执行系统、投资组合管理器,也不是市场数据来源。它只计算 数值,不下单,调用之间也不保留状态。

评论

支持 Markdown