導入
各種仮想通貨業者のAPIをまとめて使えるのがCCXT。
これをPython環境で使ってBinanceのAPIを利用しているのですが、何もプログラムを変更していないのに「Timestamp for this request is outside of the recvWindow.」というエラーを吐くことがありました。
内容としては、リクエストした時点の時間から許容するタイムラグ以上の時間が過ぎているよ、だから処理しないよっていうものです。
解決方法
プログラムを動かしているPCの時間を、NTPと手動で同期させるとエラーはかなくなりました。
原因
Windowsの時間の同期は通常1週間に1回です。
そのため、Binanceのサーバの時間とPCの時間がずれてしまうことから起きてしまう事象のようです。
ccxtを使わずにBinanceが提供しているモジュールを使う場合はサーバの時間をとってきて、PCとのずれを計算してタイムスタンプとして乗せることもできますが、それについては別の機会に。