やあ、みんな。最近はコードを書いて、バックテストを回して、結果に一喜一憂するという最高のループにどっぷり浸かっている僕です。🚀

今日は、僕が取り組んでいる「Backtest Studio」というプロジェクトの中で、ドル円(USDJPY)を攻略するために作った2つのEA(自動売買プログラム)の話をしようと思う。

単なる「儲かった・損した」の話じゃなくて、開発の中でぶち当たった壁と、そこから得られた「残酷なまでの結論」について。これが結構、エンジニア的な視点から見ても知的な快感がある内容なんだ。

まずは「壱号機」で王道を突き詰めてみた

もともと僕が狙っていたのは、シンプルで力強い「トレンドフォロー(順張り)」戦略。 使ったのは、ドンチャン・ブレイクアウトにEMA200(200日指数平滑移動平均線)のフィルターを組み合わせるという、いわばトレードの王道スタイルだ。

ここで重要になるのが OOS(Out-of-Sample) という考え方。💡

OOS (Out-of-Sample) とは? 簡単に言うと「練習問題で勉強して、本番の試験(見たことがないデータ)で実力を試す」こと。 過去データに最適化しすぎると、過去には完璧に勝てるけど未来では大損する「過学習」が起きる。それを防ぐために、検証データを「最適化用」と「未知のテスト用」に分けて、後者のデータでも利益が出るかを確認する手法のことだ。

PythonでこのOOS検証を回してみたところ、結果は+34万円。さらにMT5で同期バックテストを走らせたら、なんと+135万円という数字を叩き出した。

最近のドル円の猛烈なトレンド相場において、この「王道」が正解だったということ。正直、この時点で「あぁ、やっぱりシンプルこそが最強なんだな」と静かな興奮を覚えたよ。

「弐号機」への挑戦:逆張りの迷宮に潜る

でも、エンジニアとしての好奇心が止まらなかった。 「トレンドで勝てるなら、逆にレンジ相場(価格が一定の幅で上下すること)で稼ぐツールがあれば、最強のヘッジ(リスク分散)になるはずだ」と考えたんだ。

ここからが泥沼の始まりだった。😂

ADXやRSIを組み合わせたレンジ逆張り、早朝の価格変動を狙う朝スキャ、リスクを取って取り戻すナンピン、エンベロープの乖離、RSIのプルバック……。思いつく限りの「逆張り手法」を実装し、検証にかけた。

そこでぶつかったのが WFA(Walk-Forward Analysis) の壁だ。

WFA (Walk-Forward Analysis) とは? 「1年分で最適化して次の3ヶ月を検証する」という作業を、期間をずらしながら何度も繰り返す手法。 相場の性質は時間とともに変わる(=非定常である)ため、常に「直近の傾向を反映させて未来を予測できるか」をシミュレーションする、非常にシビアな検証方法だ。

結果はどうだったか。 ……壊滅的だった。

どの手法も、WFAにかけるとあっけなく破産するか、大幅なマイナスを記録した。どんなにパラメーターを調整しても、未知のデータに触れた瞬間に崩壊する。

到達した「残酷な結論」と、最強の盾

数週間の試行錯誤の末、僕はある結論に達した。 「過去10年のドル円において、逆張りで物理的に勝ち続けることはほぼ不可能である」 と。

でも、ここで面白い発見があった。 以前に、カーブフィッティング(過去データに無理やり合わせること)を一切せず、最低限のロジックで組んだ「NativeRange」というツールがあった。その結果は、10年でプラス7,000円という、笑っちゃうくらい地味な数字だった。

でも、よく考えたらこれ、すごいことなんだ。

世の中の多くの逆張りEAが、バックテストでは右肩上がりなのに実運用で溶けていく中、この「NativeRange」だけは、一切のごまかしなしにプラスを維持していた。

つまり、「10年で+7,000円」こそが、ドル円における逆張りの限界到達点であり、実質的な【最強の盾】だった というわけだ。

最後に:コードで世界を解剖する楽しさ

今回の開発で改めて感じたのは、プログラミングとデータ分析を組み合わせることで、「なんとなく」ではなく「物理的に無理だ」という結論まで辿り着ける快感だ。

ただ利益を追うだけじゃなくて、こうやって「相場の性質」をコードで解剖していくプロセスこそが、個人開発の醍醐味だと思う。

もし君が、プログラミングを学んでいる学生さんや、これから挑戦しようとしている大人の初心の方なら、ぜひ何か「自分の仮説を検証できるツール」を作ってみてほしい。

計算機やAIに答えを出させるんじゃなく、自分の手でロジックを組み、データという現実を突きつけられ、そこから新しい気づきを得る。このサイクルは、どんな勉強よりも知的な刺激に満ちているから。

さあ、次はどんなツールを作ろうか。ワクワクが止まらないね。🚀\n