損失時に新規の売買を止める安全装置が、バックテストを無意味にしていた

損失時に新規の売買を止める安全装置が、バックテストを無意味にしていた 開発記録

開発記録(第5回)。AI に日本株の売買判断をさせる投資システム investTool を個人で開発しています。全体像は目次記事にまとめています。

この記事の位置づけ:開発の段階のうち「段階2 戦略・バックテスト」の時期の話

この記事の要点
  • 資産が最高値から8%下がったら新規の売買を止める、という安全装置を入れていました
  • ところが株を持たないと資産は動かないため、再開の条件(−5%まで戻る)を満たせず、止まったままになる戦略がありました
  • 株を持っている日が少なく、資金の大半が現金のままという問題も同時に見つかりました

やりたかったこと

investTool では、資産が最高値からどれだけ下がったか(ドローダウン)に応じて、売買の強さを段階的に落とす決まりにしています。「大きく負けないこと」を優先するためです。

段階 条件 動作
通常 最高値から −5% より上 1回の取引で許す損失は資産の1%
警戒 −5% 以下 許す損失を半分(0.5%)にする
新規停止 −8% 以下 新しい売買をしない。持っている株の管理だけ続ける
全停止 −10% 以下 すべて売る

警戒と新規停止は、−5% より上に戻ったら通常に戻る、という決まりでした。

つまずいた点と解決

1. 新規停止から、二度と再開しなかった

症状
戦略B が、バックテストの期間の 90% を新規停止のまま過ごしていた
原因
株を持たないと資産が動かないため、再開の条件(−5%まで戻る)を満たせない
対処
株を持たないまま新規停止が60営業日続いたら、その時点の資産を新しい最高値として再開する

売買ルールの組み合わせを比べていたところ、戦略B(押し目買い)の資産の推移が、途中からずっと横ばいになっていることに気づきました。

模式図。冷却期間がないと、新規停止で株を持たなくなった後は資産が動かず、−5%に戻る日が来ない。冷却期間があると、60営業日たった時点の資産を新しい最高値として売買を再開する

新規停止になると新しい株を買わないので、持っている株を手仕舞った後は、資産は現金だけになります。現金は増えも減りもしないので、「−5% より上に戻ったら再開」の条件は二度と満たされません。

それまでの結果の多くが、この状態を含んでいた

それまでに試したパラメータの組み合わせの多くが、途中から止まったままの状態を含んでいました。戦略の良し悪しではなく、安全装置の作りで成績が決まっていたことになります。

冷却期間を入れる

対処として、「株を持たないまま新規停止が一定の日数続いたら、その時点の資産を新しい最高値として計算し直し、再開する」という冷却期間を設けました。

冷却期間の長さを変えて比べたところ、再開すると取引の回数は増えますが、資産全体の最大の下落は −10% を超えるようになりました。

例 TOPIX との差(年率) 最大の下落
戦略B + 冷却期間20日 + 1回の損失を1.5%まで許す +0.3% −12.7%

再開を早めるほど、止める意味が薄れます。最終的に、冷却期間は 60営業日(約3か月)にしました。実際の運用では、再開の前に振り返りを行う決まりにしています。

ポイント

安全装置を入れるときは、止める条件だけでなく、解除の条件が本当に満たせるかも確かめる必要がありました。

2. 資金の大半が、現金のままだった

症状
学習期間の探索で、4つの戦略がどれも TOPIX(同じ期間で年率 +4.7%)を下回った
原因
株を持っていた日が期間の10〜30%しかなく、資金の大半が何も稼がない現金のままだった
対処
比べる前提の違いとして把握し、戦略の改善で保有する日を増やす(それでも基準には届かず)

最初の探索の結果は、年率で +0.5〜+1.5% でした。同じ期間の TOPIX は +4.7% です。

株を1銘柄以上持っていた営業日の割合。TOPIX は100%、最初の探索の戦略 A〜C は10〜30%、改善後の戦略 C-2 は19%、改善後で最良の戦略 B は65%

比べる相手の TOPIX は、常に資金の100%を株で持っている状態です。一方、こちらの戦略は条件がそろった銘柄しか買わないため、多くの日は株を持っていません。株を持っていない日の資金は何も稼がないので、この差だけで不利になります。

株を持っていた日が少ない理由は、主に次の3つでした。

  • 許される損失から計算した株数が、1単元(100株)に満たない
  • 1単元の金額が、1銘柄に使ってよい上限を超える
  • 1つ目の問題の新規停止で、売買を止めていた
勝率より先に見るべきだったこと

勝率やプロフィットファクター(利益の合計 ÷ 損失の合計)を見る前に、比べる相手と同じ土俵に立っているかを確かめる必要がありました。「市場にいる割合」は、成績の指標の1つとして毎回出すようにしています。

空いている資金を TOPIX 連動の ETF に置いておき、売買のシグナルが出たら入れ替える戦略(戦略E)も、この後で試しました。結果は次回に書きます。

実際にどう使っているか

冷却期間の60営業日は、リスク管理の設定として実際の仮想売買(ペーパートレード)でも使っています。設定はコードではなく設定ファイルに置き、バックテストでも同じ値を読むようにしています。

まとめ

「損失が膨らんだら止める」は、それだけ聞けば正しい決まりです。しかし止めた後にどうやって再開するかまで考えないと、バックテストの結果そのものが意味を持たなくなりました。

この記事の内容に近い書籍

※ Amazon のアソシエイトリンクを含みます。


前回:日足だけでバックテストの約定を決める|損切りと利確が同じ日に届いたら、損切りを先にする

次回:売買ルールを8種類試して、すべて合格基準に届かなかった記録|バックテストの結果と、先に進んだ理由

当サイトは情報提供を目的としており、投資助言を行うものではありません。掲載している売買記録は仮想売買(ペーパートレード)であり、実際の取引の結果ではありません。投資判断はご自身の責任で行ってください。詳しくは免責事項をご覧ください。

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