はじめに

自動売買をしたい!と思っている人は世の中にどれだけいるのかわかりませんが、世の中にガイドライン的な記事が無いので書いてみます。
たぶん、これを読めば何を調べれば良いのかがわかるはずです。
プログラミングが出来ないと無理?と思っている人もいると思いますが、そのような人のために、このブログではPythonコードも用意したりしています。
また、私のブログを網羅的に読んでゆけばある程度はイメージがつかめるとは思います。
(纏まりが無いので、網羅的に、という表現になっています。)

ただやはり書籍的な物が手元に!というのであれば、以下2冊をオススメしておきます。

シゴトがはかどる Python自動処理の教科書
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング

PythonではExcelを動かしたり、web ブラウザであるchormeを動かして情報を収集したり、マーケットスピードやKabuステーションを起動させたりすることが出来ます。一方、仮想通貨では、APIを送信して注文の実行をダイレクトにできます。また、データ分析も流行りのAIの作成もPythonでできますので、Pythonだけを覚えれば十分かと思います。

※データ分析・機械学習、AI作成については以下2冊を強烈にプッシュしておきます。
Pythonで動かして学ぶ!Kaggleデータ分析入門
Kaggleで勝つデータ分析の技術

自動売買とは

自動売買は基本的に自分で設定したロジックに従って売買するものです。
ですので、必要なものは売買ロジックを判定するツールと発注ツールの2つとなります。

判定ツールでは情報を収取し、計算を実施したのち、売買を判定するものです。情報を入手するときに使うのはPythonでスクレイピングを実施したり、証券会社のツールから取得したり、Python のライブラリであるYfinanceを使ったりします。仮想通貨では取引所とダイレクトにAPIでリクエストすればデータが入手できます。

売買ツールは株では証券会社のアプリを立ち上げ、ExcelのRSS発注かPythonでAPI発注を行ったりします。これもPythonだけで完結することが多いです。

今日はその概要について説明しましょう。

売買ロジックを判定するツール

ある条件になると売買判定を行うのですが、私の場合はスピードを要求しないので、Excelにロジックをくんでます。

当然、自動で売買するわけなので、そのExcelファイルにはある情報を入力しなければなりません。

情報を得てくる先としては大きくは以下だと思います。

①インターネット

②楽天RSSのような投資ツール

③新聞のような文字媒体

基本的には①が主流だと思います。どうやって入手するのかというと、Pythonのseleniumというインターネットブラウザを操るライブラリを操って取得するのが一般的と思います。
昔はUWSCというマクロソフトがあったので、私はそれを使って情報を入手していました。
ですが、UWSCの更新が途絶え、WINDOWS10が主流になってからは気合でseleniumに変更しました。

②については簡単です。楽天RSSだと、朝にマーケットスピードを起動してエクセルを起動しておけば、設定した関数に従ってオンタイムで情報を配信してくれます。
これを自動化したいのであれば、↓の記事を見てください。

③については非常に高度ですが、オンライン日経などで文字情報を入手し、特定キーワードの出現数によってトレードします。これは私もまだ未開の地ですのでこれから勉強してゆく分野です。

おおむねは情報入手先は以上のものかと思います。EDINETのAPI/バフェットコードのAPIなどもありますが、ここではAPI系は有料であることが多く、割愛したいと思います。上の二つのAPIは非常に有用ですが。

ここまで読んで、あれ?どうやってロジックを作りだせばよいのだろう?と思う人もいるはずですよね。
その疑問に関しては以下の記事を読めば少しはコツを掴めると思います。

自動発注ツールについて

株の自動発注ツールについては大きく分けて5つだと思っています。

①Python seleniumでブラウザ操作による発注

②楽天RSS発注機能を使った発注

③auカブコム証券のRestAPIを使った発注

④岡三RSS発注機能を使った発注

⑤インタラクティブブローカーズ証券のAPIを使った発注

この世で一番ポピュラーなのは①のselenium活用だと思います。マニアックにいけばAUTOITなどのツールありますが、基本構造は変わらず、自分でコードを書いてそれを実行することによってインターネット経由・証券会社HP軽油で発注をします。デメリットは発注速度がかなり遅いです。しかし、どの証券会社であってもこれであれば発注できるはずです。

なお、私の現行システムも①です。
ただし、立ち上げるのに相当な苦労をしました。
続々と発生するエラー、インターネットスピードによるスピードのバラつき、そして発注画面の癖と戦ってきました。覚えることは非常に多いです。

続いて②の楽天RSS発注機能ですが、これが私の今一番のお勧めです。
試用で色々試していますが、一時間ぐらい触っているだけで覚えることができますし、構造が簡単なのでシステム化しやすいです。
①は新しいものを立ち上げる時に相当エラーと戦うことになるのですが、一方で楽天RSSはインターネット接続が安定しているのであれば、基本的にエラーは少ないです。
数十銘柄の発注も1秒で完結します。
バスケットで取引するときも便利だと思います。
①と比べると難易度は数段低くなります。

③は私もほぼ運用まで行きかけたものですが、エクセルを使わずにシステムを組んでいる人、JAVA/PYTHON等で売買判定させている人はこちらを使えばよいのではないでしょうか。
発注速度も速いですし、コードもシンプルです。
でも、今となっては楽天RSSの方がエクセルを使えるのでドカンと情報を出力できますので、多数の銘柄売買するのであれば軍配は楽天RSSではないでしょうか。
ただし、カブコムAPIはVBA版も用意されていますので、発展性は無限大かもしれません。
カブコムAPIのVBA版は使ったことが無いのでコメントしづらいですね。
あくまで、私個人としては楽天RSSの方が良いと書きましたが、API発注は自由度が高く、
スピードもエクセルに寄るものではないので、場合によってはカブコムAPIに軍配が上がる人もいると思います。

カブコムAPIにトライしたい人はお助け記事として以下を書いてます。

Kabuステーションの立ち上げを自動化するだけでもやりたいことに近づくと思いますので、ぜひご覧ください。

④については結構前から、色々な人がシステムを立ち上げて自動売買しています。
ただし、私が検討しようとしたときには手数料が高く、見送った経緯があります。
今では手数料も下がったので選択肢としても良いのかな、と思ってます。

⑤については日本の個人投資家にとってはAPIの祖といっても過言ではないでしょうか。ただし、インタラクティブブローカーズは課税が総合課税になるはずで、税金が高くなるのがネックでした。今では、改善されていると思われることが証券会社のHPには書いてあります。
米国株を激しく取引したいのであれば、この証券会社一択でしょう。

私が自動売買を始めた8年前からは取り巻く環境はかなり改善されています。
情報も多くインターネット上に転がっていますので、是非ともトライして欲しいと思います。