BitFlyer Lightning トレードツールを自作してみた!

2017年10月13日
プログラミング・開発 仮想通貨

皆さん、こんにちは。

ビットコインなどの仮想通貨を取り扱う取引所のFXサービス、「BitFlyer Lightning」にはAPIがあり、外部のプログラムからビットコインの売買や、取引情報などを行うことができます。

標準で提供されているツールも非常に良くできているのですが、全体的に文字が小さ過ぎたり、オーダーを入れながら、すぐにキャンセルをいれたい時、キャンセルボタンが離れすぎていて、すぐにキャンセルできないとか、金額の入力欄が小さすぎて、とっさの入力がしづらいなど、色々と難があるため、自分なりに使いやすいレイアウトのツールを自作しました(画像真ん中の細い部分です)

BitFlyer社から提供されているAPIの情報は、それなりに充実しているのですが、いかんせん、ネットに開発事例がほとんど掲載されていなかったため、それなりに苦労しました。

公式に掲載されているサンプルは、Node.js、Ruby、Perl、C#といったところなのですが、私自身、Perlは大分触っていないこともあり、RubyもC#も経験が無いため、普段から見慣れているJavaScriptベースで開発できるとあって「Node.js」でチャレンジすることにしました。

しかし、Node.jsも未経験だったため、まずは、Node.jsの基本から知る必要がありましたが、これまた、Node.jsに関する情報が、ネットに少なく、かと言って書籍を買おうという気にならなかったため、限られた情報を寄せ集めつつ、自力で理解しながらの開発でした。

他の仕事をやりながら片手間に作っていましたが、結果的には、数日で完成しました(Node.jsやJavaScriptマスターな人ならば、おそらく数時間で作ることができると思います)

ところが、完成したのは良いのですが、これまた片手間にトレードしたり、実験がてら自作ツールから入札テストをしていたら、入れていた証拠金のほとんどを溶かしてしまいました、笑

もっとも、「無くなってもいいや」くらいの資金でしたので、「勉強代」と諦められる程度ですが、完成したちょうどその日、52万円代から、およそ一日で69万円代まで爆上げした日だったので、完成の喜びよりも、十分な資金でトレードに参加できなかったことの悔しさの方が強かったです、笑

実装した内容は、以下です。

・日次損益
・評価損益
・証拠金残高
・必要証拠金
・証拠金維持率
・最終価格
・売買機能(指値)
・注文一覧
・注文キャンセル(個別・一括)
・取引履歴
・時計(日時表示)

デザインは表示のオーバーヘッドを最低限にするため、CSSで、見やすいレイアウトに整える程度にしています。

Node.js自体は、ローカルのmacOSで走らせているので、今の所、外部からはアクセスできませんが、VPSでLinuxを動かして稼働させても良いかなと思っています(それも見据えて、スマートフォンで見やすいサイズにしました)

板情報も実装できればベターですが、なかなか重い仕事になりそうなので、こちらはBitFlyerの画面を見ながらになりそうです。

特殊注文も実装しようと思っていますが、なにせ、爆上げに参加できなかった悔しさで、一気に意志がくじかれてしまいました、笑

「使いやすいツールが欲しい」という理由で開発を始めてみましたが、最終的には、Node.jsやJavaScriptのスキルアップになったので◎としています。

とにかく、開発事例が少なかったのですが、そういう情報交換をしている何かがあれば、ぜひ教えて欲しいと思います。

余裕があれば、チャットボットや、自動入札ボットも作って見たいと思います!

My BTC Wallet – 39Hsff3d4SMcfqVM3bUJMwnty7PXGTXTvt


ENTRY LIST

コーダー/プログラマーのための電子書籍ハウツー: そろそろブログやSNSじゃなくて、本にまとめてみたら?

続・成功するフリーランス – 年収1000万円は簡単に実現できる: フリーランスを15年やってみてわかったこと

木を食べる: 花粉症・ダイエット・健康食品・食糧革命への福音書

思春期の男の子を持つ、お母さんのための処方箋: 「いいからやりなさい!」って言ってませんか?

BitMEX