システムトレードを自作したいけど、どのプログラミング言語で作ればいい?
簡単なプログラミング言語って何?
この記事では、上記のような疑問にお答えします。
本記事のポイント
・それぞれの言語の特徴、難易度、おすすめの理由
・システムトレードのためのプログラミング学習方法
本記事では、システムトレードを自作したい人に向けて、おすすめのプログラミング言語を解説しています。
特に、プログラミング未経験者でも分かり易いように特徴や難易度を解説しています。
これからプログラミングを駆使してシステムトレードを自作したい人には、必見の記事となっています。
はじめましてマンモスです。
投資歴15年目になりました。
プログラミング知識ゼロから、システムトレードを自作できるようになった経験を活かし、この記事を書いています。
システムトレードにおすすめのプログラミング言語3選
おすすめの言語は「VBA」、「Python(パイソン)」、「MQL4」の3つです。
なかでも、「VBA」は株、FXのシステムトレードを自作したい方に一番おすすめの言語です。
理由は「圧倒的に簡単だから」です。
また、学習するうえで必要な教材、情報も非常に多く、短期間で習得することができます。
「Python(パイソン)」はVBAほどではありませんが、プログラミング言語の中では比較的簡単な部類に入ります。
近年、非常に人気のプログラミング言語であり、シンプルな構文が特徴です。
「MQL4」は上記2つの言語と違い、システムトレード専用のプログラミング言語です。
メタトレーダー4というFX用ソフトの機能を拡張できるのが特徴です。
※一部の株も対応しています。
それでは、詳しく解説していきます。
システムトレードにおすすめのプログラミング言語 【VBA】
VBAの特徴について解説します。
VBAの特徴
Visual Basic for Applicationsの略です。
Microsoft Office製品のExcel、Word、Accessなどで、プログラミングして機能拡張ができます。
よくExcelなどで「マクロを使う」と言ったりしますが、マクロとは「処理を自動化」したものであり、マクロを作るためのプログラミング言語がVBAです。
※システムトレードの自作は、Office製品のExcelを使用します。
VBAの難易度
プログラミング言語の中で、圧倒的に簡単です。
言語自体の簡単さもさることながら、プログラミング+Excel自体の機能を使うことができます。
そのため、システムトレードの自作に必要な全ての処理をプログラムする必要がなく、どうプログラミングしてよいか分からず、自作できない部分はエクセルの機能でカバーできます。
また、プログラムを作るうえで必要になるのが開発環境と実行環境です。
他言語ではネットなどからインストールし、自分で環境を構築する必要があります。
しかし、VBAならMicrosoft Office製品があれば、ソフトの設定を変更するだけですぐに利用可能です。
他言語の場合、自分で環境構築をします。
最悪の場合、この環境構築で挫折する人もいます。
VBAならその心配がありません。
VBAがおすすめの理由
VBAがおすすめな理由は「圧倒的な簡単さ」です。
特に、プログラミング未経験の人におすすめです。
理由として、
・情報が豊富
・ベースがExcelのため、とっつきやすい
・プログラミングして、結果を確認して、バグを修正するという、一連の流れが圧倒的に楽
他のプログラミング言語の場合、プログラミングして、結果を見て、修正するという一連の流れが、慣れるまで結構大変です。
VBAの場合、Excelでその一連の流れを視覚的に見ることができて楽です。
また、完成したデスクトップアプリをベースにシステムトレードを構築できる点も、おすすめな理由の1つです。
プログラミング言語によっては、自身でGUIに関するプログラミングをしなければいけないため、その分手間がかかるためです。
Graphical User Interfaceの略です。
スマホやパソコンで「ボタン」をクリックすれば、何かの処理が実行されたり、
マウスで何かを選択できたり、といった視覚的に分かり易いインタフェースのことです。
今、この記事を表示しているのも「GUI」アプリによるものです。
プログラミング未経験なら、VBAでプログラミングってどんな感じなのか?、ということを体験してみるのがおすすめ。
VBAに慣れて、物足りなくなったら他の言語に移行すればOK!
他の言語でも、基本的に覚えることは一緒のため、VBAで覚えたことは無駄にならないから安心してください。
※プログラミング未経験者向けに、以下の記事でVBAの基本を解説しています。
システムトレードにおすすめのプログラミング言語 【Python】
Pythonの特徴について解説します。
Pythonの特徴
最近、非常に人気のプログラミング言語です。
構文自体がすっきりしており、少ないコード数でプログラムを作成できます。
構文が単純なため、初心者でも覚えやすいです。
また、ライブラリと呼ばれるプログラミングで役立つ機能が充実しているのも特徴です。
もとからある機能(ライブラリ)を組み込んでプログラムすることにより、効率的にプログラムを作ることができます。
ライブラリを使用し、ネット上から簡単に株価データ取得も可能なため、システムトレード自作に向いたプログラミング言語と言えます。
Pythonの難易度
VBAよりは難しくなりますが、プログラミング言語のなかでは簡単な部類です。
構文がVBAよりシンプルで、初心でも他言語よりプログラムの構造が理解しやすいです。
実行環境、開発環境は自身で用意する必要があり、ネット上からダウンロードすることで無料で環境構築できます。
マイナーなプログラミング言語と違い、書籍やネット上でいくらでも情報が見つかるため、その点も難易度を下げているポイントです。
Pythonがおすすめの理由
構文のシンプルさと、ライブラリの豊富さがおすすめの理由です。
ライブラリと言われても、プログラミング未経験者にはぴんとこないかもしれませんが、要は「既に誰かがプログラミングしてくれているから、その機能をそのまま転用できる」くらいに考えておけば問題ありません。
また、Pythonはデータ分析が得意な言語でもあります。
膨大なデータを扱うシステムトレードには、まさにうってつけとも言える言語です。
さらにPythonと言えば、機械学習です。
機械学習で価格変動を予測する、なんて使い方もできるため、システムトレードに機械学習を組み合わせたい人はPythonで自作しましょう。
これらの理由から、システムトレード自作にはうってつけのプログラミング言語です。
システムトレードにおすすめのプログラミング言語 【MQL4】
MQL4の特徴について解説します。
MQL4の特徴
MQL4はメタトレーダー4というFX用ソフトの機能を拡張できる、システムトレード専用のプログラミング言語です。
これまで紹介してきた「VBA」、「Python」は標準的なプログラミング言語です。
たいして、MQL4はシステムトレード専用の言語です。
MQL4はシステムトレードに必要な多くの機能を有しています。
例えば、価格データから算出される移動平均などの値を、簡単に取得できるというような機能もあります。
他言語ではこのような機能はなく、自作の必要があるため、MQL4であればプログラミングの効率化ができます。
また、システムトレード専用のソフトを使用するため、チャートなどが既に準備されており、GUIにかかわる部分を自作しなくてよいのも特徴です。
MQL4の難易度
Python同様にVBAよりは難しくなりますが、比較的簡単です。
FXのシステムトレーダーに人気の言語であり、書籍やネット上の情報も豊富です。
開発環境、実行環境も専用のソフトを使用するため、簡単に構築できるでしょう。
ただし、MQL4はC++というプログラミング言語をベースに開発された言語であり、Pythonに比べると構文が複雑になります。
その点は注意しましょう。
MQL4がおすすめの理由
システムトレード専用言語であり、システムトレード専用ソフトを使えることがおすすめの理由です。
環境構築からシステムトレード用ソフト導入まで、メタトレーダー4をインストールするだけで完結するため、初心者がシステムトレードをはじめる敷居が非常に低いです。
また、メタトレーダー4は無料です。
上記の理由が「MQL4」をおすすめできる理由です。
システムトレードのためのプログラミング学習方法
システムトレードのためのプログラミング学習は、とりあえずプログラミングの入門書を読むところから始めましょう。
入門書を読み終えたら、次はバックテストのプログラムを作ってみましょう。
※バックテストは過去の価格データにたいする、売買ルールのシュミレーションのことです。
バックテストはシステムトレードの基本であり、プログラミング自体もさほど難しくありません。
どの言語を選んでも、基礎知識だけでバックテストプログラムは作れてしまうため、まずはバックテストから始めましょう。
また、初心者がいきなり自動売買などを構築するのは大変なため、プログラミングの練習がてら、バックテストプログラムを作ってみましょう。
※下記の記事にプログラミング言語入門書をまとめてます。
また、システムトレード入門書などもまとめています。
参考にどうぞ。
入門書レベルであれば、高いお金を払って本を買わなくても、kindle unlimitedで十分です。
既にkindle unlimitedを使っている人は、まずはAmazonで検索してみましょう。
※kindle unlimitedとは、amazonの電子書籍読み放題サービスのことで、初めてご利用の方は30日間の無料体験が可能です。
※期間終了後は月額980円の自動更新になり、いつでもキャンセル可能です。
プログラミング入門書も多数あり、特定の本を購入するより、様々な本を格安で読めるため、おすすめです。
なかには、システムトレードのプログラミングに特化した本も読めるため、非常におすすめのサービスです。
まとめ
私がプログラミング未経験者に一番おすすめしたいのは「VBA」です。
理由は圧倒的に簡単だからです。
まずはVBAから始め、慣れたら必要に応じて他言語を習得すればよいでしょう。
また、プログラミング言語は1つの言語を使えるようになれば、2つ目以降は比較的簡単に習得可能です。
というのも、言語間で構文の差はありますが、だいたい覚えることは一緒だからです。
まずは簡単なものでよいので、VBAでシステムトレードを自作してみましょう。