【要約】為替が閉まっている土日に、ドル円がいくらかを推定する [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
開発者は、週末のドル円レートを推定しようとした。しかし、単純な計算では実勢レートと大きく乖離した。
- ・取引所ごとの価格差(日本プレミアム)が計算に混入する。
- ・CoinbaseのAPIのように、板価格ではなく内部換算値を返す仕様の罠がある。
- ・ビットコインの価格変動や、取引所の更新タイミングのズレがノイズとなる。
- ・これらが原因で、当初の実装では約0.1%の誤差が生じていた。
// Approach
開発者は、計算精度を実用に耐えうるレベルまで高めるため、データの選別と統計的な平滑化を導入した。
- ・使用する通貨ペアを、実際に約定が発生しているものに限定する。
- ・中央値を用いて、異常な値を持つ取引所を自動的に除外する。
- ・測定間隔を1時間から5分おきに短縮し、補正係数の鮮度を維持する。
- ・最新の1点ではなく、直近90秒の中央値を採用してノイズを抑制する。
- ・平日の実レートから算出した補正係数を、土日に持ち越す運用を行う。
// Result
精度向上により、平日の誤差を実レートに対して約0.02%(ドル円で約3銭)まで抑え込むことに成功した。
- ・補正なしの状態では約0.10%の誤差があったが、大幅に改善した。
- ・土日においても、金曜日の補正係数を用いることで、一定の推定精度を確保した。
- ・ただし、週末の急激な変動時には誤差が0.2%程度まで拡大する。
- ・実装はPython 3.6と標準ライブラリのみで、軽量な構成を実現している。
Senior Engineer Insight
> 非常に実践的なデータエンジニアリングの事例だ。APIの仕様を鵜呑みにせず、返り値の性質から原因を特定する姿勢は重要だ。中央値を用いた平滑化と測定間隔の最適化により、ノイズと遅延の制御を実現している。ただし、本手法はあくまで推定である。金融実務への投入には、プレミアムの変動モデル化などの深化が必要だろう。