Make risk guard symbol aware
This commit is contained in:
@@ -741,6 +741,7 @@ HTML = r"""
|
||||
${panel('Risk guard', kvTable([
|
||||
['Block entries', risk.block_new_entries ? 'yes' : 'no'],
|
||||
['Size multiplier', num(risk.position_size_multiplier, 4)],
|
||||
['Blocked symbols', (risk.blocked_symbols || []).join(', ') || 'none'],
|
||||
['Consecutive losses', String(risk.consecutive_losses ?? 0)],
|
||||
['Today PnL', money(risk.today_pnl)],
|
||||
['Recent PF', num(risk.recent?.profit_factor, 3)],
|
||||
@@ -753,6 +754,7 @@ HTML = r"""
|
||||
['Remote equity', money(reconciliation?.account?.total_equity)]
|
||||
]) + discrepanciesHtml(reconciliation?.discrepancies || []))}
|
||||
</div>
|
||||
${panel('Risk by symbol', symbolRiskTable(risk.symbols || []))}
|
||||
${panel('Data quality by symbol', qualityTable(quality.symbols || []))}
|
||||
${panel('Probability calibration', calibrationTable(analytics?.probability_calibration?.buckets || []))}
|
||||
${panel('Failed checks', simpleTable(Object.entries(drift.failed_checks || {}).map(([key, value]) => ({ check: key, count: value })), ['check', 'count']))}
|
||||
@@ -876,6 +878,19 @@ HTML = r"""
|
||||
})), ['symbol', 'status', 'score', 'candles', 'issues']);
|
||||
}
|
||||
|
||||
function symbolRiskTable(rows) {
|
||||
return simpleTable(rows.map(row => ({
|
||||
symbol: row.symbol,
|
||||
block: row.block_new_entries ? 'yes' : 'no',
|
||||
trades: row.trades,
|
||||
win: num((row.win_rate || 0) * 100, 1) + '%',
|
||||
avg: signed(row.avg_net_percent, 3) + '%',
|
||||
pf: num(row.profit_factor, 3),
|
||||
losses: row.consecutive_losses,
|
||||
reasons: (row.reasons || []).join(', ') || 'none'
|
||||
})), ['symbol', 'block', 'trades', 'win', 'avg', 'pf', 'losses', 'reasons']);
|
||||
}
|
||||
|
||||
function calibrationTable(rows) {
|
||||
return simpleTable(rows.map(row => ({
|
||||
bucket: row.bucket,
|
||||
|
||||
Reference in New Issue
Block a user