バックテストツールの選び方:Pythonライブラリ・TradingView・MT5・ブラウザ

バックテストツールは、戦略を書く言語と、検証が動く場所で選ぶのが近道です。Pythonで自由に書きたいならbacktesting.py・vectorbt・Backtrader、チャートを見ながら手早く試したいならTradingView、MT5で自動売買する予定ならMT5のストラテジーテスターが自然な選択です。どれを選ぶ場合も、約定の前提と結果の分析のしやすさは必ず確かめてください。

選ぶ前に決めておくこと

ツールの機能表を見る前に、次の3つを決めておくと迷いが減ります。

  • 戦略を何で書くか:Python、Pine Script、MQL、表計算のどれで書くのが自分にとって楽か。
  • 検証したい対象:1銘柄の売買ルールか、複数銘柄のポートフォリオか。足のデータで十分か、ティックが必要か。
  • その後どうするか:検証だけで終えるのか、同じコードで自動売買まで進めたいのか。

たとえば、MT5で自動売買するつもりならMQL5で書いておくと移行が楽です。研究目的で大量のパラメータを試すなら、Pythonのライブラリが向いています。

主なバックテストの手段の比較

手段書く言語動く場所得意なこと気をつける点
backtesting.pyPython手元のPC1銘柄の戦略を短いコードで書ける。結果のグラフとパラメータ最適化の機能がある複数銘柄をまとめた検証には向かない
vectorbtPython手元のPC(ノートブック)配列演算で大量のパラメータの組み合わせを高速に試せる書き方がベクトル演算中心で、慣れるまで時間がかかる
BacktraderPython手元のPC1本ずつ足を進めるイベント駆動型。複数のデータや注文の種類を扱える大量のパラメータを回すと時間がかかりやすい
QuantConnect(LEAN)Python・C#クラウド、または手元複数資産の本格的な検証と、実運用までの流れがそろっている仕組みが大きく、個人の小さな検証には手順が多い
TradingViewPine Scriptブラウザチャートの上で戦略を書き、すぐ結果を見られるPine Scriptの中で完結するため、Pythonのライブラリは使えない
MT4・MT5MQL4・MQL5PCのアプリそのまま自動売買(EA)に使える。MT5はティックでの検証にも対応する検証に使うデータは、つないだ業者の提供するものになる
Excel・スプレッドシート数式PC・ブラウザ単純なルールなら、計算の中身を目で追えるTP/SLや複数の取引が重なると、正しく書くのが難しい
Hawk BacktesterPython、または内蔵の戦略ブラウザ(Pythonの戦略は手元で動く)相場環境別の成績、取引ごとのMFE・MAE、決済理由、前回との差分を最初から画面で見られる1回の検証は1銘柄、足のデータのみ。市場データは同梱していない

どのツールも、同じ戦略を書けば計算自体はできます。違いが出るのは、書きやすさ、速さ、そして結果をどこまで分解して見られるかです。

Pythonのライブラリを選ぶ場合

Pythonのライブラリは無料で使えるものが多く、pandasやNumPy、機械学習のライブラリとそのまま組み合わせられます。自由度の高さが一番の利点です。

一方で、結果の読み解きは自分で作る部分が多くなります。損益の合計やドローダウンは出ても、「負けトレードは出口と入口のどちらの問題か」「トレンドとレンジで成績がどう違うか」といった分析は、取引の一覧から自分で集計して描くことになります。書き方の基本はPythonでバックテストする方法にまとめています。

チャートツール・取引プラットフォームを選ぶ場合

TradingViewやMT4・MT5は、普段の取引の画面とつながっているのが強みです。思いついたルールをチャートの上ですぐ試せて、MT4・MT5ならそのまま自動売買に移れます。

気をつけたいのは、足の中の値動きをどう扱っているかです。同じ足でTPとSLの両方に届いた場合や、窓開けで損切りラインを飛び越えた場合の約定は、設定や検証モードで変わります。結果を信じる前に、約定の前提を一度確かめてください。

どのツールでも確かめたい5つの点

  1. 未来の情報を使っていないか:シグナルを出した足と、約定する足の関係。
  2. 約定の前提:TP/SLは何の価格で約定するか。窓開けのとき、同じ足で両方に届いたときはどうか。
  3. コスト:スプレッド・手数料・スリッページが、入るときと出るときの両方にかかっているか。
  4. 結果の分解:損益の合計以外に、取引ごとの値動きや決済理由を見られるか。
  5. パラメータへの敏感さ:値を少しずらしたときに成績が崩れないか。過剰最適化の解説を参照してください。

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が同じ足で届いたときにどちらを先にするかで、成績は数%変わることがあります。