Analysis Results — Calculation Logic
Hawk-Backtesterのシミュレーション実行後に出力される全ての解析結果の項目と、それぞれの計算ロジックをまとめたドキュメントです。
Outcome Statistics»
シミュレーション全体のパフォーマンスを示す基本指標です。
| Metric | Formula / Logic | Description |
|---|---|---|
| Total Return | (Equity(T) / InitialAssets) − 1 |
初期資産に対する最終エクイティの収益率 |
| Max Drawdown | min((Equity(t) − Peak(t)) / Peak(t)) |
ピークエクイティからの最大下落率。 各時点でピークを更新しながら計算 |
| Return / Max DD | TotalReturn / |MaxDrawdown| |
リターンとドローダウンの効率比 |
| Ending Assets | 最終時点の assets |
現金資産(未実現PnLを含まない) |
| Ending Equity | 最終時点の virtualAssets |
評価額 = 現金 + 未実現PnL |
| vs Buy & Hold | EndEquity(Strategy) − EndEquity(BuyAndHold) |
単純バイ&ホールド戦略との最終エクイティ差 |
| Total Steps | stat_history の長さ | シミュレーションの総時間ステップ数 |
Exposure Statistics»
ポジション露出度(レバレッジの利用状況)を示す指標です。
| Metric | Formula / Logic | Description |
|---|---|---|
| Avg Gross Exposure | mean(|NetUnits(t)| × Price(t) / Equity(t)) |
平均絶対ポジション倍率(レバレッジ) |
| Max Gross Exposure | max(GrossExposure(t)) |
最大レバレッジ到達時の倍率 |
| Avg Net Exposure | mean(NetUnits(t) × Price(t) / Equity(t)) |
平均ネットポジション。 正=ロングバイアス、負=ショートバイアス |
| Time in Market | Σ(GrossExposure > 0) / TotalSteps |
ポジションを保有していた時間の割合 |
| Long Ratio | TotalLongUnits / (LongUnits + ShortUnits) |
ユニット加重によるロング比率 |
| Short Ratio | 1 − LongRatio |
ユニット加重によるショート比率 |
| Exposure Efficiency | TotalReturn / AvgGrossExposure |
デプロイした平均レバレッジ1単位あたりのリターン |
Attribution Statistics»
PnLの構成要素を分解し、収益源とコストの寄与度を分析します。
| Metric | Formula / Logic | Description |
|---|---|---|
| Long PnL | Σ(closeRate − openRate) × units (buy側) |
ロングポジションからの合計損益 |
| Short PnL | Σ(openRate − closeRate) × units (sell側) |
ショートポジションからの合計損益 |
| Cost PnL | Σ cost (全チケット) |
取引コスト合計(スプレッド・手数料等) |
| Total PnL | LongPnL + ShortPnL + CostPnL |
総損益 |
| Long / Short / Cost Contribution | 各PnL / TotalPnL |
各要素のPnL寄与率 |
| Profit Factor | GrossProfit / GrossLoss |
利益トレードの合計 / 損失トレードの合計。 1以上で利益超過 |
| Win Rate | WinCount / (WinCount + LossCount) |
勝率(PnL > 0 のトレード比率) |
| Cost Burden | |CostPnL| / |LongPnL + ShortPnL| |
取引利益に対するコスト負担率 |
Action Statistics»
取引の頻度・規模・保有期間に関する統計です。
| Metric | Formula / Logic | Description |
|---|---|---|
| Total Orders | BuyCount + SellCount |
買い・売り注文の合計回数 |
| Buy / Sell Ratio | BuyCount / TotalOrders |
注文全体に占める買い注文の割合 |
| Orders Per 1000 Steps | (TotalOrders / TotalSteps) × 1000 |
1000ステップあたりの注文頻度 |
| Median Holding Time | median(CloseTime − OpenTime) |
保有期間の中央値 |
| P90 Holding Time | percentile(HoldingTimes, 90) |
保有期間の90パーセンタイル |
| Median Ticket Size | median(|units|) |
ポジションサイズの中央値 |
| Partial Close Count | Σ reduceCount |
部分決済イベントの合計回数 |
Scatter Analysis»
各トレードの多角的な散布図分析です。PnLは Nominal / Return(%) / R-Multiple の3つの表示モードを切替可能です。
前処理計算»
| Metric | Formula / Logic | Description |
|---|---|---|
| PnL (Nominal) | Long: (closeRate − openRate) × unitsShort: (openRate − closeRate) × units |
各トレードの絶対損益 |
| PnL (Return %) | PnL / (openRate × units) × 100 |
エントリー額に対する収益率 |
| PnL (R-Multiple) | PnL / RiskRisk = MAE > 0 ? MAE : 0.5 × |PnL| |
リスク1単位あたりのリターン |
| MFE | Long: (MaxHigh − openRate) × unitsShort: (openRate − MinLow) × units |
Maximum Favorable Excursion ポジション保有中の最大含み益 |
| MAE | Long: (openRate − MinLow) × unitsShort: (MaxHigh − openRate) × units |
Maximum Adverse Excursion ポジション保有中の最大含み損 |
S1: Holding Time vs PnL»
保有期間と損益の関係を可視化し、相関係数・勝率を分析します。
| Statistic | Formula |
|---|---|
| Correlation | Pearson相関係数 (Holding Time, PnL) |
| Median HT — Winners | median(HoldingTime) for PnL > 0 |
| Median HT — Losers | median(HoldingTime) for PnL < 0 |
| Win Rate | Winners / Total × 100 |
S2: MAE vs MFE»
含み損(MAE)と含み益(MFE)の関係を分析し、MFE = MAE の対角線でブレイクイーブンを示します。
| Statistic | Formula |
|---|---|
| Mean MFE — Winners | mean(MFE) for PnL > 0 |
| Mean MAE — Losers | mean(MAE) for PnL < 0 |
| P(Favorable Excursion) | (MFE > MAE の件数) / Total × 100 |
| Heat Efficiency | mean(PnL / MFE) for winners (MFE > 0) |
S3: Position Size vs PnL»
ポジションサイズと損益の関係を分析します。
| Statistic | Formula |
|---|---|
| Correlation | Pearson相関係数 (Size, PnL) |
| Win Rate — Top Decile | サイズ上位10%のトレードの勝率 |
| Win Rate — Bottom Decile | サイズ下位10%のトレードの勝率 |
S4: Entry Price vs PnL»
エントリー価格帯と損益の関係を分析します。
| Statistic | Formula |
|---|---|
| Win Rate — Low Price Q1 | 価格下位25%のトレードの勝率 |
| Win Rate — High Price Q3 | 価格上位25%のトレードの勝率 |
| Mean PnL — Low Q1 | mean(PnL) for Q1 |
| Mean PnL — High Q3 | mean(PnL) for Q3 |
S5: Entry Time vs PnL»
エントリータイミング(時間軸)と損益の関係を分析します。
| Statistic | Formula |
|---|---|
| Win Rate — Early Q1 | 時系列前半25%のトレードの勝率 |
| Win Rate — Late Q3 | 時系列後半25%のトレードの勝率 |
| Mean PnL — Early | mean(PnL) for 前半 Q1 |
| Mean PnL — Late | mean(PnL) for 後半 Q3 |
Exit Analysis»
トレードの決済理由を分類し、TP/SLの到達状況と異常検出を行います。
Exit Reason Classification»
| Exit Reason | 判定条件 | Description |
|---|---|---|
| Take Profit (TP) | Buy: high ≥ openRate + TPSell: low ≤ openRate − TP |
利確水準に到達して決済 |
| Stop Loss (SL) | Buy: low ≤ openRate − SLSell: high ≥ openRate + SL |
損切水準に到達して決済。 TP/SL同時到達時はSL優先 |
| Strategy Close | 戦略コードによる明示的なクローズ | ユーザーの戦略ロジックによる決済 |
| Force Close | 証拠金不足による強制決済 | ロスカット |
Exit Summary»
各決済理由ごとに以下を集計します:
| Statistic | Formula |
|---|---|
| Count | 各理由での決済回数 |
| Share | Count / TotalTrades |
| Sum PnL | 各理由での合計損益 |
| Avg PnL | SumPnL / Count |
| Median PnL | median(PnL values) |
| Win Rate | (PnL > 0 の件数) / Count |
TP/SL Reach Matrix (2×2)»
TP到達・SL到達の組み合わせ(2×2)で各トレードを分類します。float32精度(WASMエンジン準拠)で判定。
| SL=Not Reached | SL=Reached | |
|---|---|---|
| TP=Reached | Count, Share, Sum PnL, Avg PnL | Count, Share, Sum PnL, Avg PnL (SL到達 → SL優先で決済) |
| TP=Not Reached | Count, Share, Sum PnL, Avg PnL (TP/SL未到達 → 戦略/強制決済) |
Count, Share, Sum PnL, Avg PnL |
Miss & Anomaly Detection»
| Metric | Formula | Description |
|---|---|---|
| Miss TP Rate | (TP到達 but TP以外で決済) / TP到達数 |
TP到達にもかかわらず利確しなかった割合 |
| Miss SL Rate | (SL到達 but SL以外で決済) / SL到達数 |
SL到達にもかかわらず損切しなかった割合 |
| Anomaly TP Rate | (TP決済 but TP未到達) / TP決済数 |
TP未到達なのにTP決済として記録された割合 (float精度の問題等) |
| Anomaly SL Rate | (SL決済 but SL未到達) / SL決済数 |
SL未到達なのにSL決済として記録された割合 |
Timeline Charts»
時系列で同期されたチャート群です。各チャートのX軸は共通のタイムラインで同期されます。
| Chart | Content | Description |
|---|---|---|
| Price + Positions | OHLC + エントリー/エグジットマーカー | 価格チャートにポジションの開始・終了を重ねて表示 |
| Equity Curve | virtualAssets(t) |
時間経過に伴うエクイティの推移 |
| Drawdown | (Equity(t) − Peak(t)) / Peak(t) |
ドローダウンの推移(負の値の面グラフ) |
| Gross Exposure | |NetUnits(t)| × Price(t) / Equity(t) |
グロスエクスポージャーの推移 |
| Net Exposure | NetUnits(t) × Price(t) / Equity(t) |
ネットエクスポージャーの推移 (正=ロング優位、負=ショート優位) |