Node.jsで暗号資産アービトラージ

ビットコイントレード中心にNode.jsで実際に作るためのレシピ

Liquid by Quoine APIで注文が失敗する場合は日次メンテナンスに注意

bitFlyerでのメンテナンスについては以下の記事で解説しています。

bitFlyer APIで注意したいポイント Market status is closed.の対処法 - Node.jsで暗号資産アービトラージ

この記事ではLiquid by Quoineの日次メンテナンス時の挙動について簡単に解説します。

Liquid by Quoine メンテナンス時のエラーメッセージ

Liquid by Quoineで注文できていなかったらメンテナンスを疑ってみよう

Liquid by Quoineのメンテナンス時間は午前6:55頃から午前7:05頃の約10分間となります。

この時間帯に注文ができていなかった場合はメンテナンスが原因となります。

制限が発生するのは注文入力・訂正・取消です。

詳細は以下のリンクを参照してみてください。

メンテナンス実施のお知らせ – Liquid by Quoine(リキッドバイコイン) Help center ~登録から取引までご案内~

メンテナンス中に注文した際の挙動

Liquid by Quoineでメンテナンス中に注文を発注した場合、responseにエラーメッセージが返ってきます。

以下のようなコードの場合、resにエラーメッセージが返ります。

〜省略〜
request(options, function (err, response, payload) {
  if(err){
    console.log(err)
  }
  let res = JSON.parse(payload);
  console.log(res)
});

正常時

{ id: 1015837637,
  order_type: 'limit',
  quantity: '0.001',
  disc_quantity: '0.0',
  iceberg_total_quantity: '0.0',
  side: 'buy',
  filled_quantity: '0.0',
  price: 500000,
  created_at: 1556726042,
  updated_at: 1556726042,
  status: 'live',
  leverage_level: 1,
  source_exchange: 'QUOINE',
  product_id: 5,
  product_code: 'CASH',
  funding_currency: 'JPY',
  crypto_account_id: null,
  currency_pair_code: 'BTCJPY',
  average_price: 0,
  target: 'spot',
  order_fee: 0,
  source_action: 'manual',
  unwound_trade_id: null,
  trade_id: null }

メンテナンス時

{ errors: { order: [ 'product_disabled' ] } }

res.idを戻り値にして後続処理していたりするとundefinedが返ってくるような挙動になります。(エラー原因に気付きにくい!)

注文入力・訂正・取消ができないので、価格の取得は可能です。

アービトラージシステムの場合、価格差の取得はできてしまうのでメンテナンス時間帯は注文を発注しないように制御しておきましょう。

メンテナンスには目を配ろう

日次メンテナンスの他に不定期で臨時メンテナンスが入る場合があります。

直近では2019/3/4に午前6:55頃から30〜60分程度の臨時メンテナンスが実施されています。

【2019年3月4日】メンテナンス実施のお知らせ – Liquid by Quoine(リキッドバイコイン) Help center ~登録から取引までご案内~

臨時メンテナンスに対応するために、システムに持たせるメンテナンス時間は可変で変更できるようにしておくと安心です。

また、臨時メンテナンスを見落とした際のリカバリ策として、発注を一定時間止めるロジック等も検討しておいた方がシステムの可用性が上がります。

API利用時のメンテナンス時間のまとめ

メンテナンス時間中は他の時間に比べて価格差が発生しやすいので、優先度高めで対応しておく必要があります。

私は日次メンテナンス開始のアナウンスを見落としており、月数回ぐらいの高頻度で誤発注を発生させていました。

bitFlyerについてもメンテナンス時間が設定されているので、アービトラージでbitFlyerのAPIを使いたい場合はbitFlyerについても考慮した設計をしておきましょう。

www.kennejs.com

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