株の売買ルールを考えたとき、
「この方法、本当に利益が出るのだろうか?」
と思ったことはないでしょうか。
そんなときに使えるのがバックテストです。
バックテストと聞くと、
「専用ソフトが必要そう」
「プログラミングができないと無理そう」
「難しい分析が必要そう」
と思うかもしれません。
しかし、実はもっと簡単に始められます。
最もシンプルな方法なら、過去の株価チャートを見ながら売買結果を記録するだけでもバックテストはできます。
慣れてきたら、
- Excel・Googleスプレッドシート
- 証券会社のツール
- 無料のバックテストツール
- TradingView
- Python
と、少しずつ効率化していけば十分です。
私自身も、最初から複雑な仕組みを作ったわけではありません。
簡単な売買ルールの検証から始めて、対象銘柄を増やし、損切り、資金制約、スリッページなどを一つずつ追加してきました。
この記事では、株のバックテストとは何か、一番簡単な方法から順番に解説します。
株のバックテストとは?
バックテストとは、過去の株価データを使って、決めた売買ルールで取引していたらどのような結果になったかを検証することです。
例えば、
「5営業日連続で株価が下落したら買う」
というルールを考えたとします。
このルールを実際のお金でいきなり試すのではなく、過去のチャートを使って、
- 何回買い条件が成立したか
- 何回利益になったか
- 何回損失になったか
- 平均でどのくらい利益・損失が出たか
- 最大でどのくらい損をしたか
などを確認します。
もちろん、過去に利益が出たからといって、将来も同じように利益が出るとは限りません。
それでも、思いついた売買ルールを実際のお金で試す前に、過去データで検証する材料にはなります。
一番簡単なのは「過去チャートを見て自分で数える」
バックテストを始めるために、いきなりPythonを勉強する必要はありません。
最初は、過去のチャートを見ながら自分で売買結果を数える方法で十分です。
今回は実際の日本株を使って試してみます。
今回試す売買ルール

対象は**トヨタ自動車(7203)**です。
株価を見てから都合よく条件を変えないように、先に売買ルールを決めます。
買い条件
5営業日連続で終値が前日を下回ったら、翌営業日の始値で買う。
売り条件
- 買値から+5%で利益確定
- 買値から-5%で損切り
- どちらにも到達しなければ10営業日後に売却
今回は日足の高値・安値を使い、利確・損切りラインへの到達を判定します。
※同じ日に利確ラインと損切りラインの両方へ到達した場合、日足だけではどちらが先だったか判断できないため、別途確認が必要です。
この売買ルールがおすすめという意味ではありません。
今回は、バックテストをどうやるのかを理解するための例です。
① 5営業日連続で下落した場所を探す
2026年6月のトヨタ株を確認すると、次のように終値が推移していました。
| 日付 | 終値 |
|---|---|
| 6月15日 | 2,902.5円 |
| 6月16日 | 2,847.5円 |
| 6月17日 | 2,810円 |
| 6月18日 | 2,793.5円 |
| 6月19日 | 2,776.5円 |
| 6月22日 | 2,741.5円 |
6月16日から6月22日まで、5営業日連続で前日の終値を下回っています。
ここで買い条件が成立しました。
② 翌営業日の始値で買う
条件が成立した6月22日の終値で買ったことにはしません。
今回のルールは、
「条件成立の翌営業日の始値で買う」
と最初に決めています。
翌6月23日の始値は2,745円でした。
したがって、
買値:2,745円
として記録します。
③ 利確と損切り価格を決める
買値が決まったので、売却価格も計算します。
利益確定は、
2,745円 × 1.05 = 2,882.25円
損切りは、
2,745円 × 0.95 = 2,607.75円
です。
つまり、
- 2,882.25円まで上昇 → 利益確定
- 2,607.75円まで下落 → 損切り
- どちらにも届かない → 10営業日後に売却
という条件で、その後の株価を追います。
④ その後の株価を追う
買った直後から上昇したわけではありません。
6月24日の安値は2,686円まで下落しました。
それでも、事前に決めた損切り価格2,607.75円には届いていません。
その後は反発し、
- 7月2日 高値2,839円
- 7月3日 高値2,856.5円
- 7月6日 高値2,923円
と推移しました。
7月6日に初めて、利益確定ラインの2,882.25円へ到達しました。
事前に設定した10営業日の保有期限より前に利確ラインへ到達したため、今回のルールではここで利益確定です。
⑤ 結果を記録する
今回の結果は、
2,745円で買い
→ 2,882.25円で利益確定
→ +5.0%
となりました。
100株なら、手数料などを考慮する前の利益は、
(2,882.25円-2,745円)×100株 = 13,725円
です。
1回勝っただけでは「使える売買ルール」とはいえない
ここがバックテストでは重要です。
今回の取引は+5%になりました。
だからといって、
「5日連続で下落した株を買えば儲かる」
とはいえません。
今回は、たった1回の結果だからです。
別の時期なら損切りになるかもしれません。
トヨタ以外では通用しないかもしれません。
相場全体が下落している時期には結果が変わる可能性もあります。
そこで、
同じ条件を10回試す
↓
別の期間でも試す
↓
別の銘柄でも試す
と検証を増やしていきます。
すると今度は、
「これを全部手作業でやるのは大変だ」
という問題が出てきます。
ここでExcelやバックテストツール、Pythonなどを使う意味が出てきます。
バックテストでは何を確認すればいい?
最初は難しい指標を大量に見る必要はありません。
まずは、次のような記録だけでも十分です。
| 日付 | 銘柄 | 買値 | 売値 | 損益率 | 勝敗 |
|---|---|---|---|---|---|
| ○月○日 | A社 | 1,000円 | 1,080円 | +8.0% | 勝ち |
| ○月○日 | A社 | 1,200円 | 1,140円 | -5.0% | 負け |
取引が増えてきたら、次の数字も確認します。
取引回数
そのルールで何回取引が発生したか。
数回しかない結果だけで、売買ルールの良し悪しを判断するのは難しくなります。
勝率
全取引のうち利益になった割合です。
20回取引して15回利益なら、勝率75%です。
ただし、勝率だけを見てはいけません。
平均利益と平均損失
勝ったときの平均利益と、負けたときの平均損失を確認します。
例えば、
勝率80%
平均利益 +2%
平均損失 -15%
なら、勝率だけを見て「良い売買ルール」と判断するのは危険です。
最大損失
1回の取引で最大どのくらい損失が出たかも確認します。
実際にその戦略を続けられるのかを考えるうえでも重要です。
勝率が高くても安心できない
これは私自身のバックテストでも実際に経験しました。
開発中の日本株AI投資支援ツールで対象を20銘柄まで広げたところ、
224取引で勝率76.3%
という結果になりました。
数字だけを見ると、かなり良さそうに見えます。
ところが詳しく調べると、
最大損失は-61.30%
でした。
つまり、
「勝率が高い=安全な売買ルール」ではありません。
この結果を受けて、その後は損切り条件を追加した場合や、資金制約を入れた場合なども検証するようになりました。
→ 株のバックテストを20銘柄に拡大|224取引で勝率75%、でも最大損失-62%
株のバックテストをする6つの方法

ここまで紹介した手動検証以外にも、バックテストにはさまざまな方法があります。
最初は簡単な方法から始め、必要に応じて効率化していくと分かりやすいです。
難易度はあくまで目安です。
利用するサービスや検証内容によっては、専用ツールの方がExcelより簡単な場合もあります。
① 過去チャートで手動検証
今回実際にやった方法です。
最大のメリットは、すぐに始められること。
一方で100回、1,000回と検証するのには向いていません。
まずバックテストそのものを理解したい人に向いています。
② Excel・Googleスプレッドシート
手動で記録することに慣れてきたら、ExcelやGoogleスプレッドシートを使う方法があります。
損益率、勝率、平均利益、平均損失などを自動計算できるため、
「手作業を減らしたいけれど、プログラミングまではしたくない」
という人に向いています。
③ 証券会社のツール
証券会社には、売買ルールの検証やシミュレーションに使える機能が用意されている場合があります。
普段利用している証券会社の環境を活用できるのがメリットです。
一方で、利用できる機能や条件、料金などはサービスによって異なります。
まずは利用している証券会社にバックテスト関連機能があるか確認してみるとよいでしょう。
④ 無料・専用バックテストツール
プログラミングをしなくても利用できるバックテストサービスもあります。
条件を入力するだけで、
- 勝率
- 損益
- 取引回数
- 資産推移
などを計算できるものもあります。
一方で、無料版では使える機能やデータ期間などに制限がある場合があります。
今後KABU BUILDでも、複数の無料ツールを同じ条件で実際に使い、どのような違いがあるのか検証する予定です。
⑤ TradingView
TradingViewには、過去のチャートを使った検証や、売買戦略を検証するための機能があります。
普段からTradingViewを利用している人には使いやすい方法です。
ストラテジーでは、初期資金や手数料、スリッページなどを設定して検証することもできます。
一方で、独自の売買ルールを自動で検証する場合には、Pine Scriptなどの知識が必要になる場合があります。
⑥ Pythonでバックテストする
さらに自由度を高くしたい場合はPythonがあります。
Pythonなら、
- 複数銘柄をまとめて検証
- RSIやMACDなどを組み合わせる
- 損切り条件を比較
- 投資資金を設定
- 手数料やスリッページを考慮
- 売買履歴を保存
- 資産推移を分析
など、自分の目的に合わせて検証できます。
その代わり、6つの方法の中では最も準備が必要です。
私自身もプログラミング未経験から始め、1銘柄の簡単な検証から少しずつ機能を増やしてきました。
→ 日本株AI自動売買ツール開発記録|未経験から実運用を目指すまで
初心者はどの方法から始めればいい?
初めてなら、いきなりPythonから始める必要はありません。
まずは今回のように過去チャートを使って、何回か自分で結果を記録してみる。
そのうえで、
もっと多くの取引を調べたい
→ Excelや専用ツール
チャート上で戦略を検証したい
→ TradingView
複数銘柄や独自条件を大量に検証したい
→ Python
と、目的に合わせて進めれば十分です。
バックテストで初心者が注意したいこと
バックテストは便利ですが、やり方によっては実際よりかなり良い結果が出てしまいます。
未来の株価を見ながら判断しない
過去チャートを使った手動検証では特に注意が必要です。
未来の値動きを知った状態で、
「ここなら買っていた」
と判断すると、結果が良くなりやすくなります。
結果を見てからルールを変えない
損失になった取引を見て、
「この場合だけ買わないことにしよう」
と後から条件を変更すると、過去の値動きに都合のいいルールになってしまいます。
ルールを変更するなら、変更後のルールでも改めて検証します。
都合のいい銘柄だけで試さない
上昇した銘柄だけを選んで検証すると、結果も良くなりやすくなります。
1銘柄でやり方を理解した後は、複数銘柄でも確認します。
短い期間だけで判断しない
上昇相場では強かったルールが、下落相場では機能しないこともあります。
期間を変えて確認することも重要です。
手数料やスリッページを忘れない
バックテスト上の価格と、実際に約定できる価格には差が生じることがあります。
取引回数が多いほど、この差も積み重なります。
勝率だけを見ない
勝率90%でも、1回の大きな損失でそれまでの利益を失う可能性があります。
勝率だけでなく、
- 平均利益
- 平均損失
- 最大損失
- 合計損益
なども確認します。
実際にバックテストすると、次々に問題が見つかった
私自身のバックテストも、最初は単純なものでした。
ところが検証を続けると、
1銘柄では結果を信用しにくい
↓
対象を20銘柄へ拡大
勝率は高かった
↓
最大損失が大きいことが判明
損切りを追加
↓
損失は抑えられるが、成績とのトレードオフが発生
100万円で運用すると仮定
↓
シグナルが出ても資金不足で買えない銘柄がある
スリッページを考慮
↓
理論上の成績と実運用条件との差が見えてくる
というように、次々に新しい課題が見つかりました。
バックテストは、一度やって終わりではなく、問題を見つけて検証を重ねていく作業だと感じています。
その過程は、こちらにまとめています。
→ 日本株AI自動売買ツール開発記録|未経験から実運用を目指すまで
株のバックテストについてよくある質問
バックテストは無料でできますか?
できます。
最も簡単なのは、無料で見られる過去チャートを使って手動で検証する方法です。
ほかにも無料で利用できるバックテストツールや、証券会社が提供する機能などがあります。
バックテストには何回くらいの取引が必要ですか?
「○回あれば十分」と一律には決められません。
数回の結果だけで判断せず、期間や銘柄を変えて同じルールを繰り返し検証することが重要です。
バックテストで利益が出れば実際にも儲かりますか?
過去のデータで利益が出ても、将来の利益が保証されるわけではありません。
相場環境は変化しますし、実際の取引では手数料やスリッページなども発生します。
バックテストは「将来の利益を証明するもの」ではなく、売買ルールの特徴や弱点を調べるための検証手段として考えるのがよいでしょう。
まずは1銘柄・1回から始めてみよう
バックテストという言葉だけを見ると難しそうですが、最初から高度なツールを使う必要はありません。
まずは、
- 好きな日本株を1銘柄選ぶ
- 買い条件を決める
- 利確・損切り条件を決める
- 過去チャートを見る
- 1回の売買結果を記録する
ここから始めれば十分です。
仕組みが分かったら、同じ条件を10回、20回と増やしていく。
そして、
「手作業では大変だ」
と感じたところで、Excelやバックテストツールを使えばいい。
さらに大量の銘柄や独自条件を検証したくなったら、Pythonという選択肢もあります。
簡単な方法から始めて、必要になった部分だけ効率化する。
これが、これから株のバックテストを始める人には分かりやすい進め方だと思います。



コメント