fix: judge robustness under the recommended exit, not the abandoned one
The robustness warning was computed on the target-model distribution while the same panel recommends the hold exit — internally inconsistent. _robustness_stats (median, profit factor, ex-top-5% expectancy) is now shared by _bucket_stats and _time_exit_bucket, the time-exit table shows Median Net R and Ex-Top-5% per hold length, and _build_recommendation reads the trimmed expectancy from the recommended exit's bucket (falling back to the target model when no hold is recommended). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -414,6 +414,8 @@ export function BacktestPanel() {
|
||||
<th className="px-4 py-2.5 text-right">Worst R</th>
|
||||
<th className="px-4 py-2.5 text-right">Avg Hold</th>
|
||||
<th className="px-4 py-2.5 text-right">Net R/d</th>
|
||||
<th className="px-4 py-2.5 text-right">Median Net R</th>
|
||||
<th className="px-4 py-2.5 text-right">Ex-Top-5%</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -435,6 +437,8 @@ export function BacktestPanel() {
|
||||
<td className="num px-4 py-2.5 text-right text-red-400">{fmtR(row.worst_r)}</td>
|
||||
<td className="num px-4 py-2.5 text-right text-gray-400">{fmtDays(row.avg_hold_days)}</td>
|
||||
<td className={`num px-4 py-2.5 text-right ${rColor(row.net_r_per_day ?? null)}`}>{fmtRPerDay(row.net_r_per_day)}</td>
|
||||
<td className={`num px-4 py-2.5 text-right ${rColor(row.median_net_r ?? null)}`}>{fmtR(row.median_net_r)}</td>
|
||||
<td className={`num px-4 py-2.5 text-right ${rColor(row.net_avg_r_ex_top5 ?? null)}`}>{fmtR(row.net_avg_r_ex_top5)}</td>
|
||||
</tr>
|
||||
);
|
||||
})}
|
||||
|
||||
@@ -259,6 +259,9 @@ export interface BacktestTimeExitRow {
|
||||
worst_r?: number | null;
|
||||
avg_hold_days?: number | null;
|
||||
net_r_per_day?: number | null;
|
||||
median_net_r?: number | null;
|
||||
profit_factor?: number | null;
|
||||
net_avg_r_ex_top5?: number | null;
|
||||
}
|
||||
|
||||
export interface BacktestPortfolioPolicy {
|
||||
|
||||
Reference in New Issue
Block a user