背景
auto-fx をいきなり実弾で動かすのではなく、paper と live のログを分離して監査できる形にする。目的は、Bot が「何をしようとしたか」と、口座側で「実際に何が起きたか」を混ぜないこと。
フォルダ設計
paper/
ledger.csv
live/
intent/YYYYMMDD.jsonl
reconcile/fills/
positions/
-
paper/ledger.csv: 仮想売買の判断、約定想定、損益、検証用の記録を残す -
live/intent/YYYYMMDD.jsonl: Bot が実注文として出そうとした意図を日次で追跡する -
live/reconcile/fills/: ブローカーや口座側で実際に約定した結果を保存する -
live/positions/: 現在ポジションや照合用スナップショットを分離する
なぜ intent と fills を分けるか
自動売買では、注文意図と実際の約定結果がずれることがある。spread、slippage、手数料、通信失敗、未確定足、停止条件などが絡むため、1つのログに混ぜると原因分析が難しくなる。
intent と fills を分けると、次の確認がしやすくなる。
- Bot はどの戦略・相場分類で注文しようとしたか
- 実際に注文が通ったか、拒否されたか
- 約定価格が想定からどれだけずれたか
- paper では勝てているが live では崩れていないか
- 停止判断や改善提案の根拠がログから再現できるか
AIに担当させる範囲
AIには無制限な売買判断を任せず、相場分類、戦略選択、停止判断、改善提案を担当させる。実弾運用に近づけるほど、AIの提案よりも監査証跡の再現性を優先する。
次に検証すること
forward paper のデータを積み上げながら、どの時間足、どの相場環境、どの戦略選択が一番バランスよく伸びるかを確認する。月次の損益だけではなく、停止できた回数、想定外の約定差、ログ欠損の有無も見る。
まとめ
自動化の信頼はログで作る。paper/ledger.csv、live/intent/YYYYMMDD.jsonl、live/reconcile/fills、positions を分けることで、Botの意図、口座の現実、改善判断をあとから検証できる形にする。
