※本記事はプロモーションを含みます。
※本記事は情報提供を目的としており、特定の金融商品への勧誘や投資助言を目的とするものではありません。投資判断はご自身の判断と責任で行ってください。
AIで作っている株式投資ツールにバックテスト機能を追加したあと、ようやく「作った買い条件が本当に意味を持っているのか」を数字で見られるようになりました。
今回は、エリオット波動の第2波完了を使ったEW2戦略を中心に検証しました。最初に確認したかったのは、このパターンに本当にエントリーの意味があるのかです。次に見たのは、PFや最大ドローダウンだけで設定を選んでよいのか、そして日経平均の買い持ちに負けていた原因はどこにあるのかでした。
結論からいうと、EW2戦略はランダムエントリーよりは明確に良い結果でした。ただ、そこで安心できたわけではありません。日経平均の買い持ちと比べると、リターンが薄く見える問題が残りました。
今回の記事は、AI株式投資ツールのバックテスト結果を見ながら、EW2戦略の評価軸をPFや最大ドローダウン中心から、実際のリターンとポジションサイズ中心へ見直した記録です。特定の売買をすすめるものではなく、自分の投資ルールを検証する過程のログとして書きます。
- EW2戦略がランダムエントリーより良いのかを、同じ条件で比較しました。
- 損切り方法や固定リスク設定を変えて、PF、最大ドローダウン、利益額を見直しました。
- 最終的に、リターン不足の原因をポジションサイズとエクスポージャーから考えました。
ここで出す数値は、過去データ上のバックテスト結果です。買い判定ロジックの細かいパラメータ値をそのまま再現するための記事ではなく、ランダム比較、ポジションサイズ、エクスポージャーをどう見直したかを残す記事として整理します。
| 前提 | 内容 |
|---|---|
| 短期確認 | QC期間 2019年〜2021年 |
| 長期確認 | Full期間 2015年〜2025年 |
| 対象 | TOPIX500ユニバース |
| 初期資本 | 300万円 |
| 最大同時ポジション数 | 4枠 |
| 最大保有日数 | 60日 |
| 売買コスト前提 | スリッページ0.1% |
| 買い判定 | EW2戦略 |
EW2戦略はランダムより強いのかを先に切り分けた
前回までに、エリオット波動の判定結果をチャート上で確認できるようにしました。画面には実績波や予測波、EW条件タブが出るようになり、どこを根拠にシグナルが出たのかは追いやすくなっています。
ただ、見えるようになったことと、そのシグナルに意味があることは別です。線がきれいに引かれていても、過去データで見るとたまたま上昇相場に乗っていただけかもしれません。ここを切り分けないままルールを育てると、見た目の納得感だけで進んでしまいます。
エリオット波動の根拠をチャートに出した流れは、こちらの記事で整理しています。

今回はその続きとして、表示できたEW2シグナルをバックテストで検証する段階に進めました。
まずClaude Codeに依頼したのは、ランダムエントリーの対照実験をできるようにすることです。同じ銘柄プール、同じ出口ルール、同じポジションサイズ、同じ最大保有件数のまま、エントリーのタイミングや銘柄選定だけをランダムにします。これで、EW2パターン自体に意味があるのか、それとも相場全体が上がっていただけなのかを分けて見られます。
比較するときに大事だったのは、入口だけを変え、出口や資金管理の条件はそろえることでした。条件があちこち違うと、EW2が良かったのか、損切りが違ったのか、ポジションサイズが違ったのか分からなくなるからです。
QC期間として2019年から2021年を使い、EW2戦略とランダムエントリー10回の平均、最良、最悪を比べました。結果として、EW2戦略はランダム10回の最良値も上回りました。
| 比較対象 | PF | 総リターン | 利益 | Sharpe |
|---|---|---|---|---|
| EW2戦略 | 1.532 | +32.40% | +971,875円 | 0.949 |
| ランダム10回平均 | 1.223 | +12.14% | +364,129円 | 0.387 |
| ランダム最良 | 1.382 | +20.17% | +604,981円 | 0.608 |
| ランダム最悪 | 1.103 | +5.92% | +177,716円 | 0.225 |
この結果だけを見ると、EW2のエントリーにはランダムに買うよりは明確なエッジがありそうだと判断できます。少なくとも、何となく買っているだけではない可能性が高くなりました。
ただし、ここで一度立ち止まる必要があります。ランダムより良いことと、市場平均より良いことは別です。EW2の入口に意味があっても、最終的な資産増加が日経平均の買い持ちに負けるなら、戦略としてはまだ弱い部分が残っています。
PFと最大ドローダウンだけを見ると、固定リスク1%が良く見えた
EW2に一定のエッジがありそうだと分かったあと、次に疑ったのはリスク管理でした。エントリーは悪くないのに市場平均に届かないなら、損切り方法やポジションサイズ、リスクリワードの取り方に問題があるのかもしれません。
そこで、pivotストップ、ATRストップ、R:Rフィルター、固定リスク1%、それらを組み合わせた設定などを比較しました。QC期間だけでなく、2015年から2025年までのFull期間でも見ています。
バックテスト機能そのものを追加したときの記事では、検証の土台づくりやWeb UI化、データ前提のズレを中心に書きました。

今回は、その道具を使って実際に設定を比較した段階です。
最初にかなり良く見えたのが、Dの固定リスク1%でした。プロフィットファクターは少し改善し、最大ドローダウンは大きく下がっていました。数字だけ見ると、かなり安定した設定に見えます。
| 指標 | ベース QC | D 固定リスク1% QC | ベース Full | D 固定リスク1% Full |
|---|---|---|---|---|
| PF | 1.532 | 1.576 | 1.428 | 1.437 |
| MaxDD | -13.51% | -6.85% | -20.08% | -10.37% |
PFと最大ドローダウンだけを見れば、固定リスク1%はかなり魅力的な候補でした。損失の揺れを抑えながら、戦略の質も少し良くなっているように見えます。
ここで危なかったのは、「良い指標」が見えた瞬間に、それを最適解だと思いそうになったことです。PFは利益合計を損失合計で割った指標なので、戦略の効率を見るには役立ちます。最大ドローダウンも、自分が耐えられる下落を考えるうえで大事です。
でも、今回の目的はリスクを最小化することだけではありません。初期資金300万円を増やしていくためのルールを探しています。そう考えると、PFや最大ドローダウンだけでは見落とすものがありました。
利益額で見直すと、リスクを抑えすぎた設定は目的に合わなかった
固定リスク1%が良く見えたあと、各パターンで実際にいくら増えたのかを確認しました。ここで判断が大きく変わりました。
初期資金300万円で見ると、固定リスク1%はPFと最大ドローダウンを改善していた一方で、利益額を大きく減らしていました。QC期間でもFull期間でも、ベース設定よりかなり少ない利益になっていたのです。
| 期間 | 設定 | 最終資産 | 利益額 | 年率リターン |
|---|---|---|---|---|
| QC | ベース | 3,971,875円 | +971,875円 | 11.04% |
| QC | D 固定リスク1% | 3,482,623円 | +482,623円 | 5.72% |
| Full | ベース | 6,287,116円 | +3,287,116円 | 6.97% |
| Full | D 固定リスク1% | 4,431,892円 | +1,431,892円 | 3.62% |
この結果を見たとき、リスク管理が良く見えることと、資産を増やす目的に合うことは違うと感じました。固定リスク1%は、下落を抑える代わりに、ポジションサイズを小さくしすぎていました。
もちろん、最大ドローダウンを軽く見てよいわけではありません。下落が大きすぎれば、実際の運用では続けられなくなります。ただ、リターンを犠牲にしすぎると、そもそも今回の目的から外れてしまいます。
ここで、自分の中の評価軸を見直しました。これまではPFや最大ドローダウンを強く見ていましたが、今回の検証では、まず絶対リターンを最重要指標に置くべきだと考え直しました。そのうえで、最大ドローダウンが許容範囲に収まっているかを見る順番です。
私が探していたのは、きれいな指標の戦略ではなく、リスクを見ながらも資産を増やせる可能性がある戦略でした。この順番を間違えると、守りは固いけれど目的に届かない設定を選んでしまいます。
日経平均に負けた原因は、シグナルよりポジションサイズにありそうだった
次に調べたのは、なぜEW2戦略が日経平均の買い持ちに届きにくかったのかです。最初は、現金保有比率の制約やシグナル数の不足も疑いました。
ところが、確認すると cash_ratio_min や cash_ratio_max は、バックテストの取引ロジックでは実際には参照されていませんでした。設定として残っていても、結果を変える要因にはなっていなかったのです。
本当の原因に近そうだったのは、ポジションサイジング式でした。従来のポジションサイズは、資金に対して max_loss_per_trade_pct ÷ stop_loss_pct を掛ける形です。設定値を当てはめると、1ポジションあたり資金の約16.7%しか使っていませんでした。
最大保有数が4銘柄でも、1銘柄あたり約16.7%なら、理論上の最大エクスポージャーは約66.7%にとどまります。つまり、どれだけ良いシグナルが出ても、資金の3〜4割は市場に出ていない構造でした。
実際の資産曲線から投下資本を再構成しても、平均エクスポージャーはQC期間で56.7%、Full期間で60.7%でした。4枠フル稼働率は高く、0ポジションの日も少なかったので、シグナルが足りないというより、1ポジションあたりのサイズが小さいことが効いていそうです。
| 期間 | 平均エクスポージャー | 中央値 | 4枠フル稼働率 | 0ポジションの日 |
|---|---|---|---|---|
| QC 2019〜2021 | 56.7% | 64.3% | 71.6% | 3.7% |
| Full 2015〜2025 | 60.7% | 65.4% | 79.0% | 1.2% |
ここで見えたのは、市場平均に負けた原因を「シグナルの質」だけで考えると見誤るということです。入口が良くても、資金の置き方が薄ければ、リターンは薄まります。
これは少し怖い気づきでした。シグナルを増やす、損切りを変える、条件を細かくする。そういう改善に目が向きがちですが、実際には資金をどれだけ市場にさらしているかが大きく効いていました。バックテストを見ないままでは、たぶんこの順番には気づけなかったと思います。
fixed_risk_pct=0.030は、リターンとドローダウンのバランスが一番よく見えた
そこで、fixed_risk_pct を変えて、ポジションサイズを拡大する実験を行いました。試したのは0.025、0.030、0.035、0.040です。目的は、エクスポージャーを100%に近づけたとき、リターンと最大ドローダウンがどう変わるかを見ることでした。
QC期間だけを見ると、fixed_risk_pct=0.040 が最も強く見えました。ベースラインのリターン32.40%に対して、0.040では73.21%まで伸びています。かなり魅力的な数字です。
ただし、QC期間は2019年から2021年で、コロナ後の急回復も含みます。この短い期間に強く合った設定をそのまま採用すると、長期では過学習になる可能性があります。そこで、判断では2015年から2025年までのFull期間を重視しました。
| 設定 | 増加額 | 最終資産 | リターン | 年率 | MDD |
|---|---|---|---|---|---|
| 日経平均buy&hold 参考 | +5,676,000円 | 8,676,000円 | 189.20% | 10.13% | -31.80% |
| EW2 + fixed_risk=0.030 | +5,123,980円 | 8,123,980円 | 170.80% | 9.49% | -28.08% |
| EW2 + fixed_risk=0.040 | +4,729,420円 | 7,729,420円 | 157.65% | 9.00% | -32.08% |
| EW2 ベースライン | +3,287,116円 | 6,287,116円 | 109.57% | 6.97% | -20.08% |
Full期間では、fixed_risk_pct=0.030 が一番バランスのよい採用候補に見えました。ベースラインより利益額は+1,836,864円増え、日経平均buy&holdとの差も大きく縮まりました。
日経平均との差は、ベースラインでは-2,388,884円でした。それが fixed_risk_pct=0.030 では-552,020円まで縮まっています。市場平均を完全に上回ったわけではありませんが、ギャップのかなりの部分はポジションサイズの見直しで埋められました。
一方で、0.040はQC期間では強かったものの、Full期間では0.030に負けています。最大ドローダウンも-32.08%まで悪化し、日経平均buy&holdと同じくらい大きくなりました。攻めればリターンが増えるという単純な話ではなく、攻めすぎると長期の安定感が落ちることも見えました。
fixed_risk_pct=0.030を、次に検証する最有力候補として扱う。- 0.040は短期では強いが、Full期間ではドローダウンが大きく、過学習の疑いも残す。
- 固定リスク1%は安定して見えるが、今回の資産増加目的にはリターンが弱すぎる。
バックテスト結果は答えではなく、次に試すルールを決める材料にする
今回の検証で、EW2戦略にはランダムエントリーより良い結果がありそうだと分かりました。また、市場平均との差は、シグナルの質だけではなく、ポジションサイズとエクスポージャーの影響が大きそうだと見えてきました。
ただ、これで答えが出たとは思っていません。バックテストは、あくまで過去データでの確認です。未来の相場で同じ結果になる保証はありませんし、検証期間、対象銘柄、取引コスト、約定前提、フィルターの置き方で数字は変わります。
バックテストをAIに頼む前提については、以前にも整理していました。今回のように数字が出始めるほど、検証前に何を固定するかが大事になります。

前提を決めずに数字だけを見ると、自分に都合のよい結果を選びやすくなります。
今回いちばん危なかったのは、PFや最大ドローダウンが良く見えた設定を、そのまま良い戦略だと思いそうになったことです。金額で見直したことで、固定リスク1%は今回の目的には合いにくいと判断できました。
次にやりたいのは、fixed_risk_pct=0.030 を前提に、他の条件も同じように見直すことです。銘柄数を増やすのか、最大保有数を変えるのか、相場環境ごとに結果がどう違うのか。カップウィズハンドルと同時に出た場合の結果も確認したいです。
AIに任せたいのは、勝てる答えを出してもらうことではなく、検証に必要な比較対象を作り、数字を見返せる形に整えてもらうことです。最終的に、どのリスクを受け入れ、どのリターンを狙うのかは、自分で決める必要があります。
今回の検証で、少なくとも次に見るべき場所ははっきりしました。EW2の入口にはランダム以上の意味がありそうです。ただし、戦略として育てるには、ポジションサイズ、エクスポージャー、最大ドローダウン、日経平均との比較を合わせて見続ける必要があります。バックテスト結果を答えにせず、次に試すルールを決める材料として使っていきたいです。

