bitFlyer Lightning APIの使い方その1「APIで何が便利になるのかを説明」

本記事からbitFlyer LightningのAPIの使い方について説明します。話が長くなると思うので数回の記事に分けて説明します。

なるべく分かりやすく説明するので、プログラミングが苦手な人も興味があれば読んでみて下さい。

APIとは「Application Programming Interface(アプリケーションプログラミングインタフェース)」の略で、アプリケーションをプログラミングで使うための仕様のことです。外部のプログラムからアプリケーションの機能を使えるように用意された呼出し口のイメージです。

API

 

普段トレードするときはChromeやEdgeなどのブラウザを使ってbitFlyerのサーバーにアクセスし、bitFlyer Lightningを使ってビットコインの売買注文を出している人が多いと思います。

 

APIを使えば、自分で作った画面からビットコインの売買注文を出すことができるようになるのです。また、板情報や約定履歴も取得できます。

自前プログラムから発注

 

普通にbitFlyer Lightning使えばいいのでは?

確かに、APIで出来ることはbitFlyer Lightningでも出来ます。APIを使う大きな利点は、発注を出すときの操作を自分好みに簡略化できる点です

ではbitFlyer Lightningを使った発注と、APIを使った発注を比較してみましょう。以下の動画はbitFlyer Lightningを使って発注するシーンです。数量はあらかじめ入力しています。

「①チャート上の注文を出したい価格を右クリック」 ⇒ 「②指値注文を選択」 ⇒「③注文入力画面の買いボタンをクリック」 ⇒ 「④確認画面の買いボタンをクリック」の4ステップで発注ができました。

確認画面を非表示にしたり、素早くマウスポインタを動かせば、もっと早く発注することができますが、頑張っても3秒くらいはかかりそうです。

 

次はAPIを使った発注です。

下図のように、チャートはbitFlyer Lightningのものを使い、チャートと板が隠れない位置に自分で作成した発注画面(以降、自作画面)を置きました。

 

自作画面では上下キーで10万円台の数字を変更し、テンキーで下4桁を入力します。そして、Enterキーを押すと買い、+キーを押すと売り注文がbitFlyerへと送信されるように作りました。

キーボード テンキー

 

つまり、マウスを操作することなくキーボードだけで発注できるようにしたということです。以下が実際のプレイ動画です。

 

このように、APIを使うことで注文入力操作を簡略化して手際よく発注を実行できるようになります。

単純な指値注文や成行注文などはそこまで簡略化にはなりませんが、IFD注文(イフダン)やIFD-OCO注文(イフダンオーシーオー)などの特殊注文は、APIを使うととても便利です。
⇒「特殊注文とは

例えば、IFD-OCO注文は注文が約定すると同時に別の2つの注文が自動で出される注文です。ポジションを持つと同時に利確と損切りの注文を同時に出しておきたい場合によく使われます。

含み益になっても、まだ上がるかも知れないから利確できない。含み損になっても、価格が戻るかもしれないから損切りできない。結局、利確も損切りもできない人はIFD-OCO注文を使って機械的に利確、または、損切りしてしまうのもいいと思います。

IFD-OCO注文

 

bitFlyer LightningからIFD-OCO注文を出すときは、約定後の2つの注文内容に入力ミスがないように、念入りに確認する必要があります。

IFD-OCO注文

 

約定後の2つの注文をプログラムで自動で作らせれば、入力ミスを心配することなく素早くIFD-OCO注文が出せます。

例えば利確幅を6万円、損切り幅を3万円とあらかじめ決めておいて、指値買い70万円の注文を出すときに、

【利確注文】売り指値注文76万円
【損切り注文】STOP-LIMIT注文売り73万円

をプログラムに作らせて、そのままIFD-OCO注文を発注するということです。

このように、APIを利用すると発注操作を簡略化でき、入力ミスの心配も減るのでAPIを使うと良いことずくめのように感じます。しかし、2018年3月現在ではAPIを使うと気になることが起きます。

それは、「注文が受け付けられるまでに時間がかかるときがある」です。

取引所の取引量が少ないときはAPIを使って発注したときはすぐに注文が受け付けられるのですが、取引量が多いときに発注すると注文が受け付けられるまで長い時間待たされるようになります。1分以上待たされるなんてことも(2018年3月現在)。

以下の動画はTASKさんの検証動画(2017年7月)です。SUPER BUSY状態のときにbitFlyer LightningとAPIから同時に成行注文を出したところ、APIのほうが1分36秒遅れて約定しました。

 

ちなみに、混雑状況は板の下に表示されています。

 

おそらくbitFlyer Lightningではサーバーとのセッションが確立された状態での発注なので、混雑時も優先的に注文が処理されるのだと考えられます。

APIによって発注時の操作が簡略化できても遅延時間が長すぎるので、2018年3月現在では、APIよりbitFlyer Lightningを使うことをお勧めします。

しかし、今後のbitFlyerの対応によって、APIを使ったときの処理スピードがbitFlyer Lightningと同等になる可能性もあるので、APIの使い方を覚えておいて損はないと思います。また、APIを使って板情報や約定履歴なども取得できるので、やろうと思えば自動発注も可能です。

次回記事は、実際にAPIを使う手順について説明します。