DB - risk_settings

abstract

Singleton risk management configuration — drawdown limits, position caps, per-symbol rate limits, and hedging rules applied before any trade execution.

Table Info

PropertyValue
Table Namerisk_settings
SQLAlchemy Modelbackend/db/models.py :: RiskSettings
Pydantic Schemabackend/api/routes/settings.py
Migration Filealembic/versions/
TimescaleDB HypertableNo
Partition Column

Columns

ColumnSQLAlchemy TypeNullableDefaultDescription
idIntegerNo1Primary key (singleton — always id=1)
drawdown_check_enabledBooleanNoFalseEnable max drawdown circuit breaker
max_drawdown_pctFloatNo10.0Max account drawdown % before halting trading
position_limit_enabledBooleanNoFalseEnable maximum open position cap
max_open_positionsIntegerNo5Maximum concurrent open positions
rate_limit_enabledBooleanNoFalseEnable per-symbol trade rate limiting
rate_limit_max_tradesIntegerNo3Max trades per symbol within window
rate_limit_window_hoursFloatNo4.0Time window for rate limit (hours)
hedging_allowedBooleanNoTrueAllow hedging (opposing positions on same symbol)
updated_atDateTime(timezone=True)Nodatetime.now(UTC)Last update timestamp

SQLAlchemy Model (reference snapshot)

class RiskSettings(Base):
    __tablename__ = "risk_settings"
 
    id: Mapped[int] = mapped_column(Integer, primary_key=True)
    drawdown_check_enabled: Mapped[bool] = mapped_column(Boolean, default=False)
    max_drawdown_pct: Mapped[float] = mapped_column(Float, default=10.0)
    position_limit_enabled: Mapped[bool] = mapped_column(Boolean, default=False)
    max_open_positions: Mapped[int] = mapped_column(Integer, default=5)
    rate_limit_enabled: Mapped[bool] = mapped_column(Boolean, default=False)
    rate_limit_max_trades: Mapped[int] = mapped_column(Integer, default=3)
    rate_limit_window_hours: Mapped[float] = mapped_column(Float, default=4.0)
    hedging_allowed: Mapped[bool] = mapped_column(Boolean, default=True)
    updated_at: Mapped[datetime] = mapped_column(
        DateTime(timezone=True),
        default=lambda: datetime.now(UTC),
        onupdate=lambda: datetime.now(UTC),
    )
RoleLink
API EndpointAPI-POST-v1-Settings
Frontend PagePage - Settings
Related TableDB - global_settings