【改名】ストックドッグ

金融系の会社で働くSEが株やPython、その他諸々について書いています。システムトレードもやってるよ!

システムトレードやろうよ【導入編】

目次

この記事はこんな人が対象

  • システムトレードをやりたい人
  • 投資はやったことある人(株式・FX・何でも)
  • ビットコインはやったことあっても、やったことなくてもいい(ビットコインの口座は必要)
  • プログラミング(Pythonが望ましい)経験あり、レベルはpaizaでCランクくらい取れれば十分
  • 根気のある人

システムトレードって何?

システムトレードとは、自動で投資対象(今回はビットコイン)を売買するプログラムのことです。


bitFlyer(ビットコイン取引所)は、売買をするためのAPIが公開されています。

lightning.bitflyer.jp


このAPIを使用して、ビットコインの売買を自動で行います。

APIって何って人のために軽〜くAPIとは

APIとは

株式など売買を行う時、証券会社のHPあるいはアプリから銘柄を選んで、買いなら買いのボタンを、売りなら売りのボタンをポチッと押します。
これは自分で操作しますが、APIはこの一連の動作をプログラムを通じて行うことが出来ます。


私は株式のシステムトレードもやっていますが、株式はAPIが公開されていません。

そのため、システムトレードを作成しようと思うとコード量が爆発的に多くなります。

システムトレードをやるなら、まずは売買のAPIが公開されているものがいいと思ったので、ビットコインを対象にしました。

最終的に出来上がるシステムイメージ

ビットコインを10分に1回、1時間に合計6回の買いを行い、1時間に1回保有しているビットコインを全部売る

という単純明快はシステムトレードを作成します。

例えば...

21:00 5000円分のビットコイン買い
21:10 5000円分のビットコイン買い
21:20 5000円分のビットコイン買い
21:30 5000円分のビットコイン買い
21:40 5000円分のビットコイン買い
21:50 5000円分のビットコイン買い
21:59 30000円分のビットコイン売り
この後これがずっと続く...

システムトレードとなると、戦略が命です。

しかし、出来上がるシステムの戦略は「定期的に買って売る」という戦略とはちょっと言いがたいです。

ただ、この記事では戦略を凝る前にまずはシステムトレードを作ろうよ、というのが趣旨です。


ちなみに、オプションとして1時間に1回、取引結果をslack(コミュニケーションツール)を通じて通知してくれる機能も作成予定です。

システムトレードをするには何が必要?

APIを扱う知識

APIを扱うので、APIの仕組みは知っておきたいです!

エラーが出た時にAPIの仕組みを理解していないと、対処できないですから。

コードとエラーログをまるまるテラテイルやstackoverflowに投げるなんてやっていたら、日が暮れてもシステムトレードは完成しません。


ちなみに、この文章を理解できたらAPIの仕組みはわかっている!でいいと思います。(というかこれ以上のことを解説しない)

APIの仕組み

自PCからリクエストを送ったら、相手サーバーからレスポンスが返ってきて、そのレスポンスにJSONファイルが入っている

理解できたらOK!

理解できない方は、今後解説するのでご安心を。

APIを扱うプログラミング技術

一番、基本的なAPIの使い方はこんな感じ。

GET https://api.bitflyer.jp/v1/getmarkets

これはターミナルに打ち込むことで実行できます。(できたら、実際にターミナルに打ち込んでみましょう)

私はUbuntuですが、きっとMacでもWindowsでも実行できるはずです。


APIを使うこと自体は簡単です、がしかし、他にも色々な処理をしないとシステムトレードの構築は難しいです。

ちょっとした処理は自分で書いていきます。

例えば、売買プログラムを定期実行するためのプログラムなどなど。


だいたいpaizaで言うとCランクもあれば、プログラミングスキルとしては十分かなと。(直感ですが)

paiza.jp



ちなみに、今回作成するシステムトレードはトータルで400行に満たないくらいです(Python製)

少なッ。

プログラミングの難易度はそこまで高くないはずですが、しっかりと理解した上で動かすとなるとそれなりの知識は必要です。

セキュリティの知識

お金を扱うAPIを使うとなると、ある程度はセキュリティの知識は必要です。

扱う情報がシビアなので、ここは頑張りましょう!(私も苦手!)


ちなみにこんな質問に答えることができたら、APIを扱う上でのセキュリティ知識は十分だと思います。

Question

API keyをハードコーディングする危険性を100個上げてください

え?多いですか?

じゃあ、まぁ、1つでも良いです笑


ちなみに、API keyもハードコーディングもナンノコッチャワカンネーって人は、私が頑張って解説するので一緒に頑張りましょう。

(この文章が解説ページURLになる予定)

サーバーの知識

システムトレードのプログラムを作成すれば、自分のPCで取引を行うことはもちろん可能です。

ただ、ずーっと動かすには自分のPCじゃ厳しい!

ずっと電源にさしっぱなし自PCを動かすのはアリ寄りのナシ!!


サーバーを借りて、プログラムを動かそう!


サーバーを借りると言ってもよくわからないぜって人は、もうひとつPCを買うって感覚でも良いかもしれません。


ちなみに、借りるサーバーはLinuxUbuntuの予定です、ここは何でもいいです、CentOSでも!)

生涯、WindowsGUI派を貫き通している組はここが一番の壁になるかもしれません。


また、利用するサービスはconohaのVPSを予定しています。

今どき、サーバーを借りれるサービスはたくさんあります。

AWSでも何でもいいです。

これもわからない人はじっくり解説します!


システムトレードの導入はここまで

システムトレードで必要な要素技術はこんなもんだと思います。

きっと、ここまで書いたことが99%以上理解できる人はシステムトレーダーです。


誰にでもわかるような記事を作っていきたいと思っているので、要望があればコメント下さい〜。

また、書いてて必要だなぁって思ったことは随時追加すると思います。

導入はここまで

自分の時間と根気が確保できれば、冒頭で言ったシステムトレードが構築できるまでしっかりと書き記したいと思っています。

システムトレードやろうよ 〜目次〜

www.stockdog.work