バックテストツールの選び方:Pythonライブラリ・TradingView・MT5・ブラウザ
バックテストツールは、戦略を書く言語と、検証が動く場所で選ぶのが近道です。Pythonで自由に書きたいならbacktesting.py・vectorbt・Backtrader、チャートを見ながら手早く試したいならTradingView、MT5で自動売買する予定ならMT5のストラテジーテスターが自然な選択です。どれを選ぶ場合も、約定の前提と結果の分析のしやすさは必ず確かめてください。
選ぶ前に決めておくこと
ツールの機能表を見る前に、次の3つを決めておくと迷いが減ります。
- 戦略を何で書くか:Python、Pine Script、MQL、表計算のどれで書くのが自分にとって楽か。
- 検証したい対象:1銘柄の売買ルールか、複数銘柄のポートフォリオか。足のデータで十分か、ティックが必要か。
- その後どうするか:検証だけで終えるのか、同じコードで自動売買まで進めたいのか。
たとえば、MT5で自動売買するつもりならMQL5で書いておくと移行が楽です。研究目的で大量のパラメータを試すなら、Pythonのライブラリが向いています。
主なバックテストの手段の比較
| 手段 | 書く言語 | 動く場所 | 得意なこと | 気をつける点 |
|---|---|---|---|---|
| backtesting.py | Python | 手元のPC | 1銘柄の戦略を短いコードで書ける。結果のグラフとパラメータ最適化の機能がある | 複数銘柄をまとめた検証には向かない |
| vectorbt | Python | 手元のPC(ノートブック) | 配列演算で大量のパラメータの組み合わせを高速に試せる | 書き方がベクトル演算中心で、慣れるまで時間がかかる |
| Backtrader | Python | 手元のPC | 1本ずつ足を進めるイベント駆動型。複数のデータや注文の種類を扱える | 大量のパラメータを回すと時間がかかりやすい |
| QuantConnect(LEAN) | Python・C# | クラウド、または手元 | 複数資産の本格的な検証と、実運用までの流れがそろっている | 仕組みが大きく、個人の小さな検証には手順が多い |
| TradingView | Pine Script | ブラウザ | チャートの上で戦略を書き、すぐ結果を見られる | Pine Scriptの中で完結するため、Pythonのライブラリは使えない |
| MT4・MT5 | MQL4・MQL5 | PCのアプリ | そのまま自動売買(EA)に使える。MT5はティックでの検証にも対応する | 検証に使うデータは、つないだ業者の提供するものになる |
| Excel・スプレッドシート | 数式 | PC・ブラウザ | 単純なルールなら、計算の中身を目で追える | TP/SLや複数の取引が重なると、正しく書くのが難しい |
| Hawk Backtester | Python、または内蔵の戦略 | ブラウザ(Pythonの戦略は手元で動く) | 相場環境別の成績、取引ごとのMFE・MAE、決済理由、前回との差分を最初から画面で見られる | 1回の検証は1銘柄、足のデータのみ。市場データは同梱していない |
どのツールも、同じ戦略を書けば計算自体はできます。違いが出るのは、書きやすさ、速さ、そして結果をどこまで分解して見られるかです。
Pythonのライブラリを選ぶ場合
Pythonのライブラリは無料で使えるものが多く、pandasやNumPy、機械学習のライブラリとそのまま組み合わせられます。自由度の高さが一番の利点です。
一方で、結果の読み解きは自分で作る部分が多くなります。損益の合計やドローダウンは出ても、「負けトレードは出口と入口のどちらの問題か」「トレンドとレンジで成績がどう違うか」といった分析は、取引の一覧から自分で集計して描くことになります。書き方の基本はPythonでバックテストする方法にまとめています。
チャートツール・取引プラットフォームを選ぶ場合
TradingViewやMT4・MT5は、普段の取引の画面とつながっているのが強みです。思いついたルールをチャートの上ですぐ試せて、MT4・MT5ならそのまま自動売買に移れます。
気をつけたいのは、足の中の値動きをどう扱っているかです。同じ足でTPとSLの両方に届いた場合や、窓開けで損切りラインを飛び越えた場合の約定は、設定や検証モードで変わります。結果を信じる前に、約定の前提を一度確かめてください。
どのツールでも確かめたい5つの点
- 未来の情報を使っていないか:シグナルを出した足と、約定する足の関係。
- 約定の前提:TP/SLは何の価格で約定するか。窓開けのとき、同じ足で両方に届いたときはどうか。
- コスト:スプレッド・手数料・スリッページが、入るときと出るときの両方にかかっているか。
- 結果の分解:損益の合計以外に、取引ごとの値動きや決済理由を見られるか。
- パラメータへの敏感さ:値を少しずらしたときに成績が崩れないか。過剰最適化の解説を参照してください。
Hawk Backtesterが向いている人
Hawk Backtesterは、「結果の数字は出たが、なぜそうなったのかが分からない」という場面のために作っています。計算の速さや資産の種類の多さで、上の大きなツールと競うものではありません。
- 登録なしのデモで、ブラウザだけで内蔵の戦略(移動平均クロス・ドンチャンブレイクアウト・ボリンジャーバンド・RSI)を動かせます。
- 自分の戦略はPythonで書けます。コードは手元のPCで動き、サーバーには送られません。
- 相場環境別の成績、取引ごとの最大含み益と最大含み損、決済理由、取引から出るヒントを、最初から画面で見られます。
- 戦略のファイルを保存すると再実行され、前回の実行と比べてどの取引が変わったかが出ます。

できないことも書いておきます。1回のバックテストで扱えるのは1銘柄で、ポートフォリオやティックデータには対応していません。市場データは同梱していないので、CSVのアップロード、合成データの生成、自分のTwelve DataなどのAPIキーでの取り込みのどれかで用意します。アプリはPC向けで、スマートフォンではデモだけが快適に動きます。料金はプランのページにあり、無料プランでもバックテストの回数に上限はありません。
よくある質問
無料で使えるバックテストツールはありますか?
あります。backtesting.py・vectorbt・Backtraderなど、Pythonのオープンソースのライブラリは無料で使えます。TradingViewやMT4・MT5にも、無料で使えるバックテストの機能があります。Hawk Backtesterにも無料プランがあります。
初心者はどれから始めればよいですか?
プログラムを書いたことがなければ、まずチャートツールの機能や、登録不要のデモで「バックテストで何が分かるか」をつかむのがおすすめです。Pythonを書けるなら、backtesting.pyのような短く書けるライブラリから始めると、仕組みを理解しやすくなります。
ツールによって結果が違うのはなぜですか?
約定の前提、コスト、データの違いが主な原因です。同じ戦略でも、シグナルの足の終値で入るか次の足の始値で入るか、TPとSLが同じ足で届いたときにどちらを先にするかで、成績は数%変わることがあります。