Add analytics risk guard and redesigned dashboard
This commit is contained in:
@@ -852,6 +852,8 @@ def _trend_position_sizing(
|
||||
if equity <= 0:
|
||||
equity = settings.starting_balance_usdt
|
||||
risk_fraction = _clamp(settings.risk_per_trade_percent, 0.0, 0.01)
|
||||
guard_multiplier = _risk_guard_multiplier(account)
|
||||
risk_fraction *= guard_multiplier
|
||||
risk_usdt = equity * risk_fraction
|
||||
raw_notional = risk_usdt / max(stop_loss_percent, 0.0001)
|
||||
high = max(0.0, settings.max_position_usdt)
|
||||
@@ -860,6 +862,7 @@ def _trend_position_sizing(
|
||||
return {
|
||||
"method": "fixed_fractional_risk",
|
||||
"risk_per_trade_percent": round(risk_fraction * 100, 4),
|
||||
"risk_guard_multiplier": round(guard_multiplier, 4),
|
||||
"risk_usdt": round(risk_usdt, 4),
|
||||
"stop_loss_percent": round(stop_loss_percent * 100, 4),
|
||||
"raw_notional_usdt": round(raw_notional, 4),
|
||||
@@ -908,7 +911,7 @@ def _position_sizing(
|
||||
denominator = max(0.0001, 1.0 - settings.min_signal_confidence)
|
||||
confidence_ratio = _clamp((final_score - settings.min_signal_confidence) / denominator, 0.0, 1.0)
|
||||
confidence_notional = low + (high - low) * confidence_ratio
|
||||
risk_multiplier = _position_risk_multiplier(forecast, adaptive)
|
||||
risk_multiplier = _position_risk_multiplier(forecast, adaptive) * _risk_guard_multiplier(account)
|
||||
method = "confidence"
|
||||
raw = confidence_notional
|
||||
kelly = _kelly_position(
|
||||
@@ -952,6 +955,17 @@ def _position_risk_multiplier(forecast: dict | None, adaptive: dict | None) -> f
|
||||
return multiplier
|
||||
|
||||
|
||||
def _risk_guard_multiplier(account: dict | None) -> float:
|
||||
guard = (account or {}).get("risk_guard")
|
||||
if not isinstance(guard, dict):
|
||||
return 1.0
|
||||
try:
|
||||
value = float(guard.get("position_size_multiplier", 1.0))
|
||||
except (TypeError, ValueError):
|
||||
value = 1.0
|
||||
return _clamp(value, 0.0, 1.0)
|
||||
|
||||
|
||||
def _kelly_position(
|
||||
*,
|
||||
settings: Settings,
|
||||
|
||||
Reference in New Issue
Block a user