かけだしBotterでもできる!Macで自動売買する方法〜自動売買のための環境検討編

トレード

「自前のシステムトレード環境を一から準備するにはどうやるんだろう・・・?」

そう考えている方は多いと思います。

FX業者がシステムトレード用のサービスは出しているけれど、融通が効かないのも事実であり、自分で作るのが望ましいと言えます。

この記事ではパソコンにそれほど詳しくない私が、自動売買するためにどの環境を選ぶべきなのかを考察していきます。

そもそも自動売買するべきなのか?

「そもそも自動売買ってそんなに有効なの?」と感じる方もいるでしょう。最初にまとめてしまうと以下のようになります。

  • FXや暗号資産(仮想通貨)であれば自動売買で勝負できる
  • 株式や先物は勝てないのでやめた方が良い

まず、FXや暗号資産(仮想通貨)では、自動売買で利益を積み上げることが意外にも可能です。これはボラティリティが大きいために、短期間での売買により小さな値幅をとっていくのが比較的容易に実現できるためです。

もちろん、短い期間での上昇や下落トレンド中にうっかり掴んでしまうとなかなか手放せないことで利益を逸することはありますが、適切なロジックで判別することによりうまく回避できる場合がほとんどです。

また、FXや暗号資産(仮想通貨)においては特定の参加者が有利な環境にあるということはなく、それぞれの市場は独立していることになっているため、個人であっても大口と平等に勝負できると言えます。

しかし、株式や先物といった資産では証券会社やヘッジファンドに勝てないのではっきり言ってやめておいた方が良いです。ここでやめておいた方が良いというのは、短期間で小さな値幅をとっていく戦略が上手くいかないというです。これはなぜなのでしょうか?

協力

端的に言えば、個人トレーダーが短期間のトレードを行うとき、証券会社やヘッジファンドに比べ圧倒的に不利な環境で勝負しているためです。

例えば国内株式の場合を考えてみましょう。

具体的な場所までは公開されていませんが、東京都内の沿岸部エリアのとある建物の中に東京証券取引所の中枢部とも言える売買システム(arrowhead)が存在しています。そして、そのすぐ隣に「コロケーションエリア」という証券会社や投資家のサーバーが設置されており、売買システムのサーバーと物理的にケーブルでつながっています。俗にHFTとも呼ばれている高頻度取引は、このコロケーションエリアから行われているのです。

コロケーションエリアの利用料金は1ヶ月当たり80万円程度であり、東証に料金を支払いラックを借りてそこにサーバーを設置しています。HFTを行っているのは自己資金で投資する専門業者や一部のヘッジファンドなどであり、投資主体の正確な数は不明ですがその数は決して少なくありません。

公開されていない部分も多いのですが、コロケーションの導入によってスピードの格差が広がったことは疑う余地がありません。コロケーションを利用しない一般の投資家が自宅のパソコンから発注した場合、注文は証券会社のサーバーから東京・池袋にある「アクセスポイント」と呼ばれる東証のネットワークへの入り口を経由します。コロケーションを利用した場合と比べると、速度は200分の1程度、つまり時間が200倍かかります。この圧倒的な速度の差が個人投資家はHFTで勝ちようがないという根拠になっているのです。

自動取引は自前が良いのか?

この記事を見ているのであればご存知の方も多いでしょうが、世の中には既製の自動売買サービスがあります。

例えば国内FX業者で言えば、トレイダーズ証券「みんなのシストレ」、インヴァスト証券の「トライオートFX」などが有名ですし、仮想通貨では業者自体が提供しているものはありませんが、かなり怪しいツールも含めて有象無象という状況です。

しかし、これらのサービスは突然終了する可能性があるほか、仮想通貨の自動売買に至ってはかなり胡散臭いものが溢れているのが正直なところです。また、あくまでも提供されているツールという位置づけですので細かい設定や高度なロジックはほとんど期待できません。

結局、自動売買の仕組みを自前で作るのが望ましいという結論に至ることでしょう。

どのように作るのが望ましいか?

FXと暗号資産(仮想通貨)では考慮すべき点が変わってくるので、パターンを分けて考えてみましょう。

FX

FX

FXの場合、MetaTrader(MT4・MT5)を使うか使わないのかという大きな選択があります。

MetaTraderとはFXで利用する電子取引プラットフォームであり、エンドユーザーが独自の取引スクリプトや取引を自動化するプログラムを実行できるため自動取引したい方から高い支持を得ています。Windowsベースのアプリケーションですが、MacやLinux、Androidでも動くとされています。

投資家自身が指標やスクリプトを開発できる独自スクリプト言語MQLを採用しており、特にアルゴリズム取引の機能拡張性にMetaTraderの特徴が集約されていると言っても過言ではありません。

MetaTraderにはMT4とMT5のバージョンがあり後者が新しいのですが、これ自体はいずれも無料で使えます。一方、市場分析・注文発注などを行うパッケージ化されたプログラムであるExpert Advisor(EA)と呼ばれるプログラムがあり、こちらは有料のものが大半です。

しかし、よく考えてみればこれだけなら必ずしもMetaTraderを使わなくても良いことがわかります。しっかりしたフォーマットであればMetaTrader以外でも注文をかけることができる業者はありますし、分析も高度な分析環境が無料で配布されているプログラミング言語(Python)があります。

実際、MT5においてPythonパッケージがリリースされたのは比較的最近です。これにより、Pythonを使ってMT5のプログラムを呼び出すということが簡単にできるようになったのです。

こうなってくると、分析をわざわざMetaTraderで行うメリットが既製で販売されているという点を除けばほとんどないように思えます。つまり、分析はPythonで処理して注文の部分はMetaTraderを介在させれば良いのです。

Pythonなら全て無料でかなり高度な分析を行えるので、非常に有利であると言えます。

なおプログラミング言語には様々なものがあり、統計処理に特化したR言語も含めれば様々な方法が考えられますが、Pythonでは「anaconda」という科学技術用の無料パッケージが他の追随を許さないレベルで汎用性が高く、それ以外にも最近話題のディープラーニングをルーティンで行うのであればPython一択ですから、Python以外の他の言語をわざわざ選ぶことはないでしょう。

暗号資産(仮想通貨)

暗号資産(仮想通貨)

暗号資産(仮想通貨)の場合はFXよりもシンプルです。もともとMetaTraderのような有名なAPIが存在しないことから、全て自前でプログラムを作るということになります。

取引所のサーバーへ接続し板情報やポジション情報の取得、発注をかけることは、多くのプログラム言語で可能です。(多少プログラミングに通じている方には、GETメソッドやPOSTメソッドで可能と言えばお分かりになるでしょう。)

そうなると、何で実装するかを選ぶ上では「構築のしやすさ」や「分析のしやすさ」が重要になってきます。特に自動売買ではいかに理詰めで分析を行えるかがポイントになります。

各業者から提供されているサンプルコードのラインナップとしては、PHP、Ruby、JavaScript、JavaそしてPythonといったところでしょうか。この中でもPythonのサンプルは非常に数が限られています。

それでも、分析のしやすさではPythonが群を抜いています。これまでPython利用者が蓄積してきた科学技術分析用のパッケージ「anaconda」を利用すれば、数学や統計学に基づく分析を僅か数行で行うことが可能ですし、コードもシンプルで初学者の方でも他の言語ほどのハードルの高さではないでしょう。

結局、暗号資産(仮想通貨)の場合にもPythonが望ましいということになります。

ただし、Pythonにも弱点がないわけではありません。それは「他の言語に比べると処理が遅い」という点です。

Pythonが遅くなる主な原因としては、変数を自由に再定義できるがために、変数の型変換に時間がかかるということがよく挙げられます。この問題も適切にプログラムを記載することでパフォーマンスが大きく改善することも多いです。また、遅いといっても目視確認と手作業に比べれば遥かに高スピードですから、この弱点が致命的になることはまず滅多にないでしょう。

まとめ

ここまで自動売買の有効性やどのような環境が望ましいかを考えてきました。自由に使えるリソースを考慮すれば、自動売買の環境はPythonで構築することに優位性があります。

ここからは実際に自動売買を行うための準備をしていきましょう。関連する次の記事もおすすめです。