カブチャレを使って、日本株銘柄トレードのバックテストをしてみよう!〜戦略作成編〜

カブチャレでは、日本の株式市場全銘柄の過去株価データを元に「自分のトレード戦略が統計的にどれくらいの収益を稼げるのか」「過去どれくらいのパフォーマンスだったのか」をチェックできるバックテストが行え、またザラ場中でもリアルタイムで戦略にマッチした銘柄をスクリーニングすることが出来るサービスです!

カブチャレを活用することで「この戦略では95%の確率で利益は◯%〜◯%の範囲内に収まる」といった「統計的に有意な戦略を発見」することが出来るのでどんどん活用して勝てるトレーダー・投資家を目指しましょう!

統計的に有意なトレード戦略を発見していく流れ

トレード戦略の発掘は下記の流れて行っていきます。

  1. バックテストを行う
  2. バックテストの全数テストを行う
  3. 仮想トレードを行う
  4. スクリーニングで戦略のシグナルが出ている銘柄をチェックする

ここでは、そのカブチャレを使ったバックテストの方法をみていきましょう!

ちなみにカブチャレでは「ファンダメンタル条件」だけでも設定してバックテストできるので、トレーダーでなく中・長期投資家の方でも日々チェックしているファンダメンタル指標と条件が実際に株価として現れてどれだけの利益を得られるのか?というチェックにも役立ちますよ〜!

トレードバックテスト画面(戦略条件)の解説

トレード戦略のバックテストは「バックテスト」のメニューからできます。

 

バックテストを行うには

  1. IN戦略
  2. IN戦略(ファンダメンタル)
  3. OUT戦略
  4. STOP LOSS戦略(損切り戦略)
  5. 詳細設定

の5つを設定していきます。

「IN戦略」タブと「IN戦略(ファンダメンタル)」タブでは、ポジションをもつ条件を作成し、「OUT戦略」タブで利益確定の条件、「STOP LOSS戦略」タブで損切りの条件を作成できます。さらに詳細設定でバックテスト時の細かな設定を行うことができます。

それぞれの戦略画面は、上の画面の様な構成になっていて、それぞれで戦略の条件を立てていきます。

各戦略では、まず

  • ①戦略アイテム
  • ②戦略ターゲット
  • ④比較値

を設定していきます。

①戦略アイテム

戦略アイテム内で戦略ターゲット比較値の設定ができます。戦略アイテムは利用のプランによって設定できるアイテム数上限が決まっていますので、詳しくはプランをみてみましょう。

戦略アイテムは「AND」「OR」「NOT」の条件でつなげる事ができます。

戦略アイテムAを戦略アイテムBをANDでつなげたのなら、

「戦略アイテムAの条件と戦略アイテムBの条件両方が揃ったら」ってことですね!

②戦略ターゲット

戦略アイテム内にはAとBの最大2つの戦略ターゲットを設定できます。

画像の例だと

  • 前日の日足の終値
  • 前日の日足の単純移動平均線(15日)

という設定をしています。

移動平均線など様々なインジケーター指標も使えて、インジケーターなど指標によって③の「バー期間」など指標に必要なサブ条件を設定します。

戦略ターゲットでは、この例の様に

  • ⑦過去日(ターゲットとするバー)
  • ⑧足種類
  • ⑨ターゲット指標

の3つを設定することで条件を作っています。

⑦過去日(ターゲットとするバー)

過去日の設定では、バックテスト時にターゲットとする日(株価のバー)を決めていきます。

バックテストでは、指定の期間(例えば過去3年間など)まで過去に遡り、その時の株価データから1日ずつ順に作成した戦略条件に合致するかをチェックし、シグナルが出ていれば(戦略に合致すれば)INまたはOUT(LOSS CUT)を行いトレードをしていきます。

なので、例えばバックテストの開始日が「2025年2月5日」だった場合、

この画像の2つめの戦略アイテムの条件、Aの場合

  • バックテストのチェック日(2025年2月5日)の前日、2025年2月4日の日足の終値

がターゲットになります。

そして、その日にシグナルが出ていなかった(条件に合致しなかった)場合はバックテストのチェックは翌日の「2025年2月6日」へと移り、

  • バックテストのチェック日(2025年2月6日)の前日、2025年2月5日の日足の終値

をターゲットとしてチェックします。

また、この条件の場合、もし前日が市場休業日だった場合には前営業日のデータが「前日」という扱いになり、その営業日の株価データで条件のチェックを行います。

要するに「前日」ってのは、チャートで表示した時の前の一個前の株価データを使うよってことですね!

過去日には、前日の他にも日数も指定できます。

⑧足種類

足種類もご利用のプランによって使用できるものが異なり、「日足」「週足」「月足」があります。

尚、週足や月足を指定した場合、過去日設定での「BAR前」「BAR間」「BAR以内」といった「BAR系」のものと「前日」「日前」では意味合いが違ってきます。

  • ①2日前・週足・高値
  • ②2BAR前・週足・高値

ではチェックされるターゲットの株価データが異なり、例えばバックテストのチェック日が「2025年5月15日(木)」だった場合、

  • ①2日前・週足・高値 → 「2025年5月13日(火)」時点の週足株価データの高値
  • ②2BAR前・週足・高値 → 「2025年5月2日(金)」時点の週足株価データの高値

②の「2BAR」というのは、「週足チャートで見た時の2個まえの株価データを使うよ」ということですね!

逆に①はチェック日から2日前(2営業日前)ということになります。

特に高値・安値といったターゲットの場合には、週の途中での高値・安値なのか、週の終わり(その週全体)での高値・安値なのかは違うので注意しましょう!

⑨ターゲット指標

ターゲット指標には高値や安値など以外にも、MACDやストキャスティクス、一目均衡表といった主なインジケーターを使う事ができます。

例えばストキャスティクスを例にするとさらに「%Kがいくつ」「%Dがいくつ」というような細かな指定まで出来るので、自分の普段使っている設定値でちゃんとバックテストが出来てしまいます!

④比較値

ターゲットの設定が終わったら、最後に比較値を設定しましょう!

ターゲットは1つだけの設定もできるので、例えば戦略アイテム3つ目の場合には

  • 本日(バックテストのチェック日)、日足の20日間の平均売買代金

に対して

  • 1億円(100百万円)以上

という条件の指定の仕方をしています。

要するに「過去20日間で平均1億円以上の売買代金がある銘柄しか取引しない」という条件ですね。

全銘柄に対してバックテストを行うので、中にはほとんど取引(売買高)もない小型株も多く含まれちゃいます。

そうなると過去データでは全然取引がないのにいきなり100万円分買う様な事になり、現実的ではないですし、現実にそんな事をすれば自分の買いで一気に株価が上がってしまいますからね。

バックテストはあくまで過去データなので、現実的でないおかしな条件でも取引した事にできてしまうので、現実に即した最低限流動性のある銘柄だけ取引を行うような条件にするといいでしょう。

尚、ターゲットをAとBの2つ設定した場合には、AB比較で値を設定する事になります。

戦略アイテム2つ目の例だと

  • 前日の日足の終値
  • 前日の日足の単純移動平均線(15日)
  • に対して
  • 90%以下

という条件になっています。

「AがBに対して」という事ですね。

こういった様に円ベースだけでなく%ペースでも比較値が設定できます。

この例を言葉にすると

  • 前日に15日SMA(単純移動平均線)より10%以上下げてひけてた場合

という事になります。

いわゆる移動平均との乖離率を元にリバウンドを狙っていく戦略だという事ですね!

⑤決済曜日・決済月

その他にも、「この曜日だけINしたい」「この月は取引しない」といった設定も⑤の決済曜日・決済月から設定できます。OUT戦略やSTOP LOSS戦略でもそれぞれ設定が可能です。

⑥ロングとショート

画像の⑥では、ロングまたはショートを選択できます。

ショート派の人でもちゃんとバックテストできるってことですね!

決済値の設定

各戦略(ファンダメンタルは除く)には決済値というターゲットの入った戦略アイテムを必ず1つ加える必要があります。

この画像の例だと戦略アイテムの1番目のものになり、

  • 決済値が始値より0円以上

という設定をしています。ちょっとややこしく感じますが、これは単純に

  • 始値で決済する

という事になります。

この場合は、以上だろうと以下だろうと変わりはないので選択ボックスの上にある「以上」を選んでおけば問題ありません。

他にもあまりIN戦略で使うことはないですが、「指値」もできます。

例えば、

  • 決済値が始値より10円以上

と設定すれば、始値(寄り付き)から10円上がった時点で買い(または売り)を入れる。という条件になります。

ただし、ターゲットに終値を設定した場合は常に終値で決済をします。リアルなトレードでは終値より10円以上上で決済なんて出来ませんよね。。終値がいくらかなんてその当日のザラ場中にわかるわけもなく、わかった時にはザラ場は終了しているわけですから。。

指値に関しては、特にイグジット(OUT)や損切り(LOSS CUT)の時に使えます。

例えば、上の画像だと

  • 決済値がIN日の日足終値より0円以下
  • かつ
  • 本日日足安値がIN日の日足安値より0円以下

という条件になります。少しややこしく感じるかもしれませんが、どういうことかというと、

  • 今日(バックテストのチェック日)の日足安値がINした日の日足安値より下だったら、INした日の終値より下で決済する

という事になります。

要するに

INした日の終値に逆指値の損切り注文を入れておく

という事です。なので、

INしてからずるずると下がって(途中上がっていたこともあるでしょう)しまい、最終的に損切り注文にひっかかり、INした日の終値で決済。

もされますし、またギャップダウンでいきなりINした日の終値を飛び越えて下がったとしたら、

その日の寄り付きで損切りされる

という事ですね。こんな風に実際のトレードでやっているのと同じ様な条件を設定する事ができます。

詳細設定

詳細設定では、バックテスト時の各種設定ができます。これも利用するプランによって多少違いますが、低位プランでもまず困ることはないでしょう。

バックテストはまず全銘柄の中からランダムに100件行い、そこから全数テストが出来ます。全数テストは全銘柄をテストするということですね。(プランにより全数テストでのテスト対象の銘柄数が違います)

  1. 投資資金
  2. 対象銘柄(テスト対象銘柄)
  3. テスト期間
  4. 決済方法

投資資金

投資資金の設定が出来ます。特に希望がなければデフォルトの100万円を使いましょう。

この投資資金を元に全銘柄(プランによってテスト対象の銘柄数は違います)から、各銘柄を1日ずつ条件チェックしてトレードを行っていきます。

なので、同日に100銘柄でシグナルが出れば100銘柄にそれぞれ最大100万円を使うので、合計最大1億円使ってるという事にはなりリアルなトレードとは違いますが、このバックテストのあとに行う「仮想トレード」でリアルに即したトレードは行えるので大丈夫です。

ここでのバックテストはあくまで「戦略に統計的な有意性があるのか」「損失に対して利益がどのくらいか」「期待値がどのくらいか」というものを統計的にチェックするものになります。

ここで統計的な結果が悪ければ戦略を練り直し、自分で使えるレベルの範囲であれば次の仮想トレードに移っていくという流れで行いましょう。

対象銘柄(テスト対象銘柄)

対象銘柄もデフォルトの「全銘柄」を対象としておけば大丈夫です。

閉鎖銘柄(今はもうない銘柄)やETFなどまで対象にする必要はまずないでしょう。

また、銘柄コードを指定して個別銘柄1つだけを対象にテストすることもできます。

バックテストというのは期間×銘柄数の膨大な株価データやインジケーターデータを元に1日ずつチェックをしていくため、条件や期間・対象銘柄数によって処理時間が違ってきます。

プランにっても処理速度は違いますが、大体戦略アイテムが5件で3年間分の株価データでランダムな100銘柄をテストすると10秒ほどというイメージです。

1銘柄を集中的にトレードしているのなら、その銘柄に対して試したい戦略をテストするのもいいでしょう。

テスト期間

テスト期間もプランによって1年間〜となっていますが、1年〜3年分くらいでも十分に統計的なバックテストは出来ます。ただし、トレード数が極端に少ない戦略だと統計手法が効かないので、出来るだけ500トレードは欲しいところです。

どのくらいのトレード数があればいいかは、ChatGPTなりAIに聞いてみてもいいでしょう。

決済方法

未決済分も決済する

バックテストを1日ずつ行っていくとINはしたけどOUTやLOSS CUT条件にひっかからないままテスト期間を終了してしまうトレードも出てきます。

その場合にデフォルトでは、「そのトレードはトレードとして含まない(トレードにカウントせず統計にも反映されない)」ようになっていますが、テスト期間終了と同時に強制的に決済した事にしてトレードとしてカウントするならONにチェックを入れましょう。

特に希望がなければデフォルトのオフのままで大丈夫です。

同日決済を有効

デフォルトではINした日にはOUTやLOSS CUT条件にひっかかっていてもスルーし、翌日(翌営業日)からのチェックになります。

ですが、実際のトレードでは「INした日に下げてしまって損切り」ということもあるでしょう。

そういった場合を想定するなら、これをONにしておくとINした当日にOUTやLOSS CUTの条件がチェックされて条件に合っていれば同日に決済され1トレードとカウントされます。

戦略によっては、同日中に下げている場合が多いものもあるかもしれまんせ。一度デフォルトでテストしてみて、結果の各トレードをチェックして多い場合は、ONにして再度テストするといいでしょう。

強制決済

OUTやLOSS CUTの条件にあわなくても、ある日数(営業日)が過ぎたら強制的に決済させてポジションを手仕舞いする際にここに日数を入れましょう。

戦略によりけりですが、ポジションの保有期間がかなり差があるとその分1トレードあたりのボラティリティ(得られる利益や負うリスク)にばらつきがでてしまいます。

ばらつきを抑えたものにしたい場合は、1トレードの保有期間の最大をここで必ず決めておくといいでしょう。

テスト開始

全ての戦略条件と詳細の設定が終わったら、「テスト開始」ボタンを押してテストです!

最初はランダム100件をテストするので、そこでトレード数が少な過ぎたり、期待値やプロフィットファクターなど統計指標が悪い場合は「全数テスト」には進まずに各トレードの内容をチェックして戦略の見直しをしていきましょう!

テストが終わると登録のメールアドレスへ完了の通知が来るので、「完了したバックテスト」タブから確認しましょう。テストの進捗状況もここからチェックできますよ!

完了すると「結果を表示」と「全数テスト」のボタンが表示されるので、まずは「結果を表示」を押してチェックしてみましょう。結果がよければ「全数テスト」ボタンを押してさらに多くの銘柄をバックテストしていきましょう!

テスト対象が多いほど様々な業種や時価総額の銘柄が含まれるので、さらに統計が効いてきますよ〜

テスト結果の各種指標の見方は後編で!

カブチャレを使って、日本株銘柄トレードのバックテストをしてみよう!〜結果指標編〜

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です