bitFlyer Lightning APIの使い方その1「APIで何が便利になるのかを説明」
本記事からbitFlyer LightningのAPIの使い方について説明します。話が長くなると思うので数回の記事に分けて説明します。
なるべく分かりやすく説明するので、プログラミングが苦手な人も興味があれば読んでみて下さい。
APIとは「Application Programming Interface(アプリケーションプログラミングインタフェース)」の略で、アプリケーションをプログラミングで使うための仕様のことです。外部のプログラムからアプリケーションの機能を使えるように用意された呼出し口のイメージです。
普段トレードするときはChromeやEdgeなどのブラウザを使ってbitFlyerのサーバーにアクセスし、bitFlyer Lightningを使ってビットコインの売買注文を出している人が多いと思います。
APIを使えば、自分で作った画面からビットコインの売買注文を出すことができるようになるのです。また、板情報や約定履歴も取得できます。
確かに、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注文を使って機械的に利確、または、損切りしてしまうのもいいと思います。
bitFlyer LightningからIFD-OCO注文を出すときは、約定後の2つの注文内容に入力ミスがないように、念入りに確認する必要があります。
約定後の2つの注文をプログラムで自動で作らせれば、入力ミスを心配することなく素早くIFD-OCO注文が出せます。
例えば利確幅を6万円、損切り幅を3万円とあらかじめ決めておいて、指値買い70万円の注文を出すときに、
をプログラムに作らせて、そのまま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を使う手順について説明します。