カルマンフィルターを活用したノイズ除去トレンド戦略

テクニカル分析
スポンサーリンク
【DMM FX】入金

カルマンフィルターとは何か

カルマンフィルターは、本来はロケットや航空機の位置や速度を推定するために使われてきた数学的なアルゴリズムです。観測データには必ずノイズが含まれますが、そのノイズをうまく取り除きながら「本当の値(状態)」を推定するための仕組みがカルマンフィルターです。投資の文脈では、この「本当の値」を価格のトレンドや内在する値動きの方向として解釈し、売買判断に役立てます。

チャート上のローソク足や終値は、一見すると滑らかなトレンドを描いているように見えますが、実際にはニュースや大口注文、アルゴリズム取引などさまざまな要因が混ざり合った「ノイズだらけの観測値」です。カルマンフィルターは、こうしたノイズを前提とした数学モデルを使って、ノイズの奥にある滑らかなトレンドを推定しようとするアプローチです。

なぜ移動平均ではなくカルマンフィルターなのか

多くの個人投資家は、トレンドを見るために移動平均線(SMAやEMA)を使います。移動平均は計算が簡単で視覚的にも分かりやすく、非常に強力なツールですが、根本的な弱点として「遅行性」と「固定ルール」があります。一定期間の平均を取るだけなので、急なトレンド変化に対して追随が遅れたり、ボラティリティが変化しても計算ルールは変わりません。

カルマンフィルターは、過去データと現在の観測値を統計的に組み合わせて、「今の状態はこうなっているはずだ」という推定を逐次更新していきます。価格の変動が穏やかなときと荒れているときで、観測値をどの程度信じるか(重み付け)が自動的に変わるのが特徴です。これにより、移動平均線に比べて遅行が少なく、かつノイズに過剰反応しにくいといった特性を持たせることができます。

カルマンフィルターの直感的なイメージ

カルマンフィルターを難しく感じる一番の理由は数式です。しかし、直感的なイメージに落とし込むと次のように考えることができます。

1つめの考え方は、「価格の動きには本当のトレンドがあり、それをノイズが覆い隠している」というイメージです。本当のトレンドは滑らかな曲線ですが、私たちが見ている終値は、その曲線の周りにランダムに散らばった点です。カルマンフィルターは、散らばった点の軌跡から元の滑らかな曲線を推定しようとします。

2つめの考え方は、「前回までの推定値」と「今回の観測値」を、状況に応じた重みで混ぜ合わせる操作を毎バー繰り返しているというイメージです。相場が落ち着いているときは観測値を比較的強く信じ、相場が荒れているときは観測値を疑って、むしろ過去の推定値を重視するような動きを自動で行ってくれます。

カルマンフィルターと移動平均の違い

移動平均との違いを整理しておくと、カルマンフィルターの特徴が分かりやすくなります。

第一に、移動平均は「一定期間の単純な平均」ですが、カルマンフィルターは「確率モデルに基づく推定」です。移動平均線は期間を変える以外に調整余地があまりありませんが、カルマンフィルターは「どのくらいノイズが多い世界か」「本当のトレンドがどのくらい滑らかに変化する世界か」をパラメータで表現できます。

第二に、移動平均は過去データだけを使いますが、カルマンフィルターは「直前までの推定値」と「最新の観測値」を組み合わせる逐次処理です。新しいバーが出てくるたびに推定値をアップデートしていくので、将来のデータに依存しませんが、その時点で利用できる情報を最大限活用する構造になっています。

第三に、移動平均は突然のショックに対して一律に反応しますが、カルマンフィルターは「これは一時的なノイズか、それともトレンドの変化か」を内部の誤差構造から判断し、反応の仕方を変えます。このため、ダマシの多い相場環境で移動平均よりもきれいなトレンドラインを描けるケースがあります。

投資でカルマンフィルターをどう使うか

カルマンフィルターを投資に使うとき、難しい数式をすべて理解する必要はありません。重要なのは「何を推定したいのか」をはっきりさせることです。代表的には次の3つがあります。

1つ目は、「ノイズを取り除いた価格(スムーズなトレンド)」です。終値にカルマンフィルターをかけて得られた滑らかな線を、移動平均線の代わりとして使います。これに連動してトレンドフォローや押し目買い・戻り売りの判断を行います。

2つ目は、「価格の傾き(トレンドの強さ)」です。カルマンフィルターで推定したトレンド線の傾きを計算し、その傾きが一定以上のときだけポジションを取るという使い方ができます。これは「角度を見てトレードする移動平均線」に近い発想です。

3つ目は、「ボラティリティやノイズの大きさ」です。カルマンフィルターは推定値だけでなく、どれくらい不確実性が残っているか(誤差の分散)も計算します。この不確実性をボラティリティやノイズの指標として解釈し、ポジションサイズの調整に活用することができます。

具体例1:カルマンフィルター版トレンドフォロー

株式の日足チャートを例に考えます。通常であれば20日移動平均線を見ながら、「終値が移動平均線を上回っている間は上昇トレンド」といった判断をするところを、終値にカルマンフィルターをかけた滑らかなトレンド線を基準に置き換えます。

例えば、次のようなシンプルなルールを考えます。

・終値がカルマンフィルター線より上にあり、かつカルマンフィルター線の傾きがプラスのときに買いポジションを保有する。
・終値がカルマンフィルター線を明確に下抜け、かつカルマンフィルター線の傾きがフラットまたはマイナスになったら手仕舞いする。

移動平均線で同じことを行うと、急落局面で何度もダマシのシグナルが出ることがありますが、カルマンフィルター線はノイズをある程度無視してくれるため、シグナルの頻度が適度に抑えられる可能性があります。その結果としてトレード回数が減り、スプレッドや手数料の影響も小さく抑えられます。

具体例2:ノイズの大きさを利用したポジションサイズ調整

カルマンフィルターでは、「どのくらい観測値が本当の値からズレていそうか」という誤差の大きさを同時に推定します。これを、相場環境の荒れ具合の指標として利用することができます。

例えば、FXの1時間足でカルマンフィルターを走らせ、ノイズの推定値が小さいときには相場が落ち着いており、ノイズの推定値が大きいときには相場が荒れていると解釈します。そのうえで、次のようにポジションサイズを変化させます。

・ノイズが小さいとき:トレンドフォロー戦略のポジションサイズをやや大きめにする。
・ノイズが大きいとき:ポジションサイズを半分程度に抑えるか、そもそもエントリーしない。

これにより、ボラティリティが高くダマシが多い局面で過度に損失を出すことを避け、比較的落ち着いたトレンド局面に資金を集中させることができます。従来のATRなどでも似たような発想は実現できますが、カルマンフィルターの場合は「トレンド推定」と「ノイズ推定」を一体として扱える点が特徴です。

具体例3:レンジブレイクのフィルタリング

レンジ相場が続いたあとに価格がレンジをブレイクした場合、それが本物のブレイクなのか、それとも一瞬だけ飛び出したノイズなのかを見極めるのは難題です。カルマンフィルターを利用すると、次のような考え方ができます。

・価格がレンジ上限をほんの少しだけ超えても、カルマンフィルターの推定トレンドがまだレンジ内に留まっている場合、そのブレイクはノイズの可能性が高いと判断する。
・価格がレンジ上限を超え、それに追随してカルマンフィルターのトレンド線も徐々に上向きかつレンジ外へと動き始めた場合、本格的なトレンド転換の可能性が高いと判断する。

このように、レンジブレイクのシグナルに対してカルマンフィルターの動きを確認することで、エントリータイミングを絞り込み、ダマシブレイクでの無駄な損失を減らすことができます。

個人投資家がカルマンフィルターを使うための現実的ステップ

カルマンフィルターは数学的には高度ですが、個人投資家が活用するハードルは以前より大きく下がっています。重要なのは「いきなり完璧なモデルを作ろうとしないこと」です。現実的には次のステップで進めるのが無理のないアプローチです。

第一ステップは、「カルマンフィルターで平滑化された価格線を表示できる環境を用意すること」です。MQL4でインジケーターとして実装されたサンプルコードや、オープンソースのスクリプトを活用すると、ゼロから数式を書く必要はありません。チャート上にカルマンフィルター線を重ねた状態で、移動平均線と見比べてみるだけでも、どの程度ノイズが抑えられているかを直感的に理解できます。

第二ステップは、「すでに使っているルールにカルマンフィルターを1つだけ組み込んでみること」です。例えば、今まで20日移動平均線の上抜けでエントリーしていたところを、「終値が20日移動平均線とカルマンフィルター線の両方を上回ったとき」に限定してみる、といった形です。これにより、既存の戦略を大きく変えずに、カルマンフィルターによるノイズ除去の効果をテストすることができます。

第三ステップは、「バックテストで数字を確認すること」です。過去データを使って、カルマンフィルターを組み込んだ場合とそうでない場合で、勝率、プロフィットファクター、ドローダウンなどの指標がどう変化するかを比較します。改善が確認できるなら、少額でリアル運用に移行し、実際のスリッページやスプレッドの影響も含めて検証を続けます。

どの市場や時間軸に向いているか

カルマンフィルターは「ノイズの多い観測値から滑らかな真の状態を推定する」ためのツールなので、特にノイズが多い市場や時間軸に向いていると考えられます。具体的には、次のようなケースが候補になります。

・FXの5分足や15分足など、短期足でのトレンドフォローやスキャルピング寄りの戦略。
・個別株の1分足〜5分足で、板の薄い銘柄を扱うときのノイズ除去。
・暗号資産の1時間足〜4時間足のように、24時間取引で常にニュースやフローの影響を受けやすい市場。

一方で、週足や月足といった長期足では、そもそもノイズの影響が相対的に小さくなるため、カルマンフィルターのメリットはやや薄れます。その場合は、よりシンプルな移動平均線やトレンドラインの方が扱いやすいかもしれません。

よくある誤解と落とし穴

カルマンフィルターは高度な数学が背景にあるため、「これを使えば一気に勝てるようになるのでは」と期待してしまいがちです。しかし、実際にはどのようなツールもあくまで「価格を解釈するためのレンズ」に過ぎません。いくつか典型的な落とし穴を挙げておきます。

1つは、「パラメータをやたらと細かく調整しすぎること」です。カルマンフィルターはノイズの大きさやトレンドの変化のしやすさをパラメータで指定できますが、過去データに合わせて細かく調整しすぎると、いわゆるオーバーフィットに陥ります。過去ではきれいに機能しているように見えても、将来の相場では通用しない可能性が高くなります。

もう1つは、「カルマンフィルターの線だけを見て判断してしまうこと」です。どれほど高度なフィルターであっても、サポート・レジスタンス、出来高、ニュース、市場全体のセンチメントなど、他の情報を無視してよいわけではありません。カルマンフィルターは、あくまで全体の判断材料の1つとして位置づけるのが現実的です。

最後に、「計算が複雑だから優れているはずだ」という思い込みも危険です。シンプルな移動平均クロスやボリンジャーバンドでも、一貫したルールと適切なリスク管理があれば十分に戦えます。カルマンフィルターを使うかどうかは、「自分の戦略にとってノイズ除去がどれだけ重要か」という観点から判断するのがよいでしょう。

シンプルに始めるための最小構成

カルマンフィルターをこれから取り入れるのであれば、最初は次のような最小構成を目指すと取り組みやすくなります。

・終値に対してカルマンフィルターを適用し、平滑化された価格線を表示する。
・その線を20日などの中期移動平均線と並べて表示し、形の違いを目視で確認する。
・既存のトレンドフォロー戦略のエントリールールに、「カルマンフィルター線の傾きが同じ方向であること」という条件を1つだけ追加する。

この程度であっても、バックテストを行うと「トレード回数が減りつつも、ドローダウンが緩和される」といった変化が見られるケースがあります。重要なのは、いきなり複雑なモデルを構築するのではなく、自分の既存戦略と噛み合わせながら、少しずつカルマンフィルターの特性を体感していくことです。

まとめ:カルマンフィルターは“賢い移動平均”として捉える

カルマンフィルターは、数学的には高度なアルゴリズムですが、投資の現場では「相場環境に応じて賢く振る舞う移動平均線」として捉えると分かりやすくなります。ノイズの多い市場や短期足で、ダマシをある程度避けながらトレンドに乗る工夫として、1つの選択肢になり得ます。

大切なのは、カルマンフィルターそのものを目的にしないことです。自分が取りたいリスク、狙いたい時間軸、得意とするパターンを明確にしたうえで、「ノイズをどう扱うか」という課題に対する具体的な解決策の1つとしてカルマンフィルターを位置づけることが重要です。シンプルな移動平均線や他のテクニカル指標と組み合わせながら、小さく試し、検証し、自分のスタイルに合うかどうかを見極めていくことで、カルマンフィルターは有効な武器になっていきます。

p-nuts

お金稼ぎの現場で役立つ「投資の地図」を描くブログを運営しているサラリーマン兼業個人投資家の”p-nuts”と申します。株式・FX・暗号資産からデリバティブやオルタナティブ投資まで、複雑な理論をわかりやすく噛み砕き、再現性のある戦略と“なぜそうなるか”を丁寧に解説します。読んだらすぐ実践できること、そして迷った投資家が次の一歩を踏み出せることを大切にしています。

p-nutsをフォローする
テクニカル分析
スポンサーリンク
【DMM FX】入金
シェアする
p-nutsをフォローする

コメント

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