bitFlyer APIで注意したいポイント Market status is closed.の対処法

以下記事ではbitFlyer APIの使い方を説明しました。

bitFlyerの特徴とbitFlyer APIの使い方 - Node.jsで暗号資産アービトラージ

この記事ではbitFlyer APIを使う際に覚えておいてほしいメンテナンス時間についてお伝えします。

軽く目を通しておいてもらえれば実際に運用して困ったということを減らせるはずです。

bitFlyer API利用時はメンテナンス時間に注意

メンテナンス中は新規注文、約定は不可。価格の取得はできる

知らないと困るのはMarket status is closed.のメッセージです。

Market status is closed.はメンテナンス中に注文を発注した場合に返ってくるメッセージです。

bitFlyerは毎日10分間メンテナンスを実施しています。

メンテナンス中はAPIを使って新規注文、約定はできません。

厄介なのは価格の取得はできることです。

何も知らずに実装すると価格差を検知して注文するところまでは正常に動作してしまうので要注意です。

アービトラージシステムの場合、二つの取引所に注文を発注することになるのでメンテナンス時間の制約を考慮しないと片方だけ発注してしまうことになります。

メンテナンス中の取引所ステータス

bitFlyer APIは取引所ステータスを取得するAPI(GET /v1/gethealth)を提供していますが、メンテナンス中はNORMALを戻します。

STOPにはなりません。

メンテナンス中に取引所ステータス照会、新規注文を実行した際の戻り値

写真は04:03に取引所ステータスの照会と新規注文を発注した場合の戻り値です。

メンテナンス中かの判定にはGET /v1/gethealthは使えません。

bitFlyerのメンテナンス時間

bitFlyerのメンテナンス時間はbitFlyerのFAQによると毎日4:00-4:10です。

臨時メンテナンスも実施される場合があるので、APIを利用している場合はbitFlyerからのメールまたはTwitterで配信されるのでチェックしておきましょう。

忘れたり臨時のメンテナンスに対応するようにシステムにチェック機能を持たせておくことも重要です。

Liquid by Quoineも。他の取引所もメンテナンスあり

Liquid by Quoineも毎日6:55-7:05はメンテナンス時間で取引ができません。

コインチェックは日次のメンテナンスはありません。

どちらも臨時メンテナンスが入る可能性はありますので、基本的にはどの取引所もメンテナンスが入る可能性があるということを念頭にシステム運用の検討が必要です。

システムツールにはメンテナンス時間のチェックロジックが必要

メンテナンス時間のチェック

メンテナンス時間のチェックは必須です。

メンテナンスは10分と短いですが、注文が入らないからか誤発注の頻度が高いです。

日次メンテナンス中はシステムを停止したり、取引を発注させないよう制御するロジックを作っておきましょう。

臨時メンテナンスを考慮するとconfigファイルやconfig用のデータベースにメンテナンス時間のデータを持たせておいて、手軽に更新できるようにしておくと運用が楽になります。

注文成立のチェック

臨時メンテナンスはメールやTwitterで確認するようにしましょう。

臨時メンテナンスを見逃した時のために注文成立時のチェックも必要です。

bitFlyer APIの場合はMarket status is closed.が返却されるので、Market status is closed.が返ってきたらシステムを止めたり、別取引所に逆の注文を出すなどで誤発注のリカバリを組み込んでおくと安心です。

bitFlyer API以外の取引所のAPIの作り方も解説していますので他の取引所APIを使ってみたい方は参考にしてください。

www.kennejs.com

APIを使ったシステムを24時間稼働させたいならレンタルVPS契約おすすめ。