12. ライブトレーディング S1.3 の設計哲学とアーキテクチャ
この記事では、設計の観点から、S1.3 のライブ トレーディング リファクタリング アプローチ、つまり階層化がこの方法で行われる理由、互換性がどのように維持されるか、およびこれらの設計が将来の拡張機能にどのように役立つかを説明します。
12.1. 0. 文档定位
この文書は設計仕様書であり、ユーザー チュートリアルではありません。
「段階的にどのように運用するか」ではなく、「なぜこのようにするのか」に答えることに重点を置いています。
実践的なパスが必要な場合は、
live_trading/2-configuration-and-run.mdおよびtutorials/8-live-trade-risk-and-broker-walkthrough.mdにアクセスしてください。
12.2. 1. 设计目标
既存のユーザー フローを中断することなく、ライブ パスの検証可能性と監査可能性を向上させます。
リスク管理を「注文とデータベースへの書き込み前」に進める
ブローカー アダプター レイヤーを抽象化し、実際のブローカー フロント エンドとの将来の統合に備えて安定した境界を確保します。
12.3. 2. 分层结构
S1.3 のライブ関連の責任は次のように抽象化できます。
Operator: 戦略実行のスケジューリングとシグナルソースTrader: 注文意図、リスクゲーティング、実行調整を具体化します。RiskManager: 純粋な論理ルール評価、IO 依存関係なしBroker: 送信、キャンセル、レポート、および接続セマンティクスtrade_io: 注文/取引データの契約の検証
12.4. 3. 关键设计原则
3.1 契約優先
「構造が間違っている場合でも実行される」ことによって引き起こされるサイレント エラーを回避するために、境界で順序 dict と fill dict を検証します。
3.2 リスク管理を左にシフトする
リスク評価はデータベースに書き込んでキューに入れる前に完了するため、拒否された注文によって実行データが汚染されることはありません。
3.3 アダプターのデカップリング
ブローカー アダプター API を介して将来の統合を実行し、Trader と特定のブローカー システム間の結合を軽減します。
3.4 監査可能
拒否の理由は、rule_id および英語の reason を介して外部から確認でき、作戦検索とインシデント後のレビューをサポートします。
12.5. 4. 典型疑难点与取舍
4.1 拒否命令の互換性セマンティクス
可視性 (CLI/TUI の概要 + ログ) を向上させながら、下位互換性を維持します (拒否は空の結果として表示される場合があります)。
4.2 新しいフローと従来のフローの共存
ワンショット移行による回帰リスクを回避するために、レガシー キューの互換性パスを維持します。
4.3 状態の一貫性
部分充填シナリオでは、ユーザーが観察する意味上の矛盾を減らすために、ステータスは累積充填量に基づく必要があります。
12.6. 5. 与 S2.1 的关系
S1.3 はブローカー統合のエンドポイントではなく、基礎となる基盤です。
まず界面の境界を安定させます
その後、徐々に実際のブローカー システムに接続します。
最後に、上流での使用を中断することなく機能を拡張します。
12.7. 6. 对用户行为的影响
構成エラーは早期に明らかになります。
拒否の理由を特定するのが簡単になります。
ライブ操作中の状態変化は説明しやすいです。
サードパーティブローカーを拡張するコストはより制御可能です。
12.8. 7. 相关阅读
モジュールの概要:
live_trading/1-overview.md操作と設定:
live_trading/2-configuration-and-run.mdリスク管理と状態:
live_trading/3-risk-and-order-lifecycle.mdブローカーの統合:
live_trading/4-broker-adapter-and-integration.md