Python・FX・株式のバックテストツール
その売買ルールは、
なぜ勝って、
なぜ負けたのか。
Hawk Backtesterは、損益の合計で終わらないバックテストツールです。相場ごとの成績と、トレード1件ごとの値動き・決済理由まで分解するので、次に直すべき場所がわかります。
- 登録・インストール不要
- 戦略コードはPCの外に出ない
- 約定の前提をすべて公開
合計の損益だけでは足りない理由
同じ −2.8% でも、直す場所は逆になる。
損益の合計が同じ2つの戦略でも、負け方が違えば、直すべき場所は変わります。合計だけを見て利確幅をいじると、効かない方を直してしまいます。
戦略A:一度は含み益だった負けが多い
−2.8%
- 負け21件のうち15件は、途中で+0.8%以上の含み益があった
- 利確に届く前に反転して、損切りで終わっている
直すのは出口(利確幅・決済の条件)
戦略B:入ってすぐ逆行した負けが多い
−2.8%
- 負け21件のうち17件は、一度も含み益にならずに損切り
- レンジ相場でのエントリーに負けが集中している
直すのは入口(エントリー条件・相場の絞り込み)
※ 説明のための例です。Hawk Backtesterでは、この分け方をトレード一覧と「改善のヒント」で確認できます。
Hawk Backtesterでわかること
数字ではなく、理由で返すバックテスト。
相場ごとの成績
エントリー時の相場を、上昇トレンド・下降トレンド・レンジ・急変動に分けて、取引数・勝率・損益を集計します。トレンドでは勝つのにレンジで全部失う、といった戦略の性格がひと目でわかります。
相場環境別に結果を分ける方法 →
トレード1件ずつの分解
トレードごとに、最大含み益(MFE)・最大含み損(MAE)・決済理由(利確・損切り・反対シグナル)を記録します。「改善のヒント」を押すと、その根拠になったトレードだけに一覧を絞り込めます。
MFE・MAEで負けトレードを分ける →
前回の実行との差分
戦略を直して再実行すると、前回からどのトレードが変わったかを表示します。Pythonのファイルは、保存するだけで自動で再実行されます。
利確幅を1%から2%にしたとき、取引数は60件のまま、20件の結末が変わり、その約半分は悪化していました。合計だけなら「少し良くなった」に見える変更です。
Pythonでバックテストする方法 →総当たりのヒートマップ
2つのパラメータを総当たりし、成績をヒートマップで表示します。一番良いマスの隣に周囲の平均も並べるので、たまたま当たった値を選ぶ失敗を防げます。
過剰最適化を避ける方法 →
AIによる読み解き
集計した数値をAIが読み、見るべき点と次に試す検証を返します。送るのは集計値だけで、コードや生データは送りません。売買をすすめる内容は出しません。

結果を信じられるように
前提を隠さない。コードを預からない。
戦略コードはPCの外に出ない
Pythonの戦略は手元のPCで動き、ブラウザとはローカルの接続でやり取りします。GPUや外部APIなど、好きなライブラリをそのまま使えます。
約定の前提をすべて公開
自分のエンジンで約定のバグを4つ見つけ、直したら成績が最大4%動きました。それ以来、窓開け・同じ足での利確と損切り・スプレッドの扱いを公開しています。
シミュレーションモデル →データは自分のもの
CSV、合成データ、自分のデータAPIキー(Twelve Dataなど)で検証できます。キーは暗号化して保存し、データをほかのユーザーと共有することはありません。
データAPIについて →使い方
ブラウザだけでも、自分のPythonでも。
自分のPythonで
Paramと書いた値がブラウザのスライダーになり、動かすと手元のコードがその値で再実行されます。
pip install -U hawk-bt hawk-bt run my_strategy.pyPython SDKのドキュメント →
AIエージェントから
Agent APIを使うと、Claude CodeなどのAIエージェントが、戦略の作成・実行・分析・改善を繰り返せます。結果は構造化JSONで返ります。導入の伴走(有料パイロット)も相談できます。
Agent APIのドキュメント →比較
無料のPythonライブラリと、何が違うのか。
backtesting.py・vectorbt・Backtraderは、計算の速さと自由度に優れたライブラリです。Hawk Backtesterは、計算の後にある「読み解き」を最初から画面に用意しています。戦略をPythonで書く点は同じです。
| 一般的なPythonライブラリ | Hawk Backtester | |
|---|---|---|
| 戦略の書き方 | Python | Python(または内蔵戦略) |
| 相場ごとの成績 | 集計のコードを自分で書く | 標準で表示 |
| MFE・MAE・決済理由 | ライブラリによる。多くは自分で計算する | トレードごとに表示し、ヒントから絞り込める |
| 前回の実行との差分 | 結果を保存して自分で比べる | 保存すると自動で再実行し、変わったトレードを表示 |
| パラメータの総当たり | 実行はできる。図は自分で描く | ヒートマップと周囲の平均を表示 |
| コードの置き場所 | 手元のPC | 手元のPC(サーバーに送らない) |
| 費用 | 無料(オープンソース) | 無料プランあり |
まだできないこと
- 1回の検証は1銘柄まで(ポートフォリオは未対応)
- ローソク足のデータのみ(ティックは未対応)
- 市場データの同梱はなし(CSV・合成データ・自分のAPIキー)
- アプリ本体はPC向け(デモはスマホでも動きます)
FAQ
よくある質問
無料で使えますか?
使えます。デモは登録なしで動きます。無料のTrialプランでも、バックテストは回数無制限です。結果の保存やパラメータ総当たりの回数を増やしたい場合は、有料プラン(月2,200円から)があります。
自分の戦略コードはアップロードされますか?
されません。Pythonの戦略は手元のPCで動き、ブラウザとはローカルのWebSocketでつながります。戦略のコードがサーバーに送られることはありません。
backtesting.py や vectorbt とは何が違いますか?
計算そのものは、どのライブラリでもできます。Hawk Backtesterは、相場別の成績、トレードごとの最大含み益と最大含み損、決済理由、前回との差分といった「なぜ勝ち負けしたか」を読むための分析を、最初から画面に用意しています。Pythonで戦略を書く点は同じです。
どんなデータで検証できますか?
CSVのアップロード、合成データの生成、自分のデータAPIキー(Twelve Dataなど)での取り込みに対応しています。株式・ETF・FX・暗号資産のOHLCV(ローソク足)を扱えます。市場データの同梱はありません。
FXや株のバックテストに使えますか?
使えます。ローソク足のデータがあれば、銘柄の種類は問いません。スプレッドと手数料も設定できます。現時点では1回の検証で1銘柄で、ティックデータには対応していません。
スマホで使えますか?
デモはスマホでも動きます。アプリ本体はPC向けです。自分のPythonと接続するため、PCのChromeでの利用を推奨しています。
約定はどう計算していますか?
利確と損切りは指定した価格で約定し、窓を開けて飛び越えた場合は始値で約定します。同じ足で両方に届いた場合は、損切りが先と仮定します。シグナルの足の終値で入るか、次の足の始値で入るかを選べます。詳しくはシミュレーションモデルのページで公開しています。
投資助言や売買シグナルを提供していますか?
していません。Hawk Backtesterは売買ルールを検証・分析するためのツールです。AIによる要約も、結果の読み方と次に試す検証を示すだけで、売買はすすめません。
解説
バックテストの結果を読むための解説
- Pythonでバックテストする方法:戦略を書いて、結果を読むまでPythonで売買ルールのバックテストを書く手順と、損益の合計だけでは見えない結果の読み方を、hawk-btのコード例つきで解説します。
- MFE・MAEとは?負けトレードを「出口の問題」と「入口の問題」に分けるMFE(最大含み益)とMAE(最大含み損)の意味と計算、バックテストの負けトレードを出口と入口のどちらで直すべきか見分ける方法を解説します。
- バックテストの過剰最適化(カーブフィッティング)を避ける方法パラメータ最適化で一番成績の良い値を選ぶと、なぜ別の期間で崩れやすいのか。ヒートマップで「周りも良い範囲」を選ぶ考え方を解説します。
- バックテストの約定の前提:窓開け・TPとSLの同時ヒット・スプレッドバックテストの成績は約定の前提で数%変わります。窓開け時の損切り、同じ足でTPとSLに届いた場合、スプレッドと手数料、エントリーの足のずれを解説します。
- 相場環境(トレンド・レンジ)別にバックテスト結果を分ける同じ売買ルールでも、トレンド相場とレンジ相場で成績は逆になることがあります。相場環境ごとに結果を分けて、戦略の得意・不得意を確かめる方法を解説します。
- バックテストツールの選び方:Pythonライブラリ・TradingView・MT5・ブラウザbacktesting.py、vectorbt、Backtrader、TradingView、MT5のストラテジーテスターなど、バックテストの手段ごとの向き不向きと、選ぶときに確かめたい点を整理します。