fintech-algorithms について
金融データ分析でアルゴリズムライブラリを使うためのスキルです。市場・金融・統計の関数を調べ、契約仕様と検証レベルを確認し、計算結果と投資助言を区別するようエージェントを導きます。
主な機能
- 01市場・金融・統計の計算関数
- 02スクリプトによる関数契約の検索
- 03入力、出力、ウォームアップ範囲の確認
- 04verified と 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 · エージェント向けの正式なガイド: https://docs.thefintechbuilder.com/guides/ai-agents/
絶対に守ること
4つのルールです。どれか1つでも破ると、正しく見えて実際には誤った出力になります。
- インポートパス、関数名、パラメーターを決してでっち上げないでください。 すべてのサブパスはドキュメントの URL と完全に一致するため、もっともらしい推測でも、正しいように見えて誤った内容になります。調べてください。
scripts/lookup.mjsまたは以下の解決順を使います。該当するトピックがない場合は、その旨を伝えて終了してください。 - 返されるフィールド名を決して推測しないでください。 戻り値のキーの大文字・小文字の使い方はライブラリ内で統一されていません。
bollingerBandsはpercent_bを返し、macdの行はfastEmaを返します。そのトピックのキャプチャ済みサンプル出力を確認してください。references/pitfalls.mdを参照してください。 - 数値に関する主張には、検証レベルを明記してください。
verified(601トピック)は、カタログが TypeScript と併せて作成した Python 実装で算出した期待値に対し、ビルドのたびに計算が再実行され、アサーションで検証されることを意味します。これは言語間の整合性であり、独立した第三者の数値ではありません。質問された場合はそのように説明してください。contract(74トピック)は、シグネチャと形状が検証されますが、数値は一切アサーションされないことを意味します。 - 分析であり、助言ではありません。 これらの関数は数量を計算します。指標が系列を横切ることは、系列についての観察であり、予測でもシグナルでも、特定の個人の資金に関する推奨でもありません。何が、どの入力に対して、どの検証レベルで計算されたかを報告してください。何を買うべきか、売るべきか尋ねられた場合は、資格を持つアドバイザーに相談する質問だと伝えてください。
このライブラリはデータを取得しません
HTTP クライアントも、ベンダー SDK も、API キーも、node:fs もありません。価格が必要なタスクでは、呼び出し元が価格を渡します。これは意図的な設計です。ベンダーの API は数年ごとに書き換えられますが、アルゴリズムは変わらないためです。
ユーザーが「ライブ分析」を求める場合、構成は常に ユーザーのフィード → ユーザーのアダプター → 検証 → 計算 → 報告 です。このライブラリが担うのは、中央の2つのステップだけです。アダプターパターンと標準の Trade / Bar の形状については、references/ingestion.md を読み込んでください。
質問に応じて使い分ける参照先
このライブラリの名前を冠するものは5つあります。質問を誤った参照先に送ると、推測に頼ることになるのが最も一般的な原因です。
| 参照先 | 答えられること | 使用してはいけない用途 |
|---|---|---|
node_modules/fintech-algorithms/docs.json | シグネチャ、仕様、実例、検証レベル | — すべての用途でこれを優先してください |
docs.thefintechbuilder.com | 同じリファレンスをネットワーク経由で確認 | アルゴリズムが存在する理由についての説明 |
thefintechbuilder.com | 記事 — アルゴリズムとは何か、いつ使うか | シグネチャやフィールド名の確認。仕組みを説明するものであり、仕様を定めるものではありません |
| npm パッケージ | インポートするコード | 存在するものの確認。確認するのはレジストリです |
| このスキル | これらすべての調べ方 | 調べることの代わり |
重要な関係が2つあり、慣習ではなく、ルールとして強制されています。
- ドキュメントの 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)。全 17 ドメインのマップは/llms.txtの先頭にある## Per-domain indexesブロックです。ルートを 1 回取得すれば、永続的なルーティングテーブルが得られます。 - トピックの Markdown — 任意のドキュメント URL に
index.mdを追加します。 68~114 KB の HTML ではなく、3~11 KB で完全な契約を確認できます。 - 完全なペイロード —
https://docs.thefintechbuilder.com/reference/payload.json(約 2.6 MB)。取り込み用であり、1 つの質問に答えるためのものではありません。
ドキュメント URL をインポートに変換するには、https://docs.thefintechbuilder.com/ を
fintech-algorithms/ に置き換え、末尾のスラッシュを削除します。
https://docs.thefintechbuilder.com/version.json(1 KB 未満)を確認し、
インストール済みのバージョンがドキュメントと一致していることを確認してください。
ワークフロー
1. 数値を特定します。 実際に求められているものは何でしょうか?「買われすぎか」→ RSI。 「平滑化して」→ どの移動平均を使うのか、また、なぜそれを使うのかを確認します。
2. 取得する前に、アーキタイプで絞り込みます。 5 つの入力形式で 717 のトピックすべてを 網羅でき、各インデックス行にアーキタイプが記載されています。
| アーキタイプ | 入力 | 出力 | 件数 |
|---|---|---|---|
series-transform | (number | null)[] + 数値パラメーター | 同じ長さの配列 | 137 |
tape-aggregate | Trade[] + 設定 | Bar[] | 7 |
row-classify | 行 | 行ごとに 1 つの判定 | 24 |
snapshot-evaluate | 1 つのスナップショット + 判定時刻 | 1 つの判定 | 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.md があるディレクトリを ${SKILL_DIR} として指定します。
Claude Code では ${CLAUDE_SKILL_DIR} で、ハーネスがこれを置き換えます。それ以外のエージェントでは、コマンドを実行する前に実際のパスに置き換えてください。
node "${CLAUDE_SKILL_DIR}/scripts/lookup.mjs" search "moving average"
コマンド:
| コマンド | 説明 |
|---|---|
search <query> | 名前、スラッグ、ファミリー、またはエントリーでトピックを検索します |
show <slug|id|path> | 契約、ウォームアップ、エラー、実行例の全容を表示します |
archetype <name> | 同じ入力形状を共有するすべてのトピックと、その注意点を表示します |
domain <id|slug> | ドメイン内のすべてのトピックをファミリー別に表示します |
domains | 17 のドメインと、それぞれのインデックス URL を表示します |
version | リファレンスのバージョンと公開済みのバージョンを比較します |
作業ディレクトリより上のいずれかの場所にパッケージがインストールされている場合は、node_modules/fintech-algorithms/docs.json を読み込みます。そうでない場合は、公開済みのペイロードを取得して1日間キャッシュします。特定のファイルを指定するには、FINTECH_DOCS_JSON を設定してください。
スラッグ(rsi)、カタログ ID(D07-F03-A01)、フルパス、または docs URL を受け付けます。
show でトピックが見つからない場合、推測せずにその旨を伝えます。その場合は失敗が正しい回答であり、回避する障害ではありません。
リファレンスを読み込むタイミング
references/archetypes.md— ユーザーデータを入力形状に対応付ける場合、またはタスクに必要なアダプターコードの量を判断する場合。references/ingestion.md— ユーザーがプロバイダー、CSV、websocket、またはブローカー API を利用していて、接続方法を尋ねている場合。references/recipes.md— フィードのクリーニング、バーの作成、複数インジケーターのレポート計算など、エンドツーエンドのタスクの場合。references/pitfalls.md— 数値による回答を確定する前に確認してください。簡潔で、各項目には実際の原因を伴う実際の失敗モードが記載されています。
対応範囲
19 ドメイン:金融数学、統計、データ基盤(120) · 市場データエンジニアリング(31) · 企業アクションと証券マスターデータ(20) · 指数とベンチマークのエンジニアリング(40) · 市場の広がりと内部指標(28) · 価格アクションとローソク足(52) · テクニカル指標(137) · 幾何学的チャートパターン(64) · 統計的時系列(37) · マーケットマイクロストラクチャー(29) · マッチングエンジンと取引所のロジック(21) · 執行と取引コスト分析 (9) · ファンダメンタル分析とバリュエーション(52) · 信用リスクとデフォルト(7) · デジタル資産とオンチェーン金融(10) · モデル検証とバックテスト(10) · 業績と1株当たり分析(8) · ボラティリティと共分散(22) · ポートフォリオ構築(20)。
テクニカル指標、価格アクション、幾何学的チャートパターンが、0.13.0 で初めて完全に揃いました。カタログ内のすべてのトピックをインストールできます。
まずは基盤ドメインを利用してください。 金融数学、統計、データ基盤は、このライブラリの他の部分を支える基礎レイヤーです。平均、中央値、パーセンタイル、標準偏差、相関、回帰、z スコア、対数リターン、ボラティリティ、ドローダウン、シャープレシオ、バリュー・アット・リスクを、それぞれインジケーターごとに独自実装するのではなく、各1つの実装として提供します。単純な統計量が必要なタスクでは、手作業で実装したり、インジケーターの内部実装を借用したりせず、ここからインポートしてください。このドメインは市場向けアルゴリズムをまとめたパッケージ README には意図的に含まれていませんが、ここおよびドキュメントにはすべて掲載されています。
バックテスターでも、執行システムでも、ポートフォリオマネージャーでも、市場データの提供元でもありません。数量を計算しますが、注文は出さず、呼び出し間で状態を保持しません。