【要約】2万円の実弾で初めて約定したら、Botの記録と取引所の履歴が3円だけズレていた [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
Bot開発者が、実運用を開始した直後にBotの内部帳簿と取引所の残高が一致しない問題に直面した。検証の結果、以下の課題が浮き彫りになった。
- ・注文ID、約定時刻、数量、レートはすべて一致している。
- ・しかし、Botが記録した建玉額と実際の現金減少額に3.096円の差が生じた。
- ・この差異は、Botの内部計算と取引所の実際の挙動の乖離を示している。
// Approach
開発者が、差異の発生原因を特定するために、現金の減り方を計算式を用いて詳細に検証した。検証プロセスは以下の通りである。
- ・GMOコインの端数処理ルールを調査した。
- ・取引所が約定代金を円未満で切り上げていることを突き止めた。
- ・成行注文に伴うテイカー手数料の計上状況を確認した。
- ・手数料がBotの建玉記録に含まれていないことを特定した。
// Result
開発者が、差異の正体が「端数処理」と「手数料の未反映」であることを解明した。得られた成果は以下の通りである。
- ・誤差は建玉額の0.078%であり、バックテストのコスト見積もり範囲内であった。
- ・損益計算ロジック自体は正しく、実害がないことを確認した。
- ・今後は建玉記録に切り上げと手数料を反映させる修正を行う方針を固めた。
Senior Engineer Insight
> APIドキュメントに記載のない「暗黙の仕様」の危険性を示している。今回の誤差は0.078%と軽微だが、運用資金が増大すれば誤差も比例して拡大する。資金管理の精度を保つには、端数処理や手数料の挙動を厳密に実装すべきだ。実弾による少額のパイロット運用は、こうした「仕様の隙間」を埋めるために極めて有効である。