e-station は、板・約定・価格の流れを 1 画面で読むためのデスクトップ型トレーディングワークステーションです。
Flowsurface 系のオーダーフロー可視化を土台に、日本株の実運用導線 と NautilusTrader ベースの REPLAY / 仮想売買 / 戦略検証 をひとつにまとめています。
- 観測が主役: Heatmap / Footprint / DOM / Time & Sales / Kline / Comparison を同じ作業面に並べられます
- live と replay を同じ思想で使える: 実運用と検証を、似た UI と似た判断フローで往復できます
- レイアウト資産が作れる: 複数ペイン、リンクグループ、ポップアウトで「自分の観測面」を育てられます
- ローカル完結で軽い: Rust UI + Python engine の構成で、重い SaaS 依存を避けています
- 自動化しやすい: REPLAY や注文まわりは Python strategy から直接操作できます
- ローソク足だけではなく、板の厚み・約定の流れ・価格帯ごとの反応まで見たい
- ブローカー専用ツールの発注導線に加えて、Flowsurface 系の観測 UI も欲しい
- 裁量トレードの振り返りや仮説検証を、REPLAY と仮想注文で回したい
- 将来的に自分の Python strategy を試したい
e-station は現在、起動時にモードを固定して使います(省略すると起動できません)。
| モード | 目的 | 主な特徴 |
|---|---|---|
--mode live |
リアルタイム監視と実運用 | 取引所 / 立花証券のストリームを購読。Heatmap / DOM / Ladder が主役 |
--mode replay |
過去データ再生、仮想注文、戦略検証 | J-Quants データで再生。REPLAY 用ペインが自動生成 |
- Rust toolchain
- Python 3.11+
uv
git clone https://github.com/botterYosuke/e-station
cd e-station
uv syncuv run cargo run -- --mode live注意: Rust アプリ内から Python エンジンを子プロセスとして起動するため、
uv runを使って仮想環境のパスを通すか、事前に.venv\Scripts\activateなどで仮想環境を有効化しておく必要があります(未設定の場合、program not foundなどのエラーが発生します)。
最初のおすすめ:
Kline Chartを置くHeatmap ChartまたはDOM/Ladderを追加するTime & Salesを並べる- 同じリンクグループに入れて銘柄同期を試す
uv run cargo run -- --mode replay起動後は ReplayControl ペインで銘柄・期間を設定してデータをロードします。読み込み成功後は対象銘柄の Kline Chart と Time & Sales、セッション共通の Order List (REPLAY) と Buying Power (REPLAY) が自動生成されます。
| 用途 | 必要なもの |
|---|---|
| すべての起動 | --mode live または --mode replay を必ず指定 |
| 外部エンジンに attach | FLOWSURFACE_ENGINE_TOKEN を Python 側 --token と一致させる |
| 立花証券 dev 自動ログイン | .env に DEV_TACHIBANA_USER_ID / DEV_TACHIBANA_PASSWORD / DEV_TACHIBANA_DEMO=true を設定 |
| 本番 URL への発注 | TACHIBANA_ALLOW_PROD=1 を明示 |
/api/order/submit を有効化 |
FLOWSURFACE_ORDER_GUARD_ENABLED=1 を設定 |
| replay | J-Quants データを配置 |
ひな形は .env.example を参照してください。
| 領域 | できること |
|---|---|
| Order Flow | Heatmap / Footprint / DOM / Time & Sales で板と約定の流れを観測 |
| Charting | Kline / Comparison で価格推移と相対比較を確認 |
| Workspace | 複数ペイン、リンクグループ、ポップアウトで作業面を構築 |
| Execution | live では国内株の注文導線、replay では仮想注文 |
| Verification | 過去データロード、再生、速度変更、振り返り、戦略検証 |
| Automation | Python strategy から replay / order / portfolio を操作 |
REPLAY は単なるチャート再生ではなく、NautilusTrader ベースの再生エンジンと UI をつないだ検証モードです。
ReplayControlペインでデータロード・再生開始・速度変更 (1x / 10x / 100x) を操作します- 戦略ファイルの指定は 現行実装では必須です
- WebSocket IPC 経由でコマンドが Python エンジンに送られます (
LoadReplayData/SetReplaySpeed/StartEngine)
ユーザー定義 strategy の最小サンプルは examples/test_strategy_daily.py と examples/README.md にあります。
live と replay では意味が異なります。
| モード | 注文の意味 |
|---|---|
| live | 立花証券 e支店に対する実注文 |
| replay | 検証用の仮想注文 |
replay 注文は実口座には送られず、REPLAY 用の注文一覧と買付余力に分離されます。安全ガードの詳細は docs/specs/order.md と docs/specs/venues/tachibana.md を参照してください。
このリポジトリのドキュメントは 2 系統あります。
- ユーザー向け: GitHub Wiki
- 開発者向け: MkDocs サイト
Rust / Iced(UI)+ Python engine(市場データ・NautilusTrader・立花証券)の 2 プロセス構成で、IPC WebSocket で連携します。詳細は AGENTS.md と docs/specs/data-engine.md を参照してください。
e-station はローカル実行の単一ユーザー向けツールです。
特に strategy 実行は、ユーザーが書いた Python コードを同じプロセスで動かす前提です。
- サンドボックス、プロセス隔離、任意コード実行制限は実装していません
- バグによる誤発注、暴走、想定外損失はユーザーの責任です
- replay で十分に検証してから demo、本番へ進むことを強く推奨します
不具合報告では、live / replay のどちらか、使用したエンドポイント、銘柄コード、期間、起動方法を添えると再現しやすくなります。


