mcpField
F
fintech-algorithms

fintech-algorithms

github.com/islambaraka90データ・データベース52.0k 回インストール5 週間前に更新
リポジトリ

fintech-algorithms について

金融データ分析でアルゴリズムライブラリを使うためのスキルです。市場・金融・統計の関数を調べ、契約仕様と検証レベルを確認し、計算結果と投資助言を区別するようエージェントを導きます。

主な機能

  1. 01市場・金融・統計の計算関数
  2. 02スクリプトによる関数契約の検索
  3. 03入力、出力、ウォームアップ範囲の確認
  4. 04verified と 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 · エージェント向けの正式なガイド: https://docs.thefintechbuilder.com/guides/ai-agents/

絶対に守ること

4つのルールです。どれか1つでも破ると、正しく見えて実際には誤った出力になります。

  1. インポートパス、関数名、パラメーターを決してでっち上げないでください。 すべてのサブパスはドキュメントの URL と完全に一致するため、もっともらしい推測でも、正しいように見えて誤った内容になります。調べてください。scripts/lookup.mjs または以下の解決順を使います。該当するトピックがない場合は、その旨を伝えて終了してください。
  2. 返されるフィールド名を決して推測しないでください。 戻り値のキーの大文字・小文字の使い方はライブラリ内で統一されていません。bollingerBands は percent_b を返し、macd の行は fastEma を返します。そのトピックのキャプチャ済みサンプル出力を確認してください。references/pitfalls.md を参照してください。
  3. 数値に関する主張には、検証レベルを明記してください。 verified(601トピック)は、カタログが TypeScript と併せて作成した Python 実装で算出した期待値に対し、ビルドのたびに計算が再実行され、アサーションで検証されることを意味します。これは言語間の整合性であり、独立した第三者の数値ではありません。質問された場合はそのように説明してください。contract(74トピック)は、シグネチャと形状が検証されますが、数値は一切アサーションされないことを意味します。
  4. 分析であり、助言ではありません。 これらの関数は数量を計算します。指標が系列を横切ることは、系列についての観察であり、予測でもシグナルでも、特定の個人の資金に関する推奨でもありません。何が、どの入力に対して、どの検証レベルで計算されたかを報告してください。何を買うべきか、売るべきか尋ねられた場合は、資格を持つアドバイザーに相談する質問だと伝えてください。

このライブラリはデータを取得しません

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/ ツリーにある手書きの実装が使われる場合があります。これは同じ値を返し、同じエラーをスローすることがアサーションで確認されているため、報告内容に違いはありません。ただし、記事内のコードとパッケージ内のコードが正当に異なる場合があります。

解決の優先順位

質問に答える手順が見つかった時点で、そこで終了してください。

  1. インストール済みパッケージ — fintech-algorithms が依存関係にある場合は、 node_modules/fintech-algorithms/docs.json を読み込みます。すべてのシグネチャ、契約、 実行例を確認でき、ネットワークは不要です。これを優先してください。 scripts/lookup.mjs が 自動的に使用します。
  2. ドメインインデックス — https://docs.thefintechbuilder.com/{domain-slug}/llms.txt (各 3~11 KB)。全 17 ドメインのマップは /llms.txt の先頭にある ## Per-domain indexes ブロックです。ルートを 1 回取得すれば、永続的なルーティングテーブルが得られます。
  3. トピックの Markdown — 任意のドキュメント URL に index.md を追加します。 68~114 KB の HTML ではなく、3~11 KB で完全な契約を確認できます。
  4. 完全なペイロード — 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-aggregateTrade[] + 設定Bar[]7
row-classify行行ごとに 1 つの判定24
snapshot-evaluate1 つのスナップショット + 判定時刻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>ドメイン内のすべてのトピックをファミリー別に表示します
domains17 のドメインと、それぞれのインデックス 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 には意図的に含まれていませんが、ここおよびドキュメントにはすべて掲載されています。

バックテスターでも、執行システムでも、ポートフォリオマネージャーでも、市場データの提供元でもありません。数量を計算しますが、注文は出さず、呼び出し間で状態を保持しません。

コメント