・システムトレードをゼロから自分でやってみたい
こういった読者に向けて記事を書いていきます。・思いついた投資のアルゴリズムで運用したい
・だが、これまで自動売買の経験はない
この記事に書いてあること
・システムトレードとはそもそも何なのか・シストレのメリットとデメリット
・シストレが向いている資産クラス
・システムトレードの具体的な作成手順
・自動売買を動かすために参考になる情報源
目次
システムトレードとは
はじめにシステムトレードとは何かを簡単におさらいしておきましょう。システムトレードとは言葉通り、プログラムやコンピューターソフトによって自動的に株や為替、仮想通貨などのトレードを行うことです。
人間がその時々の判断で取引する裁量とは異なり、事前に決めておいたプログラムが自動で売買のタイミングを判定し実行します。
シストレのメリット
シストレには以下のようなメリットがあります。シストレのメリット
・人間の感情が入らないので冷静な取引ができる・チャートに張り付く必要がなく、手間がかからない
・仕事中や夜間でもトレードができる
・作成したシステムを販売することもできる
適切なタイミングでエントリーできなかったり、逆に損切り出来ずにズルズルと塩漬けになってしまうことがよく起きます。
ですが、シストレであればそういった心配はありません。
また、忙しい人でも、プログラムが自動で投資してくれるので問題なくトレードできるというメリットもあります。
シストレのデメリット
一方でシステムトレードにはデメリットもあります。シストレのデメリット
・開発に最低限の知識や労力が必要・安定して利益を上げ続けるシステムを作るのは大変
・プログラム運用中はPCの電源を落とせない
また、自分の PC を使う場合はシステムの稼働中は電源落とすことができません。
PCの起動音がうるさかったり、電気代が余計にかかったりする可能性があります。
安定運用にはVPSサーバーの使用が推奨される
「プログラム運用中はPCの電源落とせない」という部分に関してのコメントです。自分のパソコンで自動売買のプログラムを動作させる時は、パソコンの電源が落ちた瞬間にシステムが停止してしまいます。
また、同じパソコンを使って別の作業をすると、動作が重くなってシステムに不具合が生じる可能性があります。
これを避けるためには、24時間稼働しているコンピューターをレンタルして、そのコンピューターを使って作成したプログラムを動作させる必要があります(VPSサーバーといいます)。
VPSサーバーが無ければシストレが絶対できないという訳ではありません。
が、自動売買に慣れてきた上で安定運用をしたいと感じたなら導入を検討すると良いです。
VPSサーバーについては下の記事を参考にしてください。
仮想通貨の自動売買システムが一番作りやすい
さて、シストレのメリットとデメリットをおさらいしたところで、次の話題に移りましょう。この記事を読んでいる人も中には、様々な資産クラスでシステムトレードを運用したいと思っている人がいることでしょう。
・株
・債券
・為替(FX)
・仮想通貨(暗号資産)
・コモディティ
世の中に投資の対象になっている資産はたくさんあります。 ・債券
・為替(FX)
・仮想通貨(暗号資産)
・コモディティ
しかし、この中でもシステムトレードの対象にしやすいのは、仮想通貨です。
これは技術的な理由によります。
日本国内でもいくつかの仮想通貨の取引所は、APIを一般に公開しています。
APIというのはユーザーがプログラムから業者のサーバーに命令するための窓口のようなものです。
要するに、仮想通貨なら、僕たちが自作したプログラムから自由に注文を出したり相場状況を確認できるということです。
(実際に独自に作成したプログラムの記事を後程紹介します)
FXでも一部同じようなことができる業者が存在していますが、数は少ないです。
※代わりに FX の場合はEAという自動売買専用ソフトを使うことができ、こちらは数多くのFX業者で運用出来ます
ただし個人的にはPython botよりも開発しづらいと感じています。
参考記事)MT5の前提知識不要!EAを動かしてFXで自動売買を行う方法
株やコモディティなどの資産については、自分でプログラムを組んでシステムトレードを実行するのは、かなりハードルが高いです。
個人が自由に使えるレベルのAPIは僕の知る限りどの証券会社でも公開されていません。
どうしても株式で自動売買を行いたい場合は、自分でプログラムを作るのではなく、専門家が作ったシステムの中から好きなプログラムを選んで稼動させるという方法をとります。
代表的なのはトライオートETFです。
参考)トライオートETF公式ページ
トライオートETFを選択した場合
・開発する手間が0
・安定したサーバー上でシステムが動かせる
といったメリットがある一方で、自分でシステムを開発するわけではないので、自由度が低いです。・安定したサーバー上でシステムが動かせる
シストレを自作していくワクワク感もありません。
なお、仮想通貨以外を対象にした場合はシストレの自由度が下がる、という状況について詳しく知りたい方は下記記事を参考にしてください。 ちなみに各仮想通貨取引所のAPIの使いやすさについてはこちらの記事を参照してください。
プログラミングに抵抗が無ければPython botが一番おすすめ
仮想通貨を対象として自動売買を行う場合、Pythonというプログラミング言語を使ってコードを作成するのが一番おすすめです。Python のメリット
・C言語などよりも習得が圧倒的に簡単・データ分析関係のライブラリが豊富で、開発の手間を削減できる
・AIや統計に絡んだプログラミングに非常に強い
・金融以外にも応用範囲が広いので習得した技術が無駄にならない
・【コピペOK】ボリンジャーバンドに従ってビットコインを自動で購入するコード
・海外取引所(Bybit)を使った暗号資産FXの自動売買の方法
・RSIを使った自動売買botをbitFlyerで動かす方法
PythonのFX用のbotも数は多くないですが公開してあります。
・OandaでPythonのbotを運用してみる。ボリンジャーバンド編【コピペ可】
その他、世の中一般ではRubyやjavascriptといった言語でも自動売買を動かしている例もあります。
が主流はPythonかな、といったところです。
プログラミングに苦手意識が無ければ、一からPython を習得するのも普通におすすめです。
経験ゼロであっても、大体100時間程度学習すれば自力でシステムトレードのプログラムを作れるようになると思います。
自力プログラミングを避けるならEAに頼る
プログラミングを一切せずにシストレを行う方法もあります。先程もちらっと触れましたが、代表的なのはFXにおけるEA(エキスパート・アドバイザー)です。
これはMT4やMT5といった専用のトレードツールで動作するソフトウェアです。
自分の FX 口座とMTを連携させることで、実行が可能になります。
EAというのは、MQLという専用のプログラミング言語で開発されたソフトです。
こう書くと難しそうですが、EAは自分で作らなくても有料や無料でたくさんのものが数多く公開されています。
なのでプログラミングをしたくない場合は、誰かが作ったEAを使わせてもらえばOKです。
実際にゼロからEAを動作させる方法は、下の記事にまとめているので参考にしてみてください。 注意点としてはEAは基本的に為替を対象としたものです。
株や暗号資産でEAを動作させるといったことは、僕の知る限りでは出来ないです。
システムトレードの作り方
ここからはシステムトレードの作り方を説明していきます。基本的にシストレを作るときは、以下の流れを踏むことになります。
※Python などの言語で自分独自のシステムを作成する場合の流れです。
①アルゴリズムを考える
②実装する
③バックテストを行う
順番に説明していきますね。 ②実装する
③バックテストを行う
投資には一般的にテクニカル分析とファンダメンタルズ分析があります。
前者はチャートパターンなどの過去の値動きを参考にトレードする手法で、後者は(例えば株式投資なら)企業の売上や利益などを参考に売買判断をする手法です。
シストレでは①の「アルゴリズムを考える」時にテクニカル分析を組み入れることが多いです。
コンピューターは移動平均や MACD などのテクニカル指標を高速で計算することができ、注文も一瞬で出せるので非常に相性がいいです。
逆にファンダメンタルズ情報をシステムに組み込むのはかなり難しいです。
企業の決算書やニュース情報などを自然言語処理(NLP)等で解釈し、トレードに活かす必要があります。
トレードの根拠となる情報取得の段階から大規模な実装が必要になりそうな予感がしますね。
僕自身ファンダメンタルズが絡んだシストレは開発したことがないです。
②の「実装する」というパートについてです。
このパートの難易度は
・①でどういうアルゴリズムを思いついたか
といった要素によって大きく変動します。 ・どの取引所を使うのか
当然のことながらプログラミングスキルの差でも大きな差が付きます。
このパートを少しでも楽にするために「そもそも自動売買の実装が簡単な取引所を選んでおく」ということが意外と重要になります。
(参考までに仮想通貨の取引所のAPI比較記事のリンクを貼っておきます。)
【保存版】仮想通貨の取引所APIを徹底比較。自動売買に最適な口座はココ!
③のバックテストというのは、過去データ(ヒストリカルデータ)による検証です。
アルゴリズムを実装してもそれが本当に儲かるかは分かりません。
そこで、過去のデータを使って、
・OO年XX月OO日〜XX年OO月XX日までこのアルゴリズムで売買していたらいくら利益が出たのか
といった内容を検証します。
バックテストでパフォーマンスが良ければ、実運用への期待がいよいよ膨らむといった感じですね。
ただし、現実問題として自分が望む時間間隔のデータが常に手に入るわけではありません。
例えば10秒ごとに売買する仮想通貨の自動売買システムを作ったのに、10秒足の過去データが手に入らない、といったことも多々あります。
そういう場合は、自分で現時点からデータを収集していくか、バックテストを諦める必要が出てきます。
例えば10秒ごとに売買する仮想通貨の自動売買システムを作ったのに、10秒足の過去データが手に入らない、といったことも多々あります。
そういう場合は、自分で現時点からデータを収集していくか、バックテストを諦める必要が出てきます。
また仮にバックテストで儲かったからといって、未来でも利益が出るとも限らないので注意してください。
暗号資産のPythonボットを作る場合
注意事項として、ビットコインなどの暗号資産の Python プログラムを作る場合の②の実装パートの下準備について説明しておきます。先ほど、実際にシステムトレードを行うときには、取引所が公開している API を使用すると言いました。
このAPIを使用する時には基本的に2種類の API キーを発行する必要があります。
仮想通貨のプログラム作成の前準備
1.口座開設2.APIキーの発行
これに関しては具体例を見てもらった方が早いです。
下の記事では、コインチェックでの口座開設からAPIキー発行手順を画像付きで解説しているのでぜひ参考にしてみてください。
為替EAを動かす場合
EAを使って為替売買を行う時は、APIキーの発行は必要ありません。その代わり、以下の手順を踏むことになります。
・MT4もしくはMT5をインストール
再掲になりますが、EAを動かすまでの手順は、下記記事を参考してみてください。・MT4もしくはMT5とFX口座を紐づけ
・EAを作成or購入
シストレ構築を専門家に学ぶ方法
さて、ここまでシストレを始めるまでのロードマップの概要を説明してきました。最後にシストレ構築スキルを高める方法を紹介しておきます。
最近はネットでもシステムトレードに関する情報を公開している人が多くなってきました。
しかし、まだまだ無料のものは情報の質が低かったり、詐欺まがいのものも多いのが現状です。
中には無料でも質の良いものもあると思いますが、なかなか見つけるのは難しいでしょう。
個人的にオススメなのは、Udemyの動画講座で学ぶことです。
Udemyとは
Udemyはプログラミングやエンジニアリング関連の動画が多数集まった、世界最大規模の学習プラットフォームです。
シストレの関連の動画もUdemy上にすでにいくつか存在しています。Udemyはプログラミングやエンジニアリング関連の動画が多数集まった、世界最大規模の学習プラットフォームです。
ここでは、個人的に目ぼしい動画講座を下に挙げてみました。
全コース30日間の返金保証付きです。
(中には2万円を超えているものもありますが、Udemyは時々大々的なセールをやるので、タイミングを逃さなければ1000円台で視聴出来ることもあります。)
・FXで勝てない人はチャートを見るな!自動売買ソフトをつくろう!
MT4に対応した自動売買ソフト(EA)を作成する手順を解説した講座です。
プログラミング知識が全く必要とされていないのがポイントです。
ソフトのダウンロードなどは動画を見ながら行った方がわかりやすいので、初心者にはオススメです。
・Rubyで作る! ビットコイン自動売買システム
この記事では主にPythonを使用した自動売買について触れてきました。
しかし、Rubyを既に習得している人は、Rubyを使うこともできます。
この動画講座を一通り理解すれば、RubyでbitFlyerのAPIを操作して自動売買プログラムを動かすことができるようになります。
・Node.jsの基礎から学ぶ、ビットコイン自動売買プログラム
こちらはjavascriptを使った自動売買プログラム作成の方法を解説したものです。
JS使いの方は、こちらを参考にするとよいでしょう。
javascriptの文法から解説してくれるので初心者も安心して受講できます。
・ビットコイン【プログラミング初心者でも安心】Pythonとチャットツールで仮想通貨 ボットを作ろう!
こちらは厳密には自動売買ではなく、ビットコインの現在価格を教えてくれるbotを作成する講座です。
ただし実際にやってみるとわかりますが、売買の注文を出すのと、現在価格を取得するのはプログラミングの難易度にほぼ差がありません。
この講座を理解すれば普通にPythonでシステムトレードが作成できるようになると思います。
昨今では、低コストでシステムトレードを学べる環境が整いつつあります。
なので、高額の自動売買ツールを購入する前に、こういったコンテンツで知識をつけていくのがオススメです。
コメントを残す