ふぅ。さて、コーヒーでも飲みながら少し話をしようか。☕️

EA(自動売買)の世界に足を踏み入れたばかりの頃は、多くの人が「ゴールデンクロスで買い、デッドクロスで売り」みたいな、シンプルなルールから始める。もちろんそれも一つの正解だけど、ある程度慣れてくると、ふと疑問に思うはずだ。「そもそも、今の相場は『トレンドが出ている状態』なのか、それとも『ただのノイズ』なのか?」ということに。

多くのインジケーターは、今の状態を「点」で判断しようとする。でも、プロの視点や知的なアプローチとして面白いのが、相場の状態を「面」で捉えるという考え方だ。

今日は、僕が面白いと感じている「コホネン自己組織化マップ(SOM)」を使った戦略について、少し深掘りして話してみようと思う。

相場の「空気感」を地図にするということ

まず「コホネン写像(SOM)」なんて言われると、大学の講義みたいで身構えるかもしれない。でも、考え方は至ってシンプルだ。

例えば、君がワインに詳しいとして、酸味、甘み、香り、渋みといった複数の要素(多次元データ)でワインを分類したいとする。それを、大きなテーブルの上に「似た傾向のワインは近くに、違う傾向のワインは遠くに」配置して、ひとつの地図のように整理する。これがSOMのやっていることだ。

トレードに当てはめてみよう。 僕たちが注目するのは、こんなデータだ。

  • 価格の変化率(ROC): 今、どれくらいのスピードで動いているか
  • RSI: 買われすぎか、売られすぎか
  • ボラティリティ(ATR): 相場のエネルギーがどれくらいあるか

これらをバラバラに見るのではなく、セットにしてSOMという「地図」に放り込む。すると、AIが勝手に「ここは強気トレンドっぽいエリア」「ここはどっちに動くか分からないレンジエリア」というふうに、相場の状態をクラスタリング(グループ分け)してくれる。

ここが知的なポイント: 単一の指標で「RSIが30だから買い」とするのではなく、「今の速度、強さ、変動幅の組み合わせは、過去のデータから見て『強気トレンド』のエリアに属している」と判断する点だ。

戦略の具体的な組み立て方

この「地図」ができれば、エントリーの判断はかなりスマートになる。

僕が考えるこの戦略の流れはこうだ。📊

  1. 地図上の現在地を確認する 現在の市場データ(ROCやRSIなど)をSOMに入力し、今どのノード(地図上の点)に位置しているかを特定する。これを「最良適合ユニット(BMU)」と呼ぶ。
  2. エリア判定を行う そのBMUが、事前に定義した「強気トレンド・クラスタ」に属しているかを確認する。
  3. フィルターでダメ押しする AIが「強気だ」と言っても、念のためEMA(指数平滑移動平均線)を見て、価格がその上にいることを確認する。これで、方向性の裏付けが取れたことになる。

逆に、BMUが「不確実エリア」や「レンジエリア」にいた場合は、潔く静観する。これができるのが、システムトレードの最大の強みだ。人間はどうしても「何かチャンスがあるはずだ」と根拠なくエントリーしがちだからね。

リスク管理という「大人の作法」

どれだけ高度なAIを使っても、相場に絶対はない。だからこそ、出口戦略とリスク管理が重要になる。

この戦略では、BMUが「レンジエリア」に戻った瞬間や、反対のトレンドエリアに移動した瞬間に決済する。つまり、「相場の空気が変わったな」と感じた瞬間に、未練なく手仕舞いするわけだ。

また、損切り幅にはATR(平均的な値動き)を使う。

リスク管理の具体策: 1トレードの許容損失を「ATRの1.2倍」に制限する。これにより、ボラティリティが高い時は広く、低い時は狭く、相場の呼吸に合わせた損切り設定が可能になる。

実装へのアプローチ:PythonとMQL5の分業

さて、これをどうやって形にするか。ここがエンジニアとしての腕の見せ所だ。

SOMのような複雑な計算をMQL5(MT5の言語)だけで完結させようとすると、かなり骨が折れる。だから僕は、**「脳はPython、手足はMQL5」**という分業体制を勧める。

  • Python(脳): MiniSom などのライブラリを使ってSOMを構築・学習させ、リアルタイムで「今のクラスタは何か」を判定する。
  • MQL5(手足): Pythonから送られてきた「強気」「弱気」「レンジ」というラベルを受け取り、EMAの条件と照らし合わせて注文を出す。

このハイブリッド構成にすることで、最新の機械学習ライブラリを自在に使いながら、高速な執行環境を維持できる。

最後に

「AI」や「機械学習」と聞くと、何か魔法のようなツールだと思ってしまいがちだけど、実際は「複雑なデータを整理して、判断をシンプルにするための道具」に過ぎない。

でも、その道具を使って「相場の空気を可視化する」というアプローチを試みるのは、知的好奇心を刺激される最高の遊びだと思う。

最初は難しく感じるかもしれない。でも、一つひとつの概念を紐解いて、コードに落とし込んでいくプロセスこそが、EA開発の本当の面白さなんだ。

焦らず、楽しみながら。まずは小さな実験から始めてみてはどうだろうか。☕️\n