システムトレードを自作してみたい!
システムトレードの自作ってメリットあるの?
この記事では、上記のような疑問にお答えします。
本記事のポイント
・システムトレードの自作に必要なモノ
・システムトレードを自作するメリット・デメリット
・システムトレードの自作におすすめのサービス紹介
株やFX、仮想通貨で儲けるために、システムトレードをしてみたいと考えていませんか?
この記事では、システムトレード環境を自作する方法を解説しています。
本記事の対象としている読者は、これからシステムトレードを始めてみたいと考えている人を想定しています。
「他の記事では、レベル高すぎて分かんない・・・・」
こんな感じの人が対象です。
そのため、具体的なプログラミング方法などでなく、システムトレードの自作の概要を解説しています。
はじめまして!マンモスです。
投資歴15年です。
以前は負け続けていましたが、システムトレードの考え方を習得したことで、大きく資産を増やすことができました。
※2021年4月に資産3000万円を達成しました。
そんな私が、「【初心者向け】システムトレードを自作する方法を解説。」を解説します。
システムトレードを自作する方法を解説
システムトレードは大きく分けて2つの構成で成り立ちます。
1つ目はバックテスト環境です。
バックテストでは、過去の価格データより、売買ルールのリスク・リターンなどを明確な数値として判断できます。
つまり、儲かるかどうかが分かります。
バックテストはシステムトレードの要です。
ぶっちゃけると、儲けるためには、次に紹介する自動売買は、さほど重要じゃありません。
2つ目は自動売買の環境です。
自動売買とは、一定の売買ルールに基づいて、自動で発注などをしてくれる機能です。
近年では、様々な注文方法も自動売買と呼ばれたりしますが、それとは別物です。
逆指値注文とか、トレーリングストップ注文とかではなく、投資戦略そのものの自動化のことです。
システムトレードの自作では、これら2つを用意する必要があります。
ただし、自動売買することが必ずしもシステムトレードではありません。
広義の意味では、売買ルールを機械的に注文できればいいため、自分で通常注文しても問題ありません。
つまり、バックテスト環境だけでも準備すれば、システムトレードは可能です。
また、単に自動売買したいだけであれば、自動売買環境の構築だけでも問題ありません。
しかし、儲けるためにはバックテストすることが重要なため、当サイトでは自動売買だけするのは推奨しません。
※システムトレードで勝てない理由は、バックテストに起因することがほとんどです。
バックテスト環境を構築する
バックテスト環境は価格データさえあれば、簡単に構築できます。
というより、価格データに対してのシュミレーション結果さえ見れればいいため、Excelでも問題ありませんし、コマンドプロンプトを使った簡単なプログラミングでも問題ありません。
以上のことより、バックテスト環境に関しては、初心者でも十分に自作可能です。
また、プログラミングができなくても、Excelのif関数などを駆使してバックテストすることもできます。
上記のことから、無理にデスクトップアプリなどを作成する必要もありません。
ただし、売買ルールの最適化をしたり、大量のデータを手間をかけずに取り扱うのであれば、プログラミングが必要です。
※以下の記事はシステムトレードにおすすめの本を厳選しています。
プログラミングの入門書や、Excelでバックテスト環境を構築するための本なども解説しているため、紹介している本を読めば、システムトレード環境の構築が可能です。
自動売買の環境を構築する
自動売買環境の構築はプログラミング必須になります。
バックテストした売買ルールに対して、リアルタイムでエントリーシグナル(仕掛けタイミング)、イグジットシグナル(手仕舞いタイミング)が出ていないか監視し、シグナルがでたら自動で注文をするようプログラムを組む必要があります。
この点、プログラミング未経験者には難しいかもしれません。
自動売買するためには、完全にゼロから自動売買のロジックを自作してもいいのですが、証券会社、FX業者、仮想通貨業者などが用意しているAPIを使うのが便利です。
システムトレードの自作に必要なモノ
システムトレードの自作に必要なモノは3つあります。
②口座アカウント情報の取得手段
③発注手段
この3つはシステムトレードを自作するうえで必須になります。
①売買ルールのシュミレーション(バックテスト)に必要な過去の価格データ取得手段。
②リアルタイムでエントリーシグナル、イグジットシグナルを出すための、リアルタイム価格情報の取得手段。
③発注処理前に口座内の資金を確認して適量の注文を出すための、口座アカウント情報の取得手段。
④自動売買のための発注処理の手段。
こんな感じで必要になります。
この3つを入手するための一番手っ取り早い手段は、システムトレードツールを使うことです。
例えば、メタトレーダーなどが有名です。
メタトレーダーはリアルタイムの価格データ取得、証券会社、FX業者との連携もできます。
また、独自のプログラミング言語も実装しており、優れたシステムトレードツールです。
必要なモノ① 価格データの取得手段
バックテスト、自動売買どちらにも必要なモノが価格データの取得手段です。
単にバックテストだけであれば、リアルタイムで価格データを取得する必要はありません。
しかし、自動売買するのであれば、リアルタイムの価格データを取得する手段が必要になります。
過去の価格データを取得する手段は、CSVファイルのダウンロード、スクレイピングなど、いくらでもあります。
※当サイトでは、以下の記事で解説しています。
もっと他の方法もあるため、ネットで検索してみましょう。
リアルタイムの価格データの取得には、証券会社、FX業者、仮想通貨業者などが用意しているAPIの機能に大抵含まれています。
必要なモノ② 口座アカウント情報の取得手段
自動売買する場合、口座のアカウント情報を取得しなければいけません。
なぜなら、売買するにあたり、口座にいくらの資金があるか?、などの情報が必要になるからです。
こちらについては、プログラミングして口座のデータを取得するプログラムを作るか、APIを使って取得する必要があります。
必要なモノ③ 発注手段
こちらも口座アカウント情報の取得手段と同じで、APIを使うことで簡単に処理できます。
発注処理にミスがあっては大変なため、基本的にはAPIで信頼性の高い処理をするようにしましょう。
システムトレードの自作するメリット
システムトレードを自作するメリットは下記の2つです。
②拡張性が高い。
メリット① 低コストで運用できる
システムトレードツール使った運用の場合、コストがそれなりにかかります。
特に、株でシステムトレードをしたいという場合、月1万円程度のコストがかかります。
トレード自体のコストが増えるため、利益率の高い売買ルールを作るか、それなりの資金を投じる人でなければ、コスト分の回収すらできない状況になりえます。
システムトレードの自作であれば、このようなコストはかかりません。
もしくは格安でシステムトレード環境の構築ができます。
コストを気にしてハイリスクな売買ルールの運用をする必要もないため、自分のリスク許容度に合った売買ルールを運用できます。
メリット② 拡張性が高い
システムトレードツールを使う場合、やれることの幅は広いのですが、それでも限界はあります。
例えば、知りたいリスク指標を算出できなかったり、マネーマネジメントが限定されいる、などです。
システムトレードの自作であれば、プログラミングしていくらでも必要な機能の拡張、必要な計算ができます。
市販のツールでできないことや、妥協できない部分はシステムトレードで自作するのがいいでしょう。
システムトレードの自作するデメリット
システムトレードを自作するデメリットは下記の2つです。
②信頼性に欠ける。
デメリット① プログラミングに手間がかかる
一番のデメリットはプログラミングに手間がかかることです。
システムトレードの環境をいったん構築してしまえば、あとは売買ルールの作成やバックテストに集中できますが、そこまでの手間はかなり掛かります。
また、プログラミング未経験であれば、まずはプログラミング学習からスタートすることになります。
プログラミングは向き、向きもあるため、誰にでも簡単にできるというわけではありません。
デメリット② 信頼性に欠ける
自身でシステムトレードの自作する以上、完璧にプログラミングしたと思っても、信頼性に欠ける部分はでてきます。
例えば、売買ルールのロジックを完璧にプログラミングしたと思っても、何かのバクで表面上かなりのパフォーマンスになってしまう、などです。
実際には損失ばかりの売買ルールでも、プログラミングミスでこのようなことが起こりえます。
そのため、デバックを徹底的にする必要があります。
※デバックとはプログラムのバグを見つけて修正する作業のこと。
上記のことは、私の実体験です。
実売買の前に気づきましたので損はしませんでしたが、危ないところでした・・・
システムトレードの自作におすすめのサービス紹介
システムトレードの自作におすすめのサービスを紹介します。
株のシステムトレードを自作する場合
株のシステムトレード環境を自作したい場合、auカブコム証券が提供する「kabuステーションAPI」を使うか、岡三オンライン証券が提供する「岡三RSS」が便利です。
どちらも自動売買が可能です。
また、バックテストするだけであれば、Excelさえあれば可能です。
※株価の時系列データの入手方法は、下記の記事をご覧ください。
※Excelでバックテストする方法を下記の記事で解説しています。
FXにのシステムトレードを自作する場合
FXの場合、メタトレーダーを使うのがおすすめです。
メタトレーダーは無料のデスクトップソフトで、独自のプログラミング言語MQL4を搭載しています。
この言語はシステムトレードに特化したプログラミング言語のため、バックテストの開発も比較的簡単です。
また、対応の証券会社、FX業者での自動売買も可能です。
FXのシステムトレード環境としてはかなりメジャーなため、書籍やブログでの解説など情報も豊富です。
仮想通貨のシステムトレードを自作する場合
仮想通貨でも株同様に、APIを使った自動売買環境を構築する必要があります。
ただ、株では有料のAPI接続も、仮想通貨業者では無料で提供しているため、コストを掛けずに自動売買が可能です。
バックテストについては株同様に、価格データさえ入手すれば、Excelでも問題ありません。
まとめ
「【初心者向け】システムトレードを自作する方法を解説。」のまとめです。
→ただし、自動売買に拘らなければ、バックテスト環境のみでOK。
・システムトレードの自作には「価格データの取得手段」と「口座アカウント情報の取得」、「発注手段」が必要。
・メリットは、「低コストで運用できること」、「拡張性が高いこと」
・デメリットは、「プログラミングに手間がかかること」、「信頼性に欠けること」