【研究ノート】ゴールデンクロス、デッドクロスが役に立たないことを実証する(前編)-信号処理屋による工学的アプローチ-

この記事は約10分で読めます。

忙しい人のための3行まとめ

  • 実験の結果、ゴールデンクロスとデッドクロスは再現性がなく長期的には損失
  • FIRフィルタであり特定の周波数を取り出しているだけ
  • あらゆるテクニカル指標はディジタルフィルタであり未来を予測する能力はない

※本ブログは私の投資結果および研究成果を記録するものであり、特定の投資商品や銘柄を推奨するものではありません

はじめに

プロフィールに記載ある通り、私は某半導体銘柄の中の人として、データ分析(を行う自動システムの開発)を仕事にしています。

そこで今回は「ゴールデンクロスとデッドクロスは本当に有効なのか」をテーマに私が仕事で使っている技術をフル活用して検証を行いました。その研究結果について、紹介します。

実験の概要

まず、過去のある期間20年間の日経平均株価の始値と終値のデータを取得しました。インターネットで入手できるデータセットはいくつかありますが、その中で最も長期間をカバーしているものを選びました。

次に、このデータをもとに5日、10日、15日といった短期の移動平均から、最長200日まで、合計13種類の移動平均線を作成します。これらを組み合わせることで、ゴールデンクロスとデッドクロスのパターンを作ることができますが、可能な限り全ての組み合わせを列挙すると78種類になります。

\[_{13}\mathrm{C}_{2}=\frac{_{13}\mathrm{P}_{2}}{2!}=\frac{13 \times 12}{2}=78\]

そして、この組み合わせに対して、次のような単純なルールを設定しました。

  • 終値でゴールデンクロスが発生したら翌日の始値に買い
  • 終値でデッドクロスが発生したら翌日の始値で売る

このルールを78通りすべてに適用し、20年間のシミュレーションを行うという実験です。いわば78種類の「ゴールデンクロスファンド」を同時に運用したことになります。要するに株式投資のバックテストです。

バックテストというとFX投資のMT4が有名ですが、このような任意のデータのバックテストをやるにはプログラムの知識が必要です。とはいえ私にとっては職業柄、造作もないことで、出張で乗った飛行機の中でプログラムをさくっと書いて完成です。

結果と観察

結果は以下のようになりました。

上のグラフで一番目立つ赤い線は日経平均の20年間の値動きそのものを表しています。それ以外の線は様々な組み合わせでの投資成績を表しています。数が多すぎて凡例が全て表示しきれていないことをご容赦ください。

最も好成績を示したのは、茶色のグラフで表している以下のパターンでした。

15日移動平均線が20日移動平均線を上回ったら翌日買い、下回ったら売る

これを「15-20ファンド」と呼びましょう。この組み合わせは20年後の時点で最も収益率が高くなっていました。

しかし、この「最強パターン」は安定しているわけではありません。言い換えると再現性がない。
というのも、ちょっと時計を戻して中間の10年経過時点を見ると、オレンジ色の「15日線が100日線を上回る」パターンである「15-100ファンド」が最も成績が良かったのですが、「15-100ファンド」はその後10年間は全く利益を出せませんでした。しかも、その間に日経平均そのものは大きく上昇しており、単純にインデックスを買って20年間保有(いわゆるガチホ)していた方がはるかに利益を上げることができたのです。

唯一優位性が言えるのは日経平均が大きく下落しているタイミングで、多くの「ゴールデンクロスファンド」がインデックスに勝っています。しかしその理由はデッドクロスで株を売ってしまったからにすぎず、同様の理由で株価の上昇時に買うのが遅れます。

このように、ある期間ではうまくいっても、次の期間ではまったく通用しないというのが実情です。20年間で一見勝っているように見える組み合わせも、今後どうなるかはまったく分かりません。これは偶然の結果に過ぎず、数学的にも再現性が無いことが証明できます(これはいずれ別の記事で解説します)。

さらに忘れてはいけないのが、売買を繰り返すことで必ず取引コストが発生します。現在は手数料無料の証券会社も増えていますが、実際には売買の際に「板」の上で売り指値と買い指値の間でスプレッド(値差)が存在し、確実に損失となります。

また、ポジションを持っていない期間は配当を受け取ることができません。一方、長期保有では配当分が着実に積み上がるため、見かけ以上に実質的な収益差が開きます。

このグラフはコストも配当も考慮しない最もシンプルなものですので、実際にゴールデンクロスやデッドクロスを用いた売買を行っても、長期的には漏れなく「ガチホ勢」に負けるという結果になるでしょう。

工学的観点から移動平均を考える

次に、この「儲からない理由」を工学の立場から説明します。

移動平均の数式

移動平均は株式の世界で代表的なテクニカル指標として用いられていますが、実は工学の世界でも古くから「ノイズ除去フィルタ」として使われています。

例えばセンサーや通信の分野では、入力信号にノイズが混ざって使いづらい場合、過去一定期間のデータを平均化することで平滑化し、変動をなだらかにする手法が一般的です。この仕組みを更に数学的に一般化して表現したものが、FIRフィルタ(Finite Impulse Response Filter:有限インパルス応答フィルタ)と呼ばれているものです。このようなものを一般に「デジタルフィルタ」と呼びます。ここから移動平均やゴールデンクロスをデジタルフィルタとして考えてみます。

例として5日の移動平均は以下の数式で表現できます。

\[\mathrm{5}{MA}(t)=\frac{1}{5}\sum_{k=1}^{5}x(t-k)=\frac{x(t-1)+x(t-2)+x(t-3)+x(t-4)+x(t-5)}{5}\]

Σ記号とか出てきて面食らいますが、要するに5日分を足して5で割る=平均値を出すだけです。なお終値でゴールデンクロスが形成された瞬間に逆指値注文を出すことはできないため一日遅れて\(x(t-1)\)から始まる点に注意してください。一般の株情報サイトで記述される数式は誤りです

FIRフィルタのできること

FIRフィルタは、過去のデータを一定の重みで加算し、その平均を出すことですが、結果としてこの数式は信号の一部、つまり特定の周波数成分だけを通すように設計されたものです。移動平均線もまったく同じ構造を持っており、単に株価の過去データから特定の周波数帯を抽出しているに過ぎません。したがって、未来を予測する能力はありません。日足の代わりに時間足や分足を使っても全く同じことです。

FIRフィルタの重要な特性として「群遅延」を持ちます。群遅延とはその漢字から概ね想像できる通り、情報が出てくるのが「遅れる」ということで、様々な周波数が通過する際にそれぞれ遅れるために「群遅延」と呼ばれます。つまりFIRフィルタは特定の周波数を取り出すことができる代わりに、情報が出力されるのが遅れます。要するに移動平均は過去の情報を見ています。

余談ですが移動平均は計算がめちゃくちゃ簡単である反面、デジタルフィルタとしての性能が極めて悪いことが知られており、経験の浅いエンジニアが安易に移動平均を使おうとするので私はそのたびに指導しています。移動平均には「偶関数であるため群遅延が一定で波形が崩れない」という優位性はあるものの、ここは信号処理理論のブログではないので深入りはしません。

ゴールデンクロスの数式

さて話を戻すと、ゴールデンクロスやデッドクロスは、短期と長期の2本の移動平均を組み合わせるものです。片方がもう片方を上回るor下回る、という指標は「2つの関数の差」を求めることと等しいので、ゴールデンクロスをFIRフィルタとみなした際の構造を数式で表すと以下のようになります。

「5-10ファンド」の例です。

\(y(t)=\mathrm{5}{MA}(t) – \mathrm{10}{MA}(t)\)
\(=\frac{1}{5} \sum_{k=1}^{5} x(t-k)-\frac{1}{10} \sum_{k=1}^{10} x(t-k)\)
\(=\frac{1}{5} \sum_{k=1}^{5} x(t-k)-\frac{1}{10} \sum_{k=1}^{5} x(t-k)-\frac{1}{10} \sum_{k=6}^{10} x(t-k)\)
\(=\frac{1}{10} \sum_{k=1}^{5} x(t-k)-\frac{1}{10} \sum_{k=6}^{10} x(t-k)\)

この数式を小学生にも分かるような言い方をすると

直近5日を合計して、その前の5日間も合計して、引き算する

という計算です。この関数の出力が正負反転した瞬間が「ゴールデンクロス/デッドクロス」ということです。

こんなのでトレンド転換点が分かると思いますか?

これは2つのFIRフィルタの係数を単純に差し引いた形であり、結果としてバンドパスフィルタ(特定の周波数帯だけを通すフィルタ)と同じような特性を持ちます。つまり、ゴールデンクロスは「株価変動のうち、ある狭い周波数帯の信号」だけを強調して、さらに「群遅延だけ遅らせて」見ることしかできません。上のほうで、株価の下落時に売るが上昇時に買い遅れる、と書きましたがそれはこのバンドパスフィルタの群遅延の働きによるものです。群遅延など難しい言葉を使わずとも、上の数式から分かるように6~10日前の株価平均が比較対象なのですから当然です。

そのため、急激な値動きや長期的トレンドといった高周波・低周波成分はフィルタで取り除かれてしまい、投資判断に必要な情報の大部分はそもそも表示されていません。このように、ゴールデンクロスやデッドクロスは株価のトレンドのような全体的な意味のある動きを捉えているわけではなく、非常に限定的な領域しか見ていません。この構造上の制約こそが、ゴールデンクロスが「効かない」根本的な理由です。

なおエンジニアリングの視点でこの「ゴールデンクロスフィルタ」の周波数特性を評価してみたら驚くほど劣悪だったのですが、ブログの趣旨ではないのでここも割愛します。

もっと良いテクニカル指標

では性能の良いフィルタを用意すれば儲かるのか?とも思いがちですが、それもまた否定されます。100歩譲って取り出した周波数成分が仮に有用なものだったとしても、その群遅延特性により、その変化を知ることができるのは何日も後になります。

ゴールデンクロスに限らず、ほとんどのテクニカル指標はFIRフィルタとして実装されています。
指数平滑移動平均線のように過去のデータを正帰還させたIIRフィルタ(Infinite Impulse Response Filter:無限インパルス応答フィルタ)構造を持つものもありますが、工学的にはIIRフィルタはタップ数の削減という利点しかなく、無限次元のFIRフィルタとして代替可能であることが証明できます。この記事で述べている数学は決して高度な専門分野ではなく、機械工学/情報工学系の学生ならば1~2年生の「離散数学基礎」みたいな単元で微分方程式や線形代数学の延長として学ぶような領域です。まあ、かくいう私も現役学生の時は半分も理解できず、エンジニアになってから必死に勉強して習得したものですので大きな顔はできませんが。

なお、FXではみんな大好きなボリンジャーバンドのようにその数式の中に指数計算が入る場合はFIRフィルタでは記述できませんが、これは工学的には変調回路と呼ばれるもので、特定の周波数帯を別の周波数帯に移動させるものであり何か新しい情報が出てくるわけではありません。

変調と言えばラジオです。例えばAMラジオとFMラジオの違いはその変調方式と周波数帯域ですが、話している人の声は変わりません。ラジオの性能でノイズが減ることこそあるかもしれませんが、内容は変わりません。

買おうとしたときはもう遅い

上記のように、いずれのテクニカル指標も「遅延付きの周波数取り出し装置」であることがお分かりになるかと思います。テクニカル指標を採用しようとして「シグナルが出た頃にはもう株価が上がりきっていた」という経験があるかと思いますが、それはこの周波数取り出しと遅延によるものです。

結論

ゴールデンクロスやデッドクロスなどのテクニカル指標は、工学的にはFIRフィルタであり、それは「遅延付き周波数取り出し装置」つまり過去の株価から一部の情報を遅れて抽出するだけの仕掛けです。

未来を予測する力はなく、長期的なリターンもインデックス運用に劣ります

予告

今回は前編として工学的切り口でテクニカル指標を語りましたが、次回の後編では、なぜこのような役に立たない指標が書籍やネットで、ましてや証券会社の公式情報として紹介され続けるのか?という謎を解明していこうと思います。

本ブログは私の投資結果および研究成果を記録するものであり、特定の投資商品や銘柄を推奨するものではありません。

コメント

タイトルとURLをコピーしました