bitFlyer Lightning APIの使い方7「テンキーだけで発注できるようにする」

本記事ではbitFlyer Lightning APIを使って素早く発注するためのプログラミング法について説明します。

テスト環境は前回記事のものをそのまま継続して使うので、実際に試してみる人は前回までの記事を先に読んでおくことをお勧めします。
⇒「APIの使い方 その1

前回記事の検証では、1つの価格と数量を入力して「買いボタン」を押すと、利確注文(指値+9000円)と、損切り注文(指値-3000円)をプログラム内で自動生成し、IFD-OCO注文を送信する作りにしました。

これにより、誤入力が減り、入力時間を大幅に短縮できました。

IFD-OCO注文の例

 

本記事では、このプログラム改良して、より少ない手順で発注するためのプログラミング方法について説明します。

テンキーで発注する

指値を入力したあとに「買い」ボタンを押すのが面倒だと思ったことはありますか。

 

思ったことがある人は、ボタンを削除して、指値を入力したあとにEnterキーを押すだけで注文が送信されるようにしましょう。

 

client.ejsを以下のコードに変更します。

前回記事のソースコードでは「買い」ボタンを押した時にイベントを発生させていますが、今回のコードは価格を入力するテキストボックスでキーボードを押したときにイベントを発生せています。押したキーがEnterキー(13)の場合のみ注文送信を実行します。

 

server.jsは変更無しです。

 

実行してみましょう。

「スタート」⇒「Windows システム ツール」⇒「コマンド プロンプト」をクリックしてコマンドプロンプトを起動します。

コマンドプロンプトを起動

 

コマンドプロンプトに

cd C:\api

を入力してEnterキーを押します。これでapiフォルダに移動しました。

続けて、

node server.js

を入力してEnterキーを押します。「サーバー起動」と表示されれば起動OKです。

ヽ( ´▽)ノ

サーバー起動

 

ブラウザを開いてアドレスバーに

http://127.0.0.1:1234/

を入力してEnterキーを押します。

※次の作業をすると注文が取引所に実際に送信されます。

テンキーを使って価格に「600000」(現在値よりも低い価格)を入力し、Enterキーを押して下さい。

 

bitFlyer Lightningの注文一覧に注文が追加されれば成功です。注文の左に表示されている×ボタンをおしてキャンセルしておきましょう。

 

テンキーでキャンセルする

テンキーで注文を出せるようになったので、今度は逆にテンキーで注文をキャンセルできるようにしましょう。コマンドプロンプトでCtrl + Cを押してサーバーを止めて下さい。

注文をキャンセル

 

client.ejsを以下のコードに変更します。冗長なコードにならないように、注文とキャンセルで共通する処理をメソッドにしています。

 

server.jsを以下のコードに変更します。このコードも同じように、注文とキャンセルで共通する処理をメソッドにしています。

 

コマンドプロンプトに

node server.js

を入力してEnterキーを押します。「サーバー起動」と表示されれば起動OKです。

ヽ( ´▽)ノ

サーバー起動

 

ブラウザを開いてアドレスバーに

http://127.0.0.1:1234/

を入力してEnterキーを押します。

※次の作業をすると注文が取引所に実際に送信されます。

テンキーを使って、ブラウザの価格に「600000」を入力してEnterキー、「.」キーの順番で押します。bitFlyer Lightningの注文一覧に注文が追加されたあとにすぐに注文がキャンセルされれば成功です。

 

以上、bitFlyer Lightning APIを使って素早く発注するためのプログラミング法について説明しました。

今回説明した以外にも想像を膨らませることで、より便利に安全に注文できるようにカスタマイズできるので、ぜひ色々試してみて下さい。

最初にお伝えしたように、全体の発注量が多いときにAPIで発注すると、注文が受け付けられるまでに1、2分の遅延が発生します(2018年4月現在)。そのため、注文送信から受付までの速さという観点では、自作プログラムを使ってトレードするより、普通にbitFlyer Lightningを使ったほうが有利です。

もし、この遅延ハンデが無くなったら間違いなくAPIトレーダーのほうが短期トレードで有利になるので、bitFlyerがAPIの仕様変更ついて発表を行ったときは、関係ないと思わずに注目しましょう。