Coincheck(コインチェック)のAPIでページネーションを使用するには?【ビットコイン】

  • このエントリーをはてなブックマークに追加

ビットコイン相場が盛り上がっていますね。
私は本職がソフトウェアエンジニアなので、プログラムを組んでビットコイン取引を自動化することに熱中しています。

ビットコイン取引所であるCoincheck(コインチェック)では、取引APIが公開されています。
これを使用することで、板情報の取得や、取引などを自動化することができます。

ところが、ポジション一覧の取得で行き詰まってしまいました。
API仕様を見ると以下のようになっています。

ポジション一覧

レバレッジ取引のポジション一覧を表示します。レバレッジ取引の注文は 新規注文 から行えます。

HTTP REQUEST

GET /api/exchange/leverage/positions

PARAMETERS

status “open”, “closed” を指定できます。

これだと、25件しか取得できません。
そこから先の取得にはページネーションを使用する必要があります。
そのためには下記のパラメータを指定する必要があります。

PARAMETERS

limit : 1ページあたりの取得件数を指定できます。
order : “desc”, “asc” を指定できます。
starting_after : IDを指定すると絞り込みの開始位置を設定できます。
ending_before : IDを指定すると絞り込みの終了位置を設定できます。

 

さて、ここで、orderにasc(昇順)を指定し、starting_afterに1ページ目の最後(つまり25件目)の要素を指定すると、
返ってくる一覧は1ページ目から最後の要素を除いたものと同じになってしまいます。合計24件です。

どうやら、ページネーションを使用する際は、orderをdesc(降順)にしなければいけないようです。

ascのままでも、ending_beforeを使用するのかなとも思いましたが、指定しても取得結果に変化がありません。
使い方が悪いのでしょうか。
ググったところ、ヒットしたのはこのツイートだけでした。

解決策

とりあえず、orderをdescにしている分には問題ないようです。
本当は、古いポジションから決済したいので、ascを使って取得したいのですが、
仕方がないので、descで取得してから昇順にソートし直すことにします。

APIが公開されているビットコイン取引所一覧

国内の取引所のうち、まともに自動売買ができるのは、私が知る限り以下の4つです。

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。

コメントを残す

*