▶ ライブデモを試す — ブラウザだけで動作。インストール不要、API キー不要、サンプルデータ上で実際の検出結果を表示。
ICT および Wyckoff 手法をマルチタイムフレームで自動化する唯一のオープンソースプラットフォーム — リアルタイムアラートと AI 解釈機能付き。 セルフホスト。クラウド不要。
- Clone →
.envファイルを1つ設定 →docker compose up - ChartNagari が米国株と暗号通貨を 1W / 1D / 4H / 1H タイムフレームで同時スキャン
- ICT Order Block、Fair Value Gap、Wyckoff フェーズ変化、RSI シグナルが発生すると、 Telegram(または Discord)アラートを受信 — AI 解釈オプション付き
- すべてがローカルで実行 — データがマシンの外に出ることはありません
クラウドアカウント不要。サブスクリプション不要。API レート制限の心配なし。
GitHub における ICT と Wyckoff 手法の自動化プロジェクトは驚くほど少ないのが現状です。 Wyckoff 自動化リポジトリのトップでもスター数は17、最も知られた ICT ライブラリは アラートもバックテストも UI もない Python 関数の寄せ集めに過ぎません。
ChartNagari はそのギャップを埋めます:
| 必要な機能 | ステータス |
|---|---|
| マルチタイムフレーム ICT シグナル検出 (Order Blocks, FVGs, Liquidity Sweeps) | ✅ |
| Wyckoff フェーズ検出 (Accumulation, Distribution, Spring, Upthrust) | ✅ |
| リアルタイム Telegram / Discord アラート(クールダウン付き) | ✅ |
| AI 解釈オプション (Anthropic, OpenAI, Groq, Gemini) | ✅ |
| マルチタイムフレーム合意スコアリング | ✅ |
| シグナル品質スコアリング(出来高、ヒゲ比率、反転強度) | ✅ |
| 上位タイムフレーム(HTF)コンテキストフィルター(逆トレンドシグナル抑制) | ✅ |
| シグナルシーケンス追跡(sweep → displacement ボーナス) | ✅ |
| チャートシグナルカテゴリフィルター(ICT / Wyckoff / SMC / TA トグル) | ✅ |
| デモモード(サンプルデータでシグナル体験、セットアップ不要) | ✅ |
| ヒストリカルデータでのバックテスト | ✅ |
| セルフホスト、ローカルファースト、クラウド不要 | ✅ |
AI 出力言語: LLM_LANGUAGE: en | ko | ja |
✅ |
| ガイド付き初回オンボーディング + AI シナリオスキャン | ✅ |
AI と共に構築 — このプロジェクトは Claude Code とのバイブコーディングにより、すべて構築されました。
ローカルファースト — すべてのデータはお使いのマシンに保存されます。クラウドアカウントなしで実行できます。
- 30以上のトレーディングルール — ICT (Order Blocks, FVG, Liquidity Sweeps, Breaker Blocks)、Wyckoff (Spring, Upthrust, Accumulation/Distribution)、SMC (BOS, CHoCH)、一般 TA (RSI, EMA, 出来高)、14種のローソク足パターン
- マルチタイムフレーム分析 — 1W、1D、4H、1H を並列スキャン
- シグナル品質スコアリング — すべてのシグナルが同等ではありません。Sweep は出来高比率、ヒゲの深さ、反転強度で評価。FVG はギャップサイズ対 ATR とインパルス強度で評価
- 上位タイムフレーム(HTF)コンテキストフィルター — 1D/1W のトレンド方向に反する 1H/4H シグナルを抑制
- シグナルシーケンス追跡 — 同方向の sweep 後に displacement が発生するとボーナススコア。マルチパターン検出
- Wyckoff フェーズブースト — accumulation/markup は LONG シグナルを強化、distribution/markdown は SHORT シグナルを強化
- チャートカテゴリフィルター — ICT / Wyckoff / SMC / TA シグナルグループをワンクリックでオン/オフ
- デモモード — シンボル追加や API キーなしでサンプルデータでシグナルエンジンを体験
- マルチタイムフレーム合意 — 一致するタイムフレームの数でシグナルをランキング
- AI 解釈レイヤー — オプションの LLM コメンタリー (Anthropic, OpenAI, Groq, Gemini)
- Telegram & Discord アラート — アラートスパム防止のためのクールダウン設定
- バックテスト & ペーパートレーディング — 実運用前にヒストリカルデータでルールを検証
- Web ダッシュボード — React フロントエンド、ガイド付き初回オンボーディング、Settings UI、AI シナリオカード
- 複数データソース — Binance WebSocket(暗号通貨、無料)、Tiingo(株式、推奨)、Yahoo Finance(フォールバック)
- 経済カレンダー — 米国マクロイベントトラッカー(FMP または Finnhub);高インパクトイベント前の Telegram 事前アラート
flowchart TB
subgraph UI["Web ダッシュボード — TypeScript + React 18 + Vite"]
direction LR
Chart["チャート"]
Analysis["分析"]
Backtest["バックテスト"]
Paper["ペーパー"]
Calendar["カレンダー"]
Settings["設定"]
end
subgraph Backend["Go バックエンド"]
direction TB
Collector["Collector\n(データソース)"]
Engine["Engine\n(ルール評価)"]
Interpreter["Interpreter\n(MTF スコア)"]
LLM["LLM\n(オプション)"]
Report["Report\n(日次)"]
Notifier["Notifier\n(TG / DC)"]
History["History\n(SQLite)"]
Calendar2["Calendar\n(FMP / Finnhub)"]
Collector --> Engine
Engine --> Interpreter
Interpreter --> LLM
Interpreter --> Report
Report --> Notifier
Engine --> History
end
subgraph Sources["データソース"]
Binance["Binance WS\n(暗号通貨)"]
Tiingo["Tiingo REST\n(株式)"]
Yahoo["Yahoo Finance\n(フォールバック)"]
end
Sources --> Collector
UI -- "REST API" --> Backend
# 1. Clone
git clone https://github.com/Ju571nK/ChartNagari.git
cd ChartNagari
# 2. 設定
cp .env.example .env
# .env を編集 — 最低限1つのアラート送信先(Telegram または Discord)を設定
# 3. 実行
docker compose up -d
# 4. ダッシュボードを開く
open http://localhost:8080前提条件: Go 1.26+、Node.js 20+
# バックエンド
go mod download
go run ./cmd/server
# フロントエンド(別ターミナル)
cd web
npm install
npm run dev # :5173 開発サーバー、API を :8080 にプロキシまたは Makefile を使用:
make build-all # フロントエンド + バックエンドバイナリをビルド
make run # ビルドしてサーバーを起動
make test # 全 Go テストを実行.env.example を .env にコピーし、必要な値を入力してください。アラートを設定しなくてもサーバーは起動します — 実際に使用する機能の変数のみ設定すれば問題ありません。
| 変数 | 必須 | デフォルト | 説明 |
|---|---|---|---|
ENV |
いいえ | development |
development | production |
SERVER_PORT |
いいえ | 8080 |
HTTP リスニングポート |
LOG_LEVEL |
いいえ | debug |
debug | info | warn | error |
DB_PATH |
いいえ | ./data/chart_analyzer.db |
SQLite ファイルパス |
BINANCE_API_KEY |
いいえ | — | Binance API キー(公開 WebSocket はキー不要) |
BINANCE_SECRET_KEY |
いいえ | — | Binance シークレットキー |
TIINGO_API_KEY |
いいえ | — | 設定すると Yahoo Finance の代わりに Tiingo を使用 |
TIINGO_POLL_INTERVAL |
いいえ | 900 |
ポーリング間隔(秒)(無料プラン:900推奨) |
YAHOO_POLL_INTERVAL |
いいえ | 60 |
Yahoo Finance ポーリング間隔(秒) |
TELEGRAM_BOT_TOKEN |
いいえ* | — | @BotFather から取得したトークン |
TELEGRAM_CHAT_ID |
いいえ* | — | チャット、グループ、またはチャンネル ID |
DISCORD_WEBHOOK_URL |
いいえ* | — | Discord 受信 Webhook URL |
ALERT_COOLDOWN_HOURS |
いいえ | 4 |
同一シンボル+ルールの再アラートまでの時間 |
LLM_PROVIDER |
いいえ | — | anthropic | openai | groq | gemini |
ANTHROPIC_API_KEY |
いいえ | — | LLM_PROVIDER=anthropic の場合に必要 |
OPENAI_API_KEY |
いいえ | — | LLM_PROVIDER=openai の場合に必要 |
GROQ_API_KEY |
いいえ | — | LLM_PROVIDER=groq の場合に必要 |
GEMINI_API_KEY |
いいえ | — | LLM_PROVIDER=gemini の場合に必要 |
AI_MIN_SCORE |
いいえ | 12.0 |
AI 解釈をトリガーする最小 MTF スコア |
LLM_LANGUAGE |
いいえ | en |
AI 出力言語: en | ko | ja |
ALPHAVANTAGE_API_KEY |
いいえ | — | 20年分の SPY 日足データ取得用 |
*アラート送信先が1つ以上設定されていないとアラートは送信されませんが、サーバーは正常に動作します。
| ファイル | 用途 |
|---|---|
config/rules.yaml |
個別トレーディングルールの有効化/無効化とパラメータ設定 |
config/symbols.yaml |
監視対象シンボルリスト(株式および暗号通貨) |
config/timeframes.yaml |
資産クラスごとのタイムフレーム設定 |
internal/methodology/<category>/にrule.AnalysisRuleインターフェースを実装するファイルを作成します。config/rules.yamlに一意の ID、カテゴリ、デフォルトパラメータとともに登録します。- ルールファイルと同じ場所に
_test.goファイルでテーブル駆動テストを追加します。 go test ./...を実行 — PR を作成する前にすべてのテストが通る必要があります。
完全なワークフローについては CONTRIBUTING.md をご覧ください。
# 全テスト
go test ./...
# Race detector 付き
go test -race ./...
# カバレッジレポート
make test-coverage # coverage.html を開く開発環境のセットアップ、コードスタイル、PR チェックリストについては CONTRIBUTING.md をご覧ください。
MIT — LICENSE を参照してください。
Justin が開発 — Claude Code とのバイブコーディングを通じて、AI 支援開発の探求と金融市場の知見の応用に取り組んでいます。
