売買ルールを決めてその通りに売買することをシステムトレードといいます。それに対してその都度トレーダーが買いか売りかを判断しながらトレードすることを裁量トレードと言います。
システムトレーダーは、自分が作った売買ルールが現実に儲かりそうかどうかを、過去の相場で検証します。これをバックテストと言います。バックテストはシステムトレーダーにとっては必須の作業です。
昔はノートに手書きで仮想売買結果を記載して、バックテストをしていた時代もありましたが、コンピューターが普及したおかげで、誰でも簡単に、膨大な量のバックテストを行うことができるようになりました。
コンピューターを使ったバックテストのツールとしては、エクセルのような表計算ソフトも使えますし、Python(パイソン)やRのようなデータ分析系のコンピューター言語を使うことも出来ます。株価チャートのソフトに組み込まれたバックテスト専用のプログラミング言語もかなり昔からあり、なかでも有名なのは、米国の証券会社トレードステーション(Trade Station)のバックテスト用のコンピューター言語「EasyLanguage」で、1987年からあったそうです。他にもいろんなバックテスト用のプログラミング言語とプラットフォームが生まれ、プログラム言語を使わないノーコードのソリューションもいくつも誕生しました。
このブログで紹介するTradingViewは、PineScriptと呼ばれる専用のプログラミング言語でコードを書いて、誰でも無料でバックテストすることが出来ます。
米国株だけでなく世界各国の株式市場、先物、FX、仮想通貨のマーケットデーターがカバーされていて、特別なソフトウェアーをインストールすることなく、ブラウザがあればすぐに使えてしまうのが、使いやすさのポイントです。チャートの描画、バックテスト、バーチャルトレードだけでなく、個人トレーダーが意見交換できるSNSコミュニティーもあり、人気が高いサイトです。
Pine Script というTradingView用のプログラミング言語を覚えなくてはなりませんが、プログラミング言語としてはかなり簡単にできていて、私のような素人でも短期間でコードを書けるようになりました。ちなみに私は、子供の頃は算数で赤点とったり、ルービックキューブの6面が出来なかったくらいの凡人ですが、それでもちゃんとプログラミング出来るようになるので安心してください。汎用的なプログラミング言語であるPythonで使われるTa-Libというライブラリー(関数のパターン)がそのままPine Scriptでも使われているので、将来Pythonを学ぼうとする際にも役にたつと思います。
TradingViewは本当に優れモノだと思いますが、基本的には個人トレーダー向けのツールで、ファンドを運用するプロトレーダー向けのツールではありません。機関投資家は、上場廃止になった会社も含めた数千銘柄もの株で、ポートフォリオを組んで大量のデータを処理してバックテストを行います。それに対してTradingViewでは1銘柄ごとの簡易テストになり、これがTradingViewでできるテストの限界です。
その際に注意しなくてはならないのは「生存者バイアス」(survivor’s bias)です。TradingViewでバックテストできるのは生き残っている会社の株だけで、過去に倒産してしまった会社の株価のバックテストはできません。なので、現実より楽観的なテスト結果になってしまう可能性があるのです。
それでも、個人がトレードのコンセプトを検証するには十分使えると思っています。どんなに厳密なバックテストを行っても未来は過去と同じにはなりません。バックテストに完璧性を求めたところで、過去のテスト結果と現実のライブのトレードは違うのが当たり前、という割り切りも大切だと思います。
この生存者バイアスについては、後日また詳しく書きたいと思います。また、FXや先物は「生存者バイアス」はあまり関係がありません。
それよりも、誰もがブラウザー上で無料でバックテストできてしまう手軽さがTradingViewの最大の利点だと思っています。
[…] 1.なぜ売買ルールをつくるのか2.システムを作るツール3.TradingViewを表示する4.チャートを表示する5.コードとは6.PineSriptでコードを書く基本7.移動平均のコードを書く8.変数を使って移動平均をプロットする。9.移動平均期間を変えられるようにする。10.変数の種類と入力(int型、float型)11.買いシグナルをプロットする12.移動平均トレードをバックテストするコードを書く […]