outcometick について
outcometick は、Polymarket と Predict.fun の暗号資産上昇・下落市場の過去ティックデータを使う戦略向けに、MCP ツールと TypeScript/JavaScript SDK を提供します。MCP サーバーではデータ範囲の確認、戦略検証、バックテスト見積もり、レポート取得ができ、バックテスト自体は送信しません。
主な機能
- 01市場データの範囲とプランの確認
- 02バックテスト容量とクレジット費用の見積もり
- 03キューと同じ検証器による戦略ファイルの検査
- 04データファイルの一覧表示とチェックサム検証
- 05バックテストの状態とレポートの確認
- 06公開済みスマートマネー取引リストの取得
活用シーン
- 01戦略開発前に利用可能な市場データを確認
- 02別途送信する前に戦略を検証
- 03バックテスト範囲とクレジット費用を見積もる
- 04過去データや取引リストを取得して検証
MCP 対応
`ot mcp` による stdio MCP サーバーと、ホスト型 Streamable HTTP エンドポイントを提供します。ツールはデータの参照、見積もり、検証、ダウンロードを行い、バックテストは送信しません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://outcometick.com/v1/mcpclaude mcp add --transport http outcometick-outcometick https://outcometick.com/v1/mcp{"mcpServers":{"outcometick-outcometick":{"type":"http","url":"https://outcometick.com/v1/mcp"}}}Cursor で開く{"servers":{"outcometick-outcometick":{"type":"http","url":"https://outcometick.com/v1/mcp"}}}VS Code で開く{"mcpServers":{"outcometick-outcometick":{"type":"http","url":"https://outcometick.com/v1/mcp"}}}{"mcpServers":{"outcometick-outcometick":{"serverUrl":"https://outcometick.com/v1/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://outcometick.com/v1/mcp認証が必要https://outcometick.com/v1/mcp/publicツール
詳細
outcometick
outcometick.com 向けの TypeScript / JavaScript 戦略 SDK と ot コマンドラインです。Polymarket および Predict.fun の暗号資産 Up/Down マーケットのティックレベルデータを扱います。
npm i -g outcometick
ot check . # validate, free, no data
ot run . --data ./polymarket-data-samples # replay locally
ot submit . --assets btc,eth --days 30 # send it to the queue
ot status <run_id> # where it got to
ot fetch <run_id> # download the report
2.0 での破壊的変更: バックテストの対象は、アーカイブ済みの直近 35 日間のみです。日数がアーカイブされると、対象期間も前に進みます。対象期間より前の --from、または対象期間を超える --days は、アップロード前に E_SCOPE で拒否され、エラーメッセージには現在の対象期間が示されます。直近 n 日間を対象にするには --days <n> を使用してください。現在の日付は https://outcometick.com/v1/backtest/capacity?venue=polymarket で確認できます。
戦略の作成
型が完全に定義されています。ot には .d.ts 宣言が含まれているため、型チェックを通る戦略はキューにも受け入れられます。
import { Strategy, Order, type Ctx, type Tick } from "outcometick";
export default class MeanReversion extends Strategy<{ entry_z: number; size: number }> {
private entered = false;
onMarketOpen() { this.entered = false; }
onTick(ctx: Ctx<{ entry_z: number; size: number }>, tick: Tick): Order | null {
const z = ctx.zscore(tick.value, { window: 180 });
if (this.entered || Math.abs(z) < ctx.p.entry_z) return null;
const side = z > 0 ? "DOWN" : "UP";
const limit = ctx.book().best(side);
if (limit === null) return null;
this.entered = true;
return new Order({ side, size: ctx.p.size, limit });
}
}
通常の JavaScript も使用できます。ランタイムはビルド手順不要の ESM です。
ot check の目的
キューで実行されるものと同じバリデーターを実行します。コピーではなく、同じモジュールです。ローカルでチェックに通れば、送信時に拒否されることはありません。これが成り立つのは実装が 1 つだからです。そのため、バリデーターと静的解析ツールはクライアント側で再実装せず、このパッケージに含まれています。
ot run の機能と非機能
キューで使用されるものと同じエンジン、同じレポート、同じアーカイブ形式を、アーカイブのローカルコピーに対して実行します。
curl -L https://github.com/outcometick/polymarket-tick-data-samples/releases/latest/download/polymarket-data-samples.tar.gz | tar xz
これはサンドボックスではありません。ローカルでは、戦略はお使いのマシン上で、お客様自身として、お客様の権限で実行されます。お客様のコードなので、それで問題ありません。当社のマシンでは、ネットワークアクセスも書き込み可能なファイルシステムもなく、CPU 時間と実行時間に厳しい上限を設けたコンテナ内で実行されます。
テスト
npm install && npm test
PATH 上に python3 が必要です。2 つの静的解析ツールのうち 1 つは Python で記述されており、CLI は API と同じ方法でこれを実行します。
データのダウンロード
パッケージのもう半分はデータサブスクリプション用のクライアントです。戦略の作成とは関係がないため、別のインポートとして提供されています。
import { DataClient, NO_VALUE } from "outcometick/data";
const ot = new DataClient(); // key from OT_KEY
const meta = await ot.meta(); // what can this key see?
const { files } = await ot.files({
from: "2026-08-01", to: "2026-08-12", // or date: "2026-08-12"
asset: ["BTC", "ETH"], // the BASE symbol, not BTCUSD
dataset: "prices",
interval: ["5m", NO_VALUE], // "5m" alone EXCLUDES the
}); // period-less settlement streams
await ot.download(files[0], { saveTo: files[0].name }); // checksum verified
meta() は、このキーで実際にアクセスできるデータの範囲を返します。intervals には実際の期間のみが含まれ、none センチネルは filterTokens の下に別途報告されます。そのため、これから列挙型を作成したり、値を期間として解析したりする呼び出し側が、トークンに遭遇することはありません。
ダウンロードはチェックサムで検証されます。/v1/dl はヘッダーに sha256 を含めてストレージへリダイレクトし、クライアントはチェックサムが失われないよう、そのリダイレクトを自らたどります。
Polymarket のオーダーブックを再構築する
book と price_change は一定の間隔で保存されるため、削除が保存フレームの間に発生すると、古いレベルが残ることがあります。OrderBook は文書化された再構築ルールを適用します。スナップショットはトークンの価格階段を置き換え、変更は絶対数量を設定し(0 の場合は削除)、最新の最良買値/売値(best_bid_ask および各変更から取得)を超えたレベルは破棄されます。3 つのファイルの行を recv_ms でマージして渡してください。
import { OrderBook } from "outcometick/data";
const book = new OrderBook();
for (const row of rows) book.apply(row); // parsed objects or JSONL lines
book.ladder(tokenId); // { bids: [{ price, size }], asks: [...] }, best first
book.best(tokenId); // { bid, ask }
これにより、最良価格が通過したすべてのレベルは削除されますが、破棄されたフレームで追加または数量変更された内容を復元することはできません。次のスナップショットまでは、最上位を含むレベルが欠落したり、古い数量を保持したりする場合があります(best_bid_ask に含まれるのは価格のみです)。best() が返すのは再構築された価格階段の最良レベルであり、市場の最新の最良買値/売値ではありません。最新の値は best_bid_ask の行を参照してください。
スマートマネーの取引履歴
独自のキーを使用する別のサブスクリプションです。Polymarket の上位ランクトレーダーが行った取引の日次ファイルを提供します。
const smart = new DataClient({ key: process.env.OT_SMART_KEY });
const { days } = await smart.smartDays(); // newest first
const day = days.find((d) => d.lists.top100?.status === "published")?.day;
if (day) await smart.smartDownload(day, "top100", { saveTo: "top100.csv.zst" }); // verified
各リストの内容と各列の意味については、以下をご覧ください。 https://outcometick.com/polymarket-smart-money-data
MCP サーバー
ot mcp は、コーディングアシスタントやエージェント向けの、stdio 経由で動作する Model Context Protocol サーバーです。読み込み、価格の確認、検証、ダウンロードを行います。バックテストはクレジットを消費するため、送信することはありません。Node 24 以降が必要です。
{
"mcpServers": {
"outcometick": {
"command": "npx",
"args": ["-y", "outcometick", "mcp"],
"env": {
"OT_KEY": "<data subscription key, optional>",
"OT_SMART_KEY": "<smart-money key, optional>",
"OT_BACKTEST_KEY": "<backtest key, optional>"
}
}
}
}
Claude Code:claude mcp add outcometick -e OT_KEY=<data key> -- npx -y outcometick mcp
同じツールは、インストール不要の Streamable HTTP 経由でもホストされています。
https://outcometick.com/v1/mcp:Authorization: Bearer <key>(data、smart-money、または backtest キー)を送信します。2 つ目または 3 つ目のキーはX-Backtest-Key/X-Smart-Keyとして追加できます。またはヘッダーなしで接続し、OAuth でサインインして、同意ページにキーを貼り付けることもできます(claude.ai および ChatGPT コネクター)。https://outcometick.com/v1/mcp/public:キー不要で、公開ツールのみを利用できます。
claude mcp add --transport http outcometick https://outcometick.com/v1/mcp --header "Authorization: Bearer <data key>"
ホスト版では、download_file と smart_download はファイルをディスクに書き込む代わりに、署名付き URL とその sha256 を返します。また、check_strategy はディレクトリではなくファイルの内容を受け取ります。
| ツール | キー | 機能 |
|---|---|---|
coverage | なし | アーカイブに含まれる取引所ごとの資産、データセット、日付範囲 |
plans | なし | データサブスクリプションプランと現在の価格 |
backtest_capacity | なし | 現在バックテスト可能な日数とキューの混雑状況 |
backtest_quote | なし | 送信せずにバックテスト範囲のクレジット価格を確認 |
check_strategy | なし | キュー独自のバリデーターを使って、戦略ディレクトリをローカルで検証 |
meta | OT_KEY | データキーで利用できる日付範囲とフィルター値 |
list_files | OT_KEY | データキーでダウンロードできるアーカイブファイルを検索 |
download_file | OT_KEY | ファイルを 1 つダウンロードし、その sha256 を検証 |
backtest_runs | OT_BACKTEST_KEY | バックテストキーでの最近の実行履歴とクレジット残高 |
backtest_status | OT_BACKTEST_KEY | 1 回分の実行状況、クレジット、レポートの概要 |
smart_plans | なし | smart-money プラン(Polymarket ウォレットの日次リスト)と現在の価格 |
smart_coverage | なし | 公開されている smart-money の日付 |
smart_days | OT_SMART_KEY | smart-money キーでダウンロードできる日付と、各リストのステータス |
smart_download | OT_SMART_KEY | 1 日分のリストをダウンロードし、その sha256 を検証 |
Python で戦略を記述する場合は、SDK をご利用ください。
pip install outcometick。ot は Python の戦略も実行できるため、どちらの言語にも対応する CLI はこれ 1 つです。
リファレンス全文:https://outcometick.com/docs/sdk
リンク
- outcometick.com — これが何であるか、またデータの対象範囲
- バックテストを実行 — 戦略を貼り付けて、実行を確認
- SDK リファレンス — マニフェスト、フック、
ctx、制限 - Data API — これらの戦略が読み込むアーカイブ
- Discord(英語および中文)と Telegram — 質問や戦略についての話し合い
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。