Market Microstructure & Manipulation Detection について
この MCP サーバーは、マーケット・マイクロストラクチャーや市場操作を分析するクオンツ研究者、コンプライアンス担当者、アルゴリズムトレーダー向けです。金融データと計量手法を組み合わせた 8 種類の分析ツールを備え、データを並列取得します。
主な機能
- 01Hawkes 過程による注文板動向の推定
- 02市場操作の検出と市場レジームの分類
- 03クロスアセット情報流と因果関係の分析
- 04スプレッドと異常な取引フローの分解
- 05監視リソース配分の最適化
- 0614 のデータソースから並列取得
活用シーン
- 01注文フローにおける見せ玉やレイヤリングの検出
- 02クロスアセットの価格発見と情報伝達の調査
- 03市場レジームを用いたポートフォリオリスク管理
- 04限られた規制監視予算の配分
MCP 対応
互換性のある MCP クライアントに 8 種類の金融分析ツールを公開し、ライブデータに基づく構造化結果を返します。クライアントは MCP 経由でリモートエンドポイントに接続します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://ryanclinton--market-microstructure-manipulation-mcp.apify.actor/mcpclaude mcp add --transport http market-microstructure-manipulation https://ryanclinton--market-microstructure-manipulation-mcp.apify.actor/mcp{"mcpServers":{"market-microstructure-manipulation":{"type":"http","url":"https://ryanclinton--market-microstructure-manipulation-mcp.apify.actor/mcp"}}}Cursor で開く{"servers":{"market-microstructure-manipulation":{"type":"http","url":"https://ryanclinton--market-microstructure-manipulation-mcp.apify.actor/mcp"}}}VS Code で開く{"mcpServers":{"market-microstructure-manipulation":{"type":"http","url":"https://ryanclinton--market-microstructure-manipulation-mcp.apify.actor/mcp"}}}{"mcpServers":{"market-microstructure-manipulation":{"serverUrl":"https://ryanclinton--market-microstructure-manipulation-mcp.apify.actor/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
マーケット・マイクロストラクチャー&相場操縦 MCP
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf)に追加します:
{
"mcpServers": {
"market-microstructure-manipulation-mcp": {
"url": "https://ryanclinton--market-microstructure-manipulation-mcp.apify.actor/mcp"
}
}
}
14 の金融データアクターを並列でオーケストレーションする MCP サーバーを通じて、マーケット・マイクロストラクチャー分析と相場操縦の検知を行います。インフラを管理することなく、Hawkes 過程、BOCPD、スペクトル伝達エントロピー、Granger 因果性、ゲーム理論に基づく監視最適化など、本番環境に対応した計量経済学的手法を必要とするクオンツ研究者、コンプライアンスチーム、アルゴリズムトレーダー向けに構築されています。
MCP 対応の AI クライアントを接続すると、注文板の動態分析、見せ玉やレイヤリングの検知、資産間の情報フロー測定、ビッド・アスク・スプレッドの分解、異常なインサイダーフローの特定、因果的な相場操縦ネットワークの発見、市場レジームの分類、監視リソース配分の最適化ができます。8 つのツールはすべて、Finnhub、SEC EDGAR、SEC インサイダー報告書、米国議会の株式取引開示、CoinGecko、ECB 金利、FRED、BLS などから集約したライブデータを使用します。
どのようなデータにアクセスできますか?
| データ項目 | ソース | 対象範囲 |
|---|---|---|
| 📈 株価と財務情報 | Finnhub | 米国株式、気配値、決算、企業指標 |
| 📋 SEC 規制関連の提出書類 | EDGAR | 10-K、10-Q、8-K、執行措置 |
| 👤 インサイダー取引 | SEC Form 4 | 役員および取締役による買い、売り、オプション行使 |
| 🏛️ 議会議員の株式取引 | STOCK Act tracker | 上院議員および下院議員による取引の開示 |
| 🪙 暗号資産市場 | CoinGecko | 10,000 種類以上のコイン、価格、取引量、時価総額 |
| 💱 為替レート | Exchange Rate Tracker | 150 種類以上のリアルタイム通貨ペア |
| 🇪🇺 ECB 参照レート | ECB Exchange Rates | FX マイクロストラクチャー分析向けの日次 EUR 参照レート |
| 📉 連邦準備制度の指標 | FRED | FEDFUNDS、VIX、GDP、マクロ経済時系列データ |
| 📊 労働市場統計 | BLS | レジーム把握に役立つ CPI、失業率、PPI |
| 📰 連邦規制 | Federal Register | SEC および CFTC の規則制定と執行命令 |
| 💬 技術コミュニティのシグナル | Hacker News | 市場に関連する技術・金融の議論 |
| 🔍 ウェブサイト変更の監視 | Website Change Monitor | 規制関連および企業ページの更新 |
| 📩 消費者からの苦情 | CFPB | 金融商品の苦情動向 |
| 📅 為替レートの履歴 | Exchange Rate History | トレンド分析向けの長期 FX 時系列データ |
Market Microstructure & Manipulation MCP を使う理由
市場監視インフラをゼロから構築するには、10 以上の金融 API にアクセスし、BOCPD、Hawkes 過程、VECM による共和分、ゲーム理論に基づく LP ソルバーを実装したうえで、API の変更に合わせて保守し続ける必要があります。学術研究で用いられる実装の多くはローカル環境で動作し、Python 環境を必要とするうえ、本番環境で正常に動作しなくなることがあります。
この MCP サーバーが、そのすべてを担います。Claude、Cursor、または任意の MCP クライアントから自然言語でクエリを送信すると、ライブの金融データと査読済みの計量経済学的手法に基づく、構造化された分析結果を受け取れます。
- スケジュール設定 — 定期スケジュールで夜間の相場操縦スキャンとレジームチェックを実行し、新たなパターンを検知します
- API アクセス — Apify API を介して、Python、JavaScript、または任意の HTTP クライアントからプログラムで実行を開始します
- 並列データ取得 — 1 回のツール呼び出しにつき最大 8 つのアクターが同時に実行され、市場データを数分ではなく数秒で集約します
- モニタリング — Webhook を通じて、見せ玉が検知された場合やレジーム転換が発生した場合に、Slack またはメールでアラートを受け取ります
- インテグレーション — Zapier、Make、または Webhook 対応サービスに接続し、監視通知を自動化します
特徴
- キュー反応型 Hawkes 過程の推定 — 多次元強度 lambda_d(t) = mu_d + sum alpha_{dd'} exp(-beta(t-s)) を、E/M ステップの反復による EM アルゴリズムで推定します。分岐比は、べき乗法(収束まで100回反復)によって alpha/beta 行列のスペクトル半径として計算します。
- ベイズオンライン変化点検出(BOCPD) — 正規逆ガンマ共役事前分布と一定のハザード関数を使い、ランレングスの事後分布 P(r_t | x_{1:t}) を維持します。検出された変化点を4つの相場操縦パターン(レイヤリング、スプーフィング、仮装売買、モメンタム・イグニッション)に分類します。
- スペクトル移送エントロピー — 資産ペア全体の AR スペクトル推定値から、方向性のある情報フロー TE(f) = 1/(4pi) ln(S_Y(f)/S_{Y|X}(f)) を計算し、どの市場が先行し、どの市場が追随するかを特定します。
- Hasbrouck 情報シェアを用いた Johansen VECM — ベクトル誤差修正モデルのイノベーション共分散行列をコレスキー分解し、価格発見への寄与を割り当てます。
- MRR スプレッド分解 — Madhavan-Richardson-Roomans モデルでビッド・アスク・スプレッドを逆選択コスト、在庫コスト、注文処理コストに分解します。Kyle のラムダは、符号付き注文フローに対する OLS 回帰で計算します。
- Roll 指標と Amihud 非流動性指標 — Roll 指標はリターンの自己共分散から導出します。Amihud 比率は、取引量あたりの価格インパクトを測定します。
- イベントスタディの CAR 手法 — インサイダー取引および議会関係者の取引を対象に、イベント前後の [-5, +30] のイベントウィンドウで累積異常リターンを計算します。有意性を示す t 統計量と、HHI に基づく情報シェアの集中度も算出します。
- LASSO 正則化 Granger 因果性 — ソフトしきい値処理を用いた座標降下法で関連する VAR ラグを選択します。信頼区間付きのデバイアス済み係数と、Granger 因果性検定の F 統計量を出力します。
- Student-t 隠れマルコフモデル — 裾の厚い Student-t 分布を放出分布とする4状態 HMM(平穏、変動大、危機、回復)です。パラメーター推定には EM 前向き・後向きアルゴリズムを、MAP 経路のデコードには Viterbi アルゴリズムを使用します。
- 展開型ゲーム理論 — 規制当局と相場操縦者をゼロサムゲームとしてモデル化します。虚偽プレイ(200回の反復)でナッシュ均衡を計算し、最適な予算配分、ゲームの値、検出確率、抑止効果を出力します。
- ガウス消去法線形ソルバー — OLS およびゲーム理論の計算で数値的に安定した解を得るため、部分ピボット選択を行います。
- 14の並列データソース — Finnhub、CoinGecko、SEC EDGAR、SEC インサイダー情報、議会関係者取引トラッカー、為替レート、ECB、FRED、BLS、Federal Register、Hacker News、ウェブサイトモニター、CFPB、為替レート履歴
マーケット・マイクロストラクチャー分析のユースケース
クオンツリサーチと HFT 戦略の評価
高頻度取引戦略を検証するクオンツリサーチャーは、実運用を始める前に注文板の動向を把握する必要があります。simulate_order_book_dynamics ツールは、実際の市場データから Hawkes 過程のパラメーターを推定し、分岐比と臨界性指数を返します。分岐比が1.0に近づくと、市場が自己励起の臨界状態に近いことを示します。この状態では、HFT 戦略が再帰性のリスクに直面します。このツールを使えば、独自のデータパイプライン構築に何週間もかける作業を、1回のツール呼び出しで置き換えられます。
コンプライアンスと市場監視
ブローカーディーラーや取引所のコンプライアンスチームは、スプーフィングやレイヤリングを継続的に監視する必要があります。detect_spoofing_manipulation ツールは BOCPD を適用して注文フローの変化点を検出し、相場操縦の種類ごとに分類して、信頼度付きのアラートを返します。この出力を毎日 Webhook に送信すれば、高価な独自の監視システムを導入せずに、監視パイプラインを自動化できます。
規制経済学と執行に関する調査
操作事件を調査する規制当局や執行を担当する経済学者は、市場変数間の因果関係を追跡する必要があります。discover_manipulation_causality ツールは、F 統計量とデバイアス済み係数を用いた LASSO ペナルティ付きグレンジャー因果性を適用し、p 値付きの有向因果ネットワークを返します。これを identify_insider_abnormal_flow ツールと組み合わせることで、インサイダー取引から価格変動に至る情報漏えいを追跡する証拠一式を作成できます。
ポートフォリオのリスク管理とレジーム配分
ファクターモデルを用いるポートフォリオマネージャーは、ポジションの規模を決める前に、現在の市場レジームを把握する必要があります。classify_market_regimes ツールは、Student-t HMM を使用して現在の状況を平穏、変動、危機、回復に分類し、レジームの遷移確率と予想継続期間を返します。この結果は、ボラティリティを目標とする配分フレームワークに直接反映できます。
クロスアセットの価格発見に関する調査
資産クラス間の情報伝達を研究する学術研究者は、measure_cross_asset_information を使って、株式、暗号資産、FX にわたる方向性のある移転エントロピーと Hasbrouck 情報シェアを同時に定量化できます。スペクトル分解により、どの周波数帯が最も多くの情報フローを担っているかを特定できます。
監視予算の最適化
限られた執行予算を持つ規制当局は、抑止効果を最大化するためにリソースを配分する必要があります。optimize_surveillance_strategy ツールは、規制当局と相場操縦者の相互作用を展開型ゼロサムゲームとしてモデル化し、ナッシュ均衡における行動確率を算出するとともに、検出確率と抑止効果の推定値を含む最適な予算配分を返します。
Market Microstructure & Manipulation MCP の使い方
- Apify API トークンを取得する — apify.com に登録し、Account Settings からトークンをコピーします。Free プランには毎月 $5 分のクレジットが含まれます。
- MCP サーバーをクライアントに追加する — サーバー URL を MCP クライアントの設定に貼り付けます(以下の接続例を参照)。ソフトウェアのインストールは不要です。
- 市場に関するクエリを送信する — 「AAPL のスプーフィングパターンを分析して」や「現在の暗号資産市場のレジームを分類して」のように、AI クライアントに質問します。サーバーがクエリを適切なツールに振り分けます。
- 構造化された分析結果を受け取る — 結果は、アルゴリズムの出力、信頼度指標、アラート分類、ライブソースからの裏付けとなる市場データを含む、構造化された JSON として返されます。
MCP ツール
| ツール | 価格 | Actors | 説明 |
|---|---|---|---|
simulate_order_book_dynamics | $0.045 | 4 | 分岐比、臨界度指数、キューの不均衡を含むホークス過程の推定 |
detect_spoofing_manipulation | $0.050 | 6 | 操作パターンの分類と信頼度スコアを含む BOCPD スプーフィング検出 |
measure_cross_asset_information | $0.040 | 5 | Johansen VECM に基づくスペクトル移転エントロピーと Hasbrouck 情報シェア |
decompose_spread_components | $0.035 | 3 | MRR スプレッド分解:逆選択、在庫、注文処理、Kyle ラムダ |
identify_insider_abnormal_flow | $0.045 | 4 | インサイダー取引および議会関係者の取引を対象とした、t 統計量付き CAR イベントスタディ [-5,+30] |
discover_manipulation_causality | $0.040 | 5 | F 統計量、p 値、デバイアス済み係数を含む LASSO グレンジャー因果ネットワーク |
classify_market_regimes | $0.035 | 4 | Viterbi パスを用いた Student-t HMM:平穏、変動、危機、回復の分類 |
optimize_surveillance_strategy | $0.040 | 8 | 展開型ゲーム理論:ナッシュ均衡に基づく監視予算の配分 |
ツールのパラメーター
各ツールは、MCP クライアントから呼び出す際に渡す以下の 2 つのパラメーターを受け取ります。
| パラメーター | 型 | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | はい | — | 市場に関するクエリ:ティッカー、資産クラス、セクター、または企業名(例:「AAPL」、「crypto」、「energy sector」、「Nancy Pelosi」) |
max_results | number | いいえ | 40–50 | アクターごとに取得する最大結果数。simulate_order_book_dynamics と measure_cross_asset_information で利用できます。クエリを高速化し、コストを抑えるには値を小さくしてください。 |
hazard_lambda | number | いいえ | 100 | BOCPD の変化点間の予想実行長です。detect_spoofing_manipulation で利用できます。値を大きくすると、変化点の数が減り、信頼度が高くなります。 |
接続のヒント
- まず
classify_market_regimesを実行してください — 最も低コストのツール($0.035)であり、より高コストな分析を実行する前に、現在の市場状況をすぐに把握できます。 optimize_surveillance_strategyの前にdetect_spoofing_manipulationを実行してください — 監視最適化ツールは前提条件として内部で BOCPD と HMM を実行するため、データ取得コストを共有できます。- 用途に合わせて
hazard_lambdaを調整してください — 週次のレジームスキャンではhazard_lambda: 200にすると誤検知を抑えられます。日中の監視ではhazard_lambda: 50にすると感度が高まります。 - 資産クラスごとにクエリをまとめてください — 「US tech sector」をクエリすると、「MSFT」だけをクエリする場合よりも複数のティッカーにわたる幅広いデータが返され、クロスアセットツールからより有益な情報を得られます。
この MCP サーバーへの接続方法
Claude Desktop
claude_desktop_config.json に追加します。
{
"mcpServers": {
"market-microstructure-manipulation": {
"url": "https://market-microstructure-manipulation-mcp.apify.actor/mcp",
"headers": {
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
}
}
}
Cursor、Windsurf、または Cline
MCP 設定パネルにサーバー URL を追加します。
https://market-microstructure-manipulation-mcp.apify.actor/mcp
Authorization ヘッダーを Bearer YOUR_APIFY_TOKEN に設定します。
Python
import anthropic
import json
client = anthropic.Anthropic()
# The MCP server connects via the Apify Standby URL
# Use with Claude or any MCP-compatible framework
# Direct HTTP call example
import urllib.request
payload = json.dumps({
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "detect_spoofing_manipulation",
"arguments": {
"query": "AAPL",
"hazard_lambda": 100
}
},
"id": 1
}).encode()
req = urllib.request.Request(
"https://market-microstructure-manipulation-mcp.apify.actor/mcp",
data=payload,
headers={
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN"
}
)
with urllib.request.urlopen(req) as response:
result = json.loads(response.read())
tool_result = json.loads(result["result"]["content"][0]["text"])
print(f"Detected: {tool_result['totalDetected']} manipulation events")
print(f"Changepoints: {tool_result['changepointCount']}")
for alert in tool_result.get("alerts", []):
print(f" [{alert['pattern']}] {alert['asset']} confidence={alert['confidence']:.2f}")
JavaScript
const payload = {
jsonrpc: "2.0",
method: "tools/call",
params: {
name: "classify_market_regimes",
arguments: { query: "SPY crypto macro" }
},
id: 1
};
const response = await fetch(
"https://market-microstructure-manipulation-mcp.apify.actor/mcp",
{
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_APIFY_TOKEN"
},
body: JSON.stringify(payload)
}
);
const data = await response.json();
const result = JSON.parse(data.result.content[0].text);
console.log(`Current regime: ${result.currentRegime}`);
console.log(`Stationary distribution:`, result.stationaryDistribution);
console.log(`Expected durations:`, result.expectedDuration);
for (const regime of result.regimes.slice(0, 3)) {
console.log(` ${regime.regime}: prob=${regime.probability.toFixed(3)}, vol=${regime.volatility.toFixed(4)}`);
}
cURL
# Detect spoofing on a specific ticker
curl -X POST "https://market-microstructure-manipulation-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "detect_spoofing_manipulation",
"arguments": {
"query": "AAPL",
"hazard_lambda": 100
}
},
"id": 1
}'
# Decompose bid-ask spread
curl -X POST "https://market-microstructure-manipulation-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"name": "decompose_spread_components",
"arguments": { "query": "SPY" }
},
"id": 2
}'
# List all available tools
curl -X POST "https://market-microstructure-manipulation-mcp.apify.actor/mcp" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_APIFY_TOKEN" \
-d '{"jsonrpc":"2.0","method":"tools/list","params":{},"id":3}'
出力例
detect_spoofing_manipulation の出力
{
"totalDetected": 3,
"changepointCount": 7,
"maxRunLength": 42,
"falsePositiveRate": 0.082,
"alerts": [
{
"timestamp": 1711027200000,
"asset": "AAPL",
"pattern": "layering",
"confidence": 0.87,
"runLength": 12,
"hazardRate": 0.01,
"posteriorChangeProb": 0.923
},
{
"timestamp": 1711040400000,
"asset": "AAPL",
"pattern": "momentum_ignition",
"confidence": 0.74,
"runLength": 5,
"hazardRate": 0.01,
"posteriorChangeProb": 0.761
}
]
}
classify_market_regimes の出力
{
"currentRegime": "volatile",
"transitionMatrix": [
[0.92, 0.06, 0.01, 0.01],
[0.08, 0.81, 0.09, 0.02],
[0.02, 0.11, 0.84, 0.03],
[0.04, 0.08, 0.05, 0.83]
],
"stationaryDistribution": [0.38, 0.31, 0.18, 0.13],
"expectedDuration": {
"calm": 12.5,
"volatile": 5.3,
"crisis": 6.3,
"recovery": 5.9
},
"regimeCount": 4,
"viterbiPath": ["calm", "calm", "volatile", "volatile", "crisis", "recovery"],
"regimes": [
{
"period": "2024-03-21",
"regime": "volatile",
"probability": 0.81,
"mean": -0.0012,
"volatility": 0.0184,
"degreesOfFreedom": 4.2
}
]
}
decompose_spread_components の出力
{
"averageSpread": 0.00312,
"averageLambda": 0.00847,
"rollMeasure": 0.00154,
"amihudIlliquidity": 0.000213,
"components": [
{
"asset": "AAPL",
"adverseSelection": 0.00142,
"inventoryCost": 0.00089,
"orderProcessing": 0.00081,
"totalSpread": 0.00312,
"kyleLambda": 0.00847,
"informedFraction": 0.454
}
]
}
identify_insider_abnormal_flow の出力
{
"significantCount": 4,
"averageCAR": 0.0312,
"informationShareConcentration": 0.641,
"totalFlows": 12,
"flows": [
{
"insider": "Timothy D. Cook",
"asset": "AAPL",
"tradeDate": "2024-03-15",
"cumulativeAbnormalReturn": 0.0847,
"tStatistic": 2.94,
"eventWindow": [-5, 30],
"informationShare": 0.182
}
]
}
出力フィールド
simulate_order_book_dynamics
| フィールド | 型 | 説明 |
|---|---|---|
branchingRatio | number | alpha/beta 行列のスペクトル半径です。値が 0.9 を超えると臨界状態に近いことを示します |
criticalityIndex | number | 臨界境界からの距離です(0=安定、1=臨界) |
queueImbalance | number | 買い注文と売り注文の板の厚さの差を、板全体の厚さで正規化した値です |
meanIntensity | number[] | 次元ごとの平均イベント強度です |
kernelNorms | number[][] | Hawkes カーネルの L1 ノルムを表す D×D 行列です |
hawkesParams.mu | number[] | 次元ごとのベースライン強度です |
hawkesParams.branchingRatio | number | EM 推定パラメーターから求めた分岐比です |
hawkesParams.logLikelihood | number | 推定された Hawkes モデルの対数尤度です |
snapshotCount | number | 分析した注文板スナップショットの数です |
snapshots | OrderBookState[] | 買い注文・売り注文の板の厚さ、仲値、スプレッド、注文不均衡を含む最大 10 件の注文板状態です |
detect_spoofing_manipulation
| フィールド | 型 | 説明 |
|---|---|---|
totalDetected | number | 分類された相場操縦イベントの数です |
changepointCount | number | 検出された BOCPD 変化点の合計数です |
maxRunLength | number | 変化点間の最長安定実行長です |
falsePositiveRate | number | 推定偽陽性率です |
alerts[].timestamp | number | 検出イベントの Unix ミリ秒時刻です |
alerts[].asset | string | アラートに関連付けられた資産シンボルです |
alerts[].pattern | string | 次のいずれかです:layering、spoofing、wash_trading、momentum_ignition |
alerts[].confidence | number | 分類の信頼度[0,1]です |
alerts[].runLength | number | 変化点における実行長です |
alerts[].posteriorChangeProb | number | この時点でレジームが変化した事後確率です |
measure_cross_asset_information
| Field | Type | Description |
|---|---|---|
totalInformationFlow | number | すべての資産ペアにおける方向付き移転エントロピーの合計 |
dominantFrequency | number | 最も多くの情報フローを伝達する周波数 |
hasbrouckShare | Record<string, number> | 資産ごとの価格発見への寄与シェア |
channels[].source | string | 情報フローペアの送信元資産 |
channels[].target | string | 情報を受け取る対象資産 |
channels[].spectralTE | number | スペクトル移転エントロピー値 |
channels[].peakFrequency | number | TE がピークに達する周波数 |
channels[].significance | number | チャネルの統計的有意性 |
channels[].lag | number | 期間単位で推定した先行・遅行 |
decompose_spread_components
| Field | Type | Description |
|---|---|---|
averageSpread | number | 分析対象資産全体の平均ビッド・アスク・スプレッド |
averageLambda | number | Kyle のラムダ(価格インパクト係数)の平均 |
rollMeasure | number | リターンの自己共分散から算出した Roll 指標 |
amihudIlliquidity | number | Amihud 非流動性比率 |
components[].adverseSelection | number | スプレッドの逆選択コスト成分 |
components[].inventoryCost | number | 在庫保有コスト成分 |
components[].orderProcessing | number | 注文処理コスト成分 |
components[].kyleLambda | number | 符号付き注文フロー単位あたりの価格インパクト |
components[].informedFraction | number | 情報を持つトレーダーの推定割合 |
identify_insider_abnormal_flow
| Field | Type | Description |
|---|---|---|
significantCount | number | t 統計量が有意性のしきい値を上回るフローの数 |
averageCAR | number | すべてのフローにおける累積異常リターンの平均 |
informationShareConcentration | number | 情報シェアの HHI(0=分散、1=集中) |
flows[].insider | string | インサイダーまたは議員の名前 |
flows[].cumulativeAbnormalReturn | number | イベントウィンドウ [-5, +30] における CAR |
flows[].tStatistic | number | CAR の有意性を示す t 統計量 |
flows[].eventWindow | [number, number] | 取引日を基準とした日数でのイベントウィンドウの範囲 |
flows[].informationShare | number | このフローに起因する価格発見の割合 |
discover_manipulation_causality
| Field | Type | Description |
|---|---|---|
networkDensity | number | 有意な因果リンクが、可能な因果リンク全体に占める割合 |
lassoSelectedCount | number | LASSO のソフトしきい値処理後に残ったリンクの数 |
strongestLink | CausalLink or null | Granger の F 統計量が最も高いリンク |
links[].cause | string | 因果関係を引き起こす変数 |
links[].effect | string | 因果的影響を受ける変数 |
links[].grangerFStat | number | Granger 因果性検定の F 統計量 |
links[].pValue | number | Granger 因果性の p 値 |
links[].debiasedCoeff | number | バイアス補正済み VAR 係数 |
links[].confidenceInterval | [number, number] | 係数の 95% 信頼区間 |
links[].lag | number | 因果関係が作用するラグ |
classify_market_regimes
| Field | Type | Description |
|---|---|---|
currentRegime | string | 現在の状態:平穏、変動、危機、または回復 |
transitionMatrix | number[][] | 4x4 のマルコフ遷移確率行列 |
stationaryDistribution | number[] | 各レジームの長期確率 |
expectedDuration | Record<string, number> | 遷移まで各レジームにとどまる予想期間 |
viterbiPath | string[] | MAP によるレジーム状態の系列 |
regimes[].volatility | number | Student-t 分布の放出モデルから得られる、レジーム固有のボラティリティ |
regimes[].degreesOfFreedom | number | Student-t 分布の自由度(小さいほど裾が厚い) |
optimize_surveillance_strategy
| 項目 | 型 | 説明 |
|---|---|---|
gameValue | number | 監視ゲームのナッシュ均衡値 |
detectionProbability | number | 最適戦略で操作を検出する確率 |
deterrenceEffect | number | 最適な監視による操作確率の低下 |
optimalBudgetAllocation | Record<string, number> | 監視アクションごとの予算配分比率 |
actions[].action | string | 監視アクションのラベル |
actions[].nashEquilibriumProb | number | このアクションを選択するナッシュ均衡確率 |
actions[].expectedDetection | number | このアクションによる期待検出率 |
actions[].resourceCost | number | このアクションのリソースコスト |
spoofingAlertCount | number | 前提となる BOCPD 実行からのアラート数 |
currentRegime | string | 前提となる HMM 実行から得られた現在の市場レジーム |
市場のマイクロストラクチャー分析の実行料金はいくらですか?
この MCP サーバーは従量課金制です。ツール呼び出しごとに料金が発生し、プラットフォームのコンピューティングコストも含まれます。
| ツール | 1 回あたりの料金 | 10 回 | 50 回 |
|---|---|---|---|
decompose_spread_components | $0.035 | $0.35 | $1.75 |
classify_market_regimes | $0.035 | $0.35 | $1.75 |
measure_cross_asset_information | $0.040 | $0.40 | $2.00 |
discover_manipulation_causality | $0.040 | $0.40 | $2.00 |
optimize_surveillance_strategy | $0.040 | $0.40 | $2.00 |
simulate_order_book_dynamics | $0.045 | $0.45 | $2.25 |
identify_insider_abnormal_flow | $0.045 | $0.45 | $2.25 |
detect_spoofing_manipulation | $0.050 | $0.50 | $2.50 |
Apify Free プランには月額 5 ドル分のプラットフォームクレジットが含まれており、標準的なツールの組み合わせで月に約 100~140 回のツール呼び出しが可能です。実行ごとに最大利用額を設定して、コストを管理できます。予算に達すると、サーバーは停止します。
同様の金融データへのアクセスと分析機能を Bloomberg Terminal API(年間 24,000 ドル)や Refinitiv Eikon(年間 22,000 ドル)で利用する場合と比べて、この方法では分析 1 回あたり 1 セント未満で、長期契約も不要です。
Market Microstructure & Manipulation MCP の仕組み
フェーズ 1:データの並列収集
ツール呼び出しを受信すると、サーバーは Promise.all を使用して、3~8 個のアクター呼び出しを同時にディスパッチします。各アクターは、メモリ 256 MB、タイムアウト 120 秒の Apify コンテナ内で個別に実行されます。Finnhub(株価、ファンダメンタルズ)、CoinGecko(暗号資産市場)、SEC EDGAR(提出書類)、SEC の内部関係者による Form 4 データ、議会議員の株式保有開示、為替レート、ECB 金利、FRED のマクロ経済指標、BLS の労働データを、extractTimeSeries を使って共通の時系列形式にまとめます。これは、異種のアクター出力から price、value、rate、close、amount、volume、count フィールドを抽出するマルチキーデータ抽出機能です。
フェーズ 2:アルゴリズムの適用
各ツールは、査読済みの特定の計量経済学的手法を適用します。
-
simulate_order_book_dynamics— 価格変動を、D 次元(データ量に応じて 3~12 に制限)のイベント到着として符号化します。EM 推定を実行します。E ステップでは、alpha * exp(-beta * delta_t) に比例する親イベントの確率を計算します。M ステップでは、ベースライン強度 mu、励起 alpha、減衰 beta を更新します。分岐比は、alpha/beta 行列のスペクトル半径として、100 回のべき乗法反復で計算します。臨界度指数は、安定性境界からの距離をクリップした値です。 -
detect_spoofing_manipulation— 正規逆ガンマ共役事前分布を用いた BOCPD を実装します。各時点で、共役モデルのもとでの観測値の予測確率と一定のハザード関数を使って、ランレングスの事後分布を更新します。事後分布でランレングス 0 が最も高い確率を割り当てられた時点を変化点と判定します。各変化点周辺のリターン特性(平均、分散、自己相関)を使用して、操作パターンを分類します。 -
measure_cross_asset_information— AR モデルに基づくスペクトル推定を用いて、すべての資産ペア間のスペクトル移転エントロピーを計算します。Hasbrouck 情報シェアは、Johansen VECM からイノベーション共分散行列のコレスキー分解を行い、下三角因子の各要素を二乗して計算します。スペクトルピークで優勢な周波数を特定します。 -
optimize_surveillance_strategy— 前提処理としてdetectSpoofingとclassifyRegimesを実行し、得られたアラート件数とレジーム分類から監視ゲームの利得行列を構築します。200 回の反復による虚偽プレイで、ナッシュ均衡の混合戦略に収束します。抑止効果は、規制当局がナッシュ均衡戦略を確約した場合の操作確率の低下として計算します。
フェーズ 3:構造化レスポンス
結果は JSON としてシリアライズされ、MCP プロトコルの CallToolResult 形式で返されます。単一の text コンテンツ項目に、完全な構造化出力が含まれます。Express サーバーは MCP トランスポート層を処理し、クロスオリジンのクライアント向けに CORS を有効にするとともに、GET / で Apify コンテナの準備状態プローブに対応します。
最適な結果を得るためのヒント
-
前置きとしてレジーム分類を使用します。 対象の資産またはセクターを指定して、最初に
classify_market_regimesを呼び出します。現在のレジームのコンテキストにより、以降のすべての結果の解釈が向上します。危機時と平穏時では、スプーフィングのパターンが異なります。 -
時間軸に合わせて hazard_lambda を調整します。 デフォルトの
hazard_lambda: 100は、約100件の観測ごとに1回のレジーム変化を想定しています。1年分の日次データには適しています。日中データでは、過剰なセグメント分割を避けるためにhazard_lambda: 500を使用します。 -
インサイダーのフロー分析と因果関係の特定を組み合わせます。 まず
identify_insider_abnormal_flowを実行し、次に同じクエリをdiscover_manipulation_causalityに渡します。因果ネットワークによって、イベントスタディで検出されたインサイダー取引の影響を受ける下流の市場変数が明らかになります。 -
クロスアセット分析にはセクターのクエリを使用します。
measure_cross_asset_informationは、「US financials」や「crypto DeFi」のような、複数のデータソースから多様な資産を取得できる幅広いクエリで最も有用です。単一銘柄のクエリでは、より限定的なクロスアセットネットワークが返されます。 -
監視の最適化は、スプーフィングのアラート発生後に最も有用です。
detect_spoofing_manipulationがアラートを返したら、同じクエリでoptimize_surveillance_strategyを実行します。内部で BOCPD と HMM を実行し、その結果を使ってゲーム理論モデルを調整するため、監視の割り当てに現在のアラート状況が直接反映されます。 -
探索的なクエリを高速化するには
max_resultsを小さくします。simulate_order_book_dynamicsまたはmeasure_cross_asset_informationでmax_results: 20を設定すると、データ取得時間とコストを削減できます。より高い統計的検出力が必要な本番の監視実行では、大きい値(50〜100)を使用します。 -
長期的な分析のために結果を保存します。 ツールの出力をデータベースに保存し、毎週同じクエリを実行します。分岐比、レジーム分布、因果ネットワークの密度の経時変化から、単一時点の分析では見逃される市場の構造的な変化を把握できます。
他の Apify アクターと組み合わせる
| アクター | 組み合わせ方 |
|---|---|
| SEC EDGAR Filing Search | detect_spoofing_manipulation のアラート後に対象を絞った EDGAR 検索を実行し、同じ資産に関する過去の訴追パターンと照合します |
| Congressional Stock Tracker | 議会議員の取引データを identify_insider_abnormal_flow に直接渡して、議員ごとの CAR 分析を実行します。最大の価格変動に先行する取引を行った議員を特定できます |
| Finnhub Stock Data | MCP ツールに送る前の分析用データ検証に、単独のデータソースとして使用します |
| FRED Economic Data | マクロ時系列データ(VIX、FEDFUNDS、イールドカーブ)を取得し、レジーム分類の出力と重ね合わせて、HMM の状態割り当てをマクロの転換点と照合します |
| Website Change Monitor | SEC の執行関連ページや企業の IR サイトを監視します。変更イベントをクエリのコンテキストとして detect_spoofing_manipulation に渡し、発表前の監視に活用します |
| Hacker News Search | Hacker News の議論のセンチメントを classify_market_regimes の出力と照合し、個人投資家の注目サイクルが HMM で特定されたレジームの転換と一致するかを評価します |
| CoinGecko Crypto Data | 暗号資産市場のデータを単独で取得し、simulate_order_book_dynamics の分岐比の推定値を価格系列の生データと照合します |
制限事項
- ライブのレベル 2 注文板データはありません — Hawkes プロセスとスプレッド分解ツールは、ティック単位の売買気配の厚みデータではなく、Finnhub と CoinGecko の価格・出来高データを使用します。結果は、正確な注文板の測定値ではなく、市場マイクロストラクチャーの動態を近似したものです。
- リアルタイムのストリーミングには対応していません — これはリクエスト/レスポンス方式の MCP サーバーであり、ストリーミングフィードではありません。各ツールの呼び出し時に最新データを取得しますが、サーバー自体に継続的な監視機能はありません。定期実行には Apify のスケジュール機能を使用してください。
- アクターのタイムアウトは 120 秒です — 上流のデータソースの応答が遅い場合やエラーを返した場合、該当するアクターは空の配列を返します。アルゴリズムは一部のデータが欠けていても適切に処理しますが、データソースの数が少ない場合は、出力を適切に注意して解釈してください。
- Finnhub の無料プランには制限があります — Finnhub のデータの詳細度は、Finnhub のサブスクリプションによって異なります。アクターはデフォルトで無料プランを使用します。このプランでは、一部のエンドポイントにレート制限があり、データの遅延が生じる場合があります。
- Hawkes EM の収束 — EM 推定は、データから直接初期化されます。時系列が非常に短い場合(各次元で観測数が 20 未満の場合)、分岐比の推定値は信頼性に欠ける可能性があります。安定した推定値を得るには、
max_results: 50以上を使用してください。 - BOCPD のハザードに関する仮定 — 一定のハザード関数は、変化点が一定の割合で到来することを前提としています。ボラティリティが集中する市場(決算シーズンなど)では、モデルが示唆するよりも多くの変化点が生成されます。変化点の絶対数は、状況を踏まえて解釈してください。
- 議会議員の取引データには遅延があります — STOCK Act に基づく開示は、取引から 30~45 日以内に提出されます。最近の取引は、議会議員取引の追跡データにまだ反映されていない可能性があるため、最近の期間に対する
identify_insider_abnormal_flowの結果は不完全なものとして扱ってください。 - 実行間で状態は保持されません — 各ツールの呼び出しはステートレスです。サーバーは、永続的な注文板や呼び出し間で維持されるローリングウィンドウを保持しません。長期的な分析を行う場合は、結果を外部に保存し、アプリケーションコードで変化を計算してください。
- ゲーム理論モデルは簡略化されています — 監視ゲームでは、線形ペイオフを持つ 4 つのアクションからなる有限集合を使用します。実際の規制に関するゲームでは、より複雑な情報構造が関わります。結果は、処方的な指針ではなく、傾向を示す情報として扱ってください。
統合
- Apify API — あらゆる言語から MCP エンドポイントをプログラムで呼び出せます。Apify の実行 API を使用して、後続の処理に使う出力をデータセットに保存できます。
- Webhooks — スケジュールされたスキャンでなりすましのアラートが検出されたときや、レジームの移行が発生したときに実行される Webhook を設定できます。
- Zapier — コードを書かずに、スケジュールされた MCP の実行からのなりすましアラートを Slack、メール、Google Sheets のワークフローに振り分けられます。
- Make — SEC EDGAR の提出イベントをきっかけに監視分析を実行し、結果をコンプライアンスのチケット管理システムに振り分ける、複数ステップのシナリオを構築できます。
- LangChain / LlamaIndex — AI エージェントが定量的な金融に関する質問へ回答する際に、ライブの市場マイクロストラクチャーのコンテキストを必要とする RAG パイプラインに、この MCP サーバーを統合できます。
- Claude Desktop — MCP を直接統合できます。コードを書かずに、自然言語で Claude に市場操作のパターンの検出、レジームの分類、監視予算の最適化を依頼できます。
トラブルシューティング
操作が予想されるのに、detect_spoofing_manipulation のアラートが空になります。 BOCPD アルゴリズムで変化点を検出するには、価格系列に十分な分散が必要です。クエリ対象の資産の現在のデータ期間におけるボラティリティが非常に低い場合、実行長の事後分布は長く安定した期間を優先します。hazard_lambda を 50 に下げて感度を高めるか、クエリの対象資産を増やしてみてください。
classify_market_regimes が同じレジームを繰り返し返します。 これは、4 つすべてのアクターから返されるデータが均質な時系列(たとえば、すべての値がほぼゼロ、またはすべて同一)の場合に発生します。複数の資産クラスにまたがる「SPY VIX bonds」のような幅広いクエリでテストし、多様な数値系列が返されることを確認してください。
ツールの呼び出しがタイムアウトします。 上流のアクター(特に、トラフィックの多い時間帯の Finnhub または CoinGecko)の応答が遅いと、120 秒のアクタータイムアウトに達する場合があります。サーバーはタイムアウトしたソースから空の配列を含む結果を返します。時間的制約のあるユースケースでは、使用するアクターが少なく、タイムアウトしにくい decompose_spread_components または classify_market_regimes を使用してください。
optimize_surveillance_strategy が均一な予算配分を返します。 ゲーム理論的なオプティマイザーは、架空プレイによってナッシュ均衡に収束します。前提となる BOCPD と HMM の実行でアラートがなく、レジームも安定している場合、ゲーム行列はほぼ均一になり、配分も同様になります。これは、操作の兆候が存在しない場合に、特定の監視アクションが優位にならないことを示す有効な結果です。
Hacker News が関連性のない結果を返します。 Hacker News のアクターはキーワードで検索します。「T」や「F」のような一般的なティッカーシンボルは、無関係なディスカッションスレッドに一致することがあります。Hacker News をソースに含むツールでは、企業名やより具体的な検索語(たとえば、「TSLA」ではなく「Tesla stock」)を使用してください。
責任ある利用
- このサーバーがアクセスするのは、ライセンス付きまたはオープンアクセスのソースから公開されている金融データのみです。
- 議会議員による株式取引の開示情報は、STOCK Act(2012 年)に基づく公開記録であり、合法的にアクセスして分析できます。
- SEC EDGAR の提出書類は、米国証券取引委員会が提供する公開記録です。
- 投資判断の唯一の根拠として、このサーバーの出力を使用しないでください。市場のマイクロストラクチャー分析は、多数ある入力情報の 1 つです。
- 操作検出の出力を使用する際は、適用される証券関連法規を遵守してください。正式な監視プログラムで使用する前に、アラートのしきい値を資格のあるコンプライアンス専門家が調整する必要があります。
- ウェブスクレイピングの合法性に関するガイダンスは、Apify のガイドを参照してください。
FAQ
市場マイクロストラクチャーにおける操作検出は、技術的にどのように機能しますか?
detect_spoofing_manipulation ツールは、正規逆ガンマ共役事前分布を用いたベイズオンライン変化点検出(BOCPD)を実装しています。各時点で、共役モデルの予測確率と一定のハザード関数を使って、実行長の事後分布 P(r_t | x_{1:t}) を更新します。事後分布が実行長ゼロに高い確率を割り当てると、変化点が宣言されます。変化点付近のリターン系列の特性(平均、分散、歪度、自己相関)によって、そのパターンがレイヤリング、スプーフィング、ウォッシュトレード、モメンタム・イグニッションのいずれに分類されるかが決まります。
MCP はどのような操作パターンを検出できますか? BOCPD 検出器は、4 つのパターンを分類します。レイヤリング(板の最良気配付近に大口注文を繰り返し出して取り消すこと)、スプーフィング(取り消す前に価格を動かすことを意図した、欺瞞的な大口注文)、ウォッシュトレード(人工的な出来高を作り出す自己売買)、モメンタム・イグニッション(ストップ注文を誘発し、価格の連鎖的な動きを生じさせることを狙った一連の注文)です。 Hawkes 過程の分岐比推定の精度はどのくらいですか? 精度は観測数によって異なります。価格変動イベントが50件以上ある場合、EM は通常20回の反復以内に安定した推定値へ収束します。スペクトル半径のべき乗反復法は、対象となる行列サイズ(3~12次元)で安定して収束します。分岐比が0.9を超える場合は、正確な測定値ではなく、マイクロストラクチャーのストレスが高まっていることを示す指標として扱ってください。
議会議員の株式取引を分析することは合法ですか? はい。議会議員による株式取引の開示は、2012年の STOCK Act に基づく義務的な公開記録です。この法律では、上院議員と下院議員に対し、株式取引から30~45日以内に開示することを義務付けています。データは議会の公式開示データベースで公開されており、アクセス、分析、公開は合法です。
Bloomberg や Refinitiv の市場監視ツールとは何が違いますか? Bloomberg BTCA と Refinitiv の監視製品は、年間22,000~24,000ドルの費用がかかり、専用端末が必要で、機関投資家のコンプライアンス部門向けに設計されています。この MCP サーバーでは、同じ分析手法(Hawkes 過程、イベントスタディ、Granger 因果性)を、サブスクリプションも端末も不要で、1回の分析呼び出しあたり0.035~0.050ドルで利用でき、あらゆる MCP 対応 AI クライアントに直接統合できます。
この MCP サーバーを毎日の相場操縦スキャンにスケジュールできますか?
はい。Apify のスケジュール機能を使って、cron スケジュールで MCP サーバーを呼び出す定期的なアクター実行を設定します。結果を Apify データセットに保存し、なりすましツールの出力で totalDetected > 0 になったときに実行されるよう、Webhook を設定してください。これにより、低コストの自動監視パイプラインを構築できます。
Apify の無料プランでは、ツールを何回呼び出せますか? Apify Free プランには、毎月5ドル分のクレジットが含まれています。すべてのツールを通じた1回あたりの平均コストは0.042ドルのため、月に約119回ツールを呼び出せます。より多く利用する場合は、月額49ドルの Apify Starter プランで、月に約1,160回ツールを呼び出せます。
14個のデータアクターのうち、1つが失敗したりタイムアウトしたりした場合はどうなりますか?
各アクターの呼び出しは、120秒のタイムアウトを設定した try-catch で囲まれています。アクターが失敗した場合は、空の配列を返します。アルゴリズムは残りのデータを使って処理を続行し、機能を段階的に縮小します。出力の snapshotCount または channelCount フィールドが想定より小さいかどうかを確認すると、結果の一部が欠けていることを特定できます。
Student-t HMM は標準的なガウス HMM とどう違いますか? Student-t の放出分布はガウス分布より裾が厚いため、外れ値や、リターン分布に極端な尖度が見られる金融危機に対してより頑健です。自由度パラメーター nu は、レジームの平均値や分散とともに推定されます。nu の値が低い(2~4)場合は、危機時に典型的な厚い裾を持つレジームを示し、値が高い(10以上)場合は、ガウス分布に近く、平穏なレジームに典型的です。
Cursor や Windsurf などの AI コーディングアシスタントで、この MCP サーバーを使えますか?
はい。MCP 対応クライアントであれば、どれでもこのサーバーを利用できます。サーバー URL https://market-microstructure-manipulation-mcp.apify.actor/mcp を、Apify トークンを Authorization ヘッダーとして指定して、クライアントの MCP 設定に追加してください。このサーバーは8つのツールを公開しており、AI アシスタントはコンテキストウィンドウから直接呼び出せます。
ゲーム理論に基づく監視最適化ツールは、具体的な推奨事項を提示しますか?
出力は方向性を示すものであり、具体的な推奨事項ではありません。ナッシュ均衡に基づく予算配分は、最悪ケースの相場操縦者の戦略を想定した場合に、どの監視アクションが最も高い期待検出価値を持つかを示します。実際の規制当局による監視プログラムでは、法的制約、データの入手可能性、組織としての判断と併せて、定量的な入力の1つとして活用してください。
一般的なツール呼び出しにはどのくらい時間がかかりますか?
3~4 個の Actor(decompose_spread_components や classify_market_regimes など)からデータを取得するツール呼び出しは、通常 15~40 秒で完了します。6~8 個の Actor(detect_spoofing_manipulation や optimize_surveillance_strategy など)からデータを取得するツール呼び出しは、通常 30~70 秒かかります。すべての Actor 呼び出しは並列で実行されるため、レイテンシは合計ではなく、最も時間のかかる単一の Actor 呼び出しによって決まります。
改善へのご協力
問題が発生した場合は、Apify アカウントで実行データの共有を有効にすると、デバッグを迅速に進められます。
- アカウント設定 > プライバシーに移動します
- 実行データを公開 Actor の作成者と共有するを有効にします
問題が発生した際に実行の詳細を確認できるため、より迅速に修正できます。データは Actor の開発者にのみ表示され、一般公開されることはありません。
サポート
バグを見つけた場合や機能のリクエストがある場合は、この Actor のページのIssues タブから課題を作成してください。カスタムソリューションやエンタープライズ向けの連携については、Apify プラットフォームからお問い合わせください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。