取引コストより効いた「100株の壁」|スリッページ0〜20bpで自動売買を検証

AIツール

AIを使いながら、日本株の売買判断を自動化するツールを作っています。

これまでの開発経緯は日本株AI自動売買ツール開発記録にまとめています。

前回は、実運用候補を50銘柄まで広げ、50万円の資金を効率よく使うために最大保有数を増やす検証を行いました。

バックテストでは利益が出ていても、実際の売買では想定した価格で必ず約定できるとは限りません。

前回は、実運用候補を50銘柄まで広げ、50万円の資金を効率よく使うために最大保有数を増やす検証を行いました。

その結果、2銘柄までしか保有しない場合は現金が余りやすく、保有枠を増やすことで資金を使いやすくなることが分かりました。

ただし、取引回数が増えれば気になるのが実際の約定価格との差です。

そこで今回はバックテストにスリッページを追加し、

「多少不利な価格で約定しても利益は残るのか?」

を検証しました。

スリッページとは?

スリッページとは、売買時に想定していた価格と、実際に約定した価格との差です。

この差は必ずしも不利になるとは限りません。

買いなら想定より安く買えることもありますし、売りなら想定より高く売れることもあります。逆に、買いで想定より高く、売りで想定より安く約定すれば不利になります。

今回のバックテストでは実運用をやや厳しめに評価するため、すべて不利な方向へスリッページが発生すると仮定しました。

  • BUY:想定約定価格より高く買う
  • SELL:想定約定価格より安く売る

検証したのは次の4パターンです。

スリッページ割合
0bp0%
5bp0.05%
10bp0.10%
20bp0.20%

たとえば想定約定価格が1,000円なら、20bpは約2円です。

バックテストではBUYなら約1,002円、SELLなら約998円というように、不利な方向へ価格をずらします。

※実際の約定価格は成行・指値などの注文方法や板の状況によって異なります。今回の設定は、実運用時の価格ズレに戦略がどこまで耐えられるか確認するためのものです。

50銘柄×64パターンで検証

今回の条件は次の通りです。

項目条件
対象実運用候補50銘柄
検証期間2021年9月~2026年9月の約5年間
初期資金50万円 / 100万円
売買単位100株
売買方向現物・買いのみ
最大保有数4銘柄 / 5銘柄
損切り・利確4パターン
スリッページ0 / 5 / 10 / 20bp
手数料0円

初期資金、最大保有数、売却ルール、スリッページを組み合わせて、合計64ケースを比較しました。

20bpでも64ケースすべてで資産は増えた

まず50万円の結果です。

最大保有売却ルール0bp5bp10bp20bp
4STOPなし1,050,050円1,112,718円1,109,990円1,248,630円
4固定STOP1,099,950円1,087,365円1,138,337円1,181,023円
4トレーリング1,279,240円1,113,618円1,262,319円1,201,396円
4固定+トレーリング1,156,182円1,158,853円1,122,434円1,065,030円
5STOPなし1,343,580円1,316,781円1,285,891円1,279,641円
5固定STOP1,175,832円981,780円869,279円787,329円
5トレーリング1,339,110円1,315,810円1,132,568円1,135,421円
5固定+トレーリング1,156,870円1,173,697円972,914円858,976円

32ケースすべてで、初期資金50万円を上回りました。

100万円でも同様に32ケースを検証し、こちらもすべて初期資金100万円を上回っています。

つまり今回の64ケースでは、20bpまでスリッページを設定しても最終資産はすべてプラスでした。

20bpまでスリッページを入れても、今回の64ケースすべてで資産が増えていたのは安心しました。

もちろん「20bpなら必ず大丈夫」という意味ではありません。

今回の50銘柄・約5年間・現在の売買ルールでの結果なので、実運用では実際の約定データを確認する必要があります。

スリッページを増やしたのに利益が増えた?

結果を見ていて、少し不思議なケースがありました。

50万円・最大4銘柄・STOPなしでは、

  • 0bp:1,050,050円
  • 20bp:1,248,630円

となっています。

不利なスリッページを増やしたのに、最終資産が増えています。

20bpの方が有利だったわけではありません。

原因は、今回の売買単位である100株でした。

わずかな価格差で「100株買えるか」が変わる

50万円という限られた資金では、スリッページによって買値が少し高くなるだけでも、100株を買えるかどうかが変わることがあります。

ある銘柄が資金不足で買えなくなると、

その銘柄を買えない
↓
別の銘柄を買う
↓
保有期間が変わる
↓
現金が戻るタイミングが変わる
↓
その後に買う銘柄も変わる

という連鎖が起こります。

実際、0bpとスリッページありを比較した48パターンすべてで、売買した銘柄の組み合わせに変化がありました。

つまり今回の比較は、同じ取引からコストだけを差し引いたものではありません。

スリッページによって100株を買えるかどうかが変わり、ポートフォリオそのものが別の経路を進んでいます。

「20bpの方が儲かる」という話ではなく、少額資金・100株単位では、わずかな価格差でもバックテスト結果を大きく変えることがあるということです。

資産推移を見ると違いが分かりやすい

代表例として、50万円・最大5銘柄・STOPなしで、0bp・5bp・20bpの資産推移を比較しました。

最終資産は、

  • 0bp:134.4万円
  • 5bp:131.7万円
  • 20bp:128.0万円

でした。

このケースでは、スリッページが大きくなるにつれて最終資産も順当に低下しています。

一方、3本の線は単純に一定の幅で離れているわけではありません。

途中で差が広がったり縮まったりしているのは、スリッページによって購入できる銘柄が変わり、その後の売買も変化しているためです。

保有枠を増やす効果は5bpでも残った

前回の検証では、50万円・STOPなしの場合、

  • 最大2銘柄:678,700円
  • 最大5銘柄:1,343,580円

となり、2銘柄では資金を余らせすぎていました。

5bpのスリッページを入れると、

  • 最大2銘柄:約67.8万円
  • 最大5銘柄:約131.7万円

です。

多少差は縮まりましたが、保有枠を増やした効果は大きく残っています。

ただし、5銘柄が最適と決まったわけではありません。

10~20bpでは、売却ルールによって最大4銘柄の方が良いケースもあります。

ここで今回の約5年間に合わせて保有数を細かく調整するのではなく、次は期間を分けて安定性を確認します。

実運用では「本当のスリッページ」を測る

今回の5bp・10bp・20bpは、あくまでバックテスト上の仮定です。

実際に自動売買を始めたら、

  • シグナル価格
  • 発注時刻
  • 想定約定価格
  • 注文価格
  • 約定時刻
  • 実際の約定価格
  • 数量・部分約定
  • BUY / SELL
  • STOPの種類
  • 手数料

などを記録します。

実際の注文データがたまったら、実測スリッページの平均・中央値などと、今回の5bp・10bp・20bpを比較する予定です。

バックテストで仮定したコストが現実に近かったのかを、実運用のデータから確認していきます。

次は「5年間のどこで利益が出ていたのか」を調べる

取引コストを加えても、今回の条件では利益が残りました。

ただ、約5年間の最終資産だけを見ていては、

毎年ある程度利益が出ていたのか、それとも特定の期間だけ大きく勝っていたのか

が分かりません。

次は、

  • 年ごとの成績
  • 前半・後半の成績
  • 一定期間ごとの成績
  • 最大ドローダウン
  • 取引数
  • 銘柄ごとの利益寄与

を確認します。

ここでも大きな問題が見つからなければ、バックテスト中心の検証はいったん区切り、実際の注文を扱う仕組みの開発へ進む予定です。

まとめ

今回、0~20bpのスリッページを加えて64ケースを検証しました。

結果は、20bpまで含めて64ケースすべてで最終資産が初期資金を上回りました。

一方で、今回より重要だったのは、わずかな価格差でも100株を買えるかどうかが変わり、その後の売買まで変化することです。

0〜20bpのスリッページを入れても利益は残った。
しかし、少額資金のバックテストでは「100株を買えるか」という資金制約も無視できない。

次は、この成績が特定の期間だけに偏っていないかを検証します。

コメント

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