※本記事はプロモーションを含みます。
※本記事は情報提供を目的としており、特定の金融商品への勧誘や投資助言を目的とするものではありません。投資判断はご自身の判断と責任で行ってください。
AIで作っている株式投資ツールで、最初に買い判定として実装したのはカップウィズハンドルでした。チャートの形を見て、買い候補を自動で拾えるようにしたかったからです。
ただ、最初のバックテスト結果を見たとき、思ったほど伸びませんでした。Full期間の2015年から2024年で見ると、デフォルト設定のカップウィズハンドルは増加額が+23万円ほどでした。悪くはないけれど、これを本番の買い判定として育ててよいのかは迷う数字です。
今回の記事は、買い判定の条件をいじる前に、資金の使い方そのものを疑った記録です。カップウィズハンドルが弱いのか、それともポジションサイズの設計でリターンを薄めているのか。そこをAIに手伝ってもらいながら切り分けました。
この記事では、買い判定ロジックの細かいパラメータ値ではなく、エクスポージャーを変えたときにバックテスト結果がどう見えたかを中心に書きます。数字は過去データ上の検証結果であり、将来の利益を保証するものではありません。
| 前提 | 内容 |
|---|---|
| 検証期間 | 2015年〜2024年のFull期間 |
| 対象 | TOPIX500ユニバース |
| 初期資本 | 300万円 |
| 最大同時ポジション数 | 4枠 |
| 最大保有日数 | 60日 |
| 売買コスト前提 | スリッページ0.1% |
| 買い判定 | カップウィズハンドルのデフォルト設定 |
- 最初のカップウィズハンドル検証は、エクスポージャー最適化前の結果だった。
- 従来のポジションサイズでは、4枠使っても資金の約3〜4割が残りやすかった。
fixed_risk_pct=0.03を導入すると、同じデフォルト設定でも成績の見え方が大きく変わった。
最初のCup With Handle検証は、ロジック以前に資金が使えていなかった
最初のカップウィズハンドル検証では、買い判定そのものに目が向いていました。カップの形を拾えているか、ハンドルの上抜けになっているか、出来高の条件は厳しすぎないか。チャートパターンの検出ロジックを疑うのは自然です。
でも、バックテスト結果を見ていて気になったのは、買い判定が当たるか外れるかだけではありませんでした。初期資本300万円に対して、最終資産が323万円。10年分のFull期間で+23万円程度なら、ロジック改善だけでなく、資金をどれだけ市場に置けているかも確認しないと判断できないと感じました。
ここでAIに確認してもらったのは、ポジションサイズの式です。私が見たかったのは、カップウィズハンドルが本当に弱いのか、それとも1回あたりの投入額が小さすぎてリターンが薄くなっているのかでした。
買いサインの良し悪しだけを見ていると、資金管理側の欠陥を買い判定の弱さだと勘違いする可能性があります。これは、バックテストを作ってから実際に数字を見ないと気づきにくいところでした。
この時点では、まだカップウィズハンドルの条件を深く調整する前です。だからこそ、先に資金配分の土台を直す必要がありました。土台が傾いたままパラメータを探しても、良い設定を見逃すかもしれないからです。
1ポジション16.7%の設計では4枠でも資金が余った
従来のポジションサイズは、max_loss_per_trade_pct ÷ stop_loss_pct で決まっていました。設定値は、1トレードの最大損失を2%、損切り幅を12%と見る形です。式に入れると、1ポジションあたりの投入額は資本の約16.7%になります。
この数字だけ見ると、そこまでおかしく見えません。1回の損失を抑える設計としては自然です。ただ、最大同時ポジション数が4枠だったため、4銘柄すべてを持っていても理論上のエクスポージャーは約67%で止まります。
つまり、シグナルが4つそろっていても、資金の約3分の1は常に現金として残りやすい設計でした。実測でも平均エクスポージャーは約57〜61%で、かなりの資金が市場に出ていませんでした。
| 方式 | 1ポジション投入額 | 4枠フル時の理論エクスポージャー | 見えた問題 |
|---|---|---|---|
| 従来方式 | 約16.7% | 約67% | 資金の3〜4割が残りやすい |
fixed_risk_pct=0.03 | 約25% | 約100% | 資本を使い切りやすい |
さらに、cash_ratio_min や cash_ratio_max という設定も残っていました。ただ、実際に確認すると、バックテストエンジンでは取引ロジックに使われていませんでした。設定ファイルにあるから効いていると思い込むのは危ないです。
この段階で確認すべきだったのは、設定値が存在するかではなく、バックテストの中で本当に参照されているかでした。AIには、コード上でどこを読んでいるか、どの式でポジションサイズが決まるかを追ってもらいました。
fixed_risk_pct=0.03で買い判定の見え方が変わった
次に導入したのが、fixed_risk_pct=0.03 です。考え方は、1トレードで総資産の3%をリスク許容額として見て、損切り幅から株数を逆算する方法です。損切り幅12%なら、1ポジションあたりの投入額は25%になります。
この変更を入れると、同じカップウィズハンドルのデフォルト設定でも結果が大きく変わりました。最適化前は+23万円だった増加額が、最適化後には+243万円まで伸びています。取引数は261件から158件へ減りましたが、PFと勝率は改善しました。
| 指標 | 最適化前 | 最適化後 |
|---|---|---|
| 期間 | 2015〜2024 Full | 2015〜2024 Full |
| 設定 | デフォルト設定 | デフォルト設定 |
| 取引数 | 261件 | 158件 |
| PF | 1.065 | 1.375 |
| 勝率 | 45.6% | 55.7% |
| 総リターン | +7.79% | +80.97% |
| 増加額 | +23万円 | +243万円 |
| MDD | -15.80% | -25.85% |
ここで分かったのは、買い判定の評価はポジションサイズと切り離せないということです。同じロジックでも、資金の入れ方が変わると、リターン、PF、勝率、最大ドローダウンの見え方が変わります。
もちろん、増加額が伸びたからすべて良い、という話ではありません。MDDは-15.80%から-25.85%へ悪化しています。資金を多く使えば、利益も損失も大きくなります。だから、リターンが伸びたことだけで採用するのではなく、自分がその下落を受け入れられるかも合わせて見る必要があります。
エクスポージャーを増やすほど良いとは限らない
今回採用候補にしたのは fixed_risk_pct=0.03 ですが、これは「もっとリスクを上げればもっと良い」という意味ではありません。別の検証では、0.04のようにさらに大きく張る設定も試しています。短い期間では強く見えることもありました。
ただ、短期で良かった設定が長期でも良いとは限りません。QC期間だけで最高値を取った設定は、Full期間では安定しないことがあります。これはAIに検証してもらうときほど気をつけたいところです。AIは表をきれいに出してくれますが、どの期間を信じるかは人間側で決めないといけません。
私が採用ラインとして見たのは、短期の最高値ではなく、QCとFullの両方で大きく崩れないことでした。1つの期間だけに合った設定を選ぶと、過去データに寄せすぎたルールになりやすいからです。
今回のfixed_risk_pct=0.03は、理論上の最大エクスポージャーを約100%に近づける設定です。従来の約67%よりは資金を使いますが、レバレッジ相当まで踏み込む設定ではありません。私の中では、攻めるためというより、過度に現金が残る構造を直すための調整でした。
ここは、投資ツールをAIと作るときの大事な境目です。AIに任せるのは、候補設定を出すこと、バックテストを回すこと、表にまとめることです。一方で、どれくらいの下落を許容するか、どの数字を採用ラインにするかは、自分で決める必要があります。
次の検証ではCup With Handleの条件そのものを疑うことにした
エクスポージャーを見直したことで、カップウィズハンドルのデフォルト設定はかなり見え方が変わりました。ただ、それでもこのまま採用でよいとは思いませんでした。デフォルト設定のままでは、PFは1.375、MDDは-25.85%です。改善はしたものの、まだ買い判定として強いと言い切れるほどではありません。
そこで次に見るべきなのは、カップウィズハンドルの検出条件そのものです。カップを見る期間が長すぎるのか、ハンドルの期間が合っていないのか、出来高条件や深さ条件がずれているのか。資金管理の土台を整えたあとで、ようやくロジック側の調整に入れる状態になりました。
最初の検証で弱く見えたロジックを、すぐに捨てなかったことは大事だったと思います。弱く見えた理由が、ロジック本体ではなく資金配分側にあるかもしれないからです。
次の記事では、カップウィズハンドルのパラメータを1つずつ変えて、どの条件で結果が変わるのかを見ていきます。特に大きかったのは、カップとハンドルを見る期間を短くする変更でした。デフォルトでは拾えなかった強さが、短期ルックバックでかなり違う形で出てきます。
今回の学びは、派手なものではありません。買いサインを増やす前に、資金がどう使われているかを見る。設定ファイルにある値が、実際のロジックで効いているか確認する。バックテストの数字を見たら、シグナルだけでなくエクスポージャーも疑う。地味ですが、ここを飛ばすと、その後の検証が全部ずれてしまうと感じました。

