feat: add dynamic advisor asset allocation
This commit is contained in:
@@ -75,6 +75,60 @@ class AdvisorProductMetricSnapshot(Base):
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, nullable=False)
|
||||
|
||||
|
||||
class AdvisorProductAssetClassification(Base):
|
||||
__tablename__ = "advisor_product_asset_classification"
|
||||
|
||||
id: Mapped[int] = mapped_column(BigInteger, primary_key=True)
|
||||
product_id: Mapped[int] = mapped_column(BigInteger, nullable=False)
|
||||
as_of_date: Mapped[date] = mapped_column(Date, nullable=False)
|
||||
asset_class: Mapped[str] = mapped_column(String(32), nullable=False)
|
||||
source: Mapped[str] = mapped_column(String(64), nullable=False)
|
||||
status: Mapped[str] = mapped_column(String(16), nullable=False)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, nullable=False)
|
||||
updated_at: Mapped[datetime] = mapped_column(DateTime, nullable=False)
|
||||
|
||||
|
||||
class AdvisorProductDataQualitySnapshot(Base):
|
||||
__tablename__ = "advisor_product_data_quality_snapshot"
|
||||
|
||||
id: Mapped[int] = mapped_column(BigInteger, primary_key=True)
|
||||
product_id: Mapped[int] = mapped_column(BigInteger, nullable=False)
|
||||
as_of_date: Mapped[date] = mapped_column(Date, nullable=False)
|
||||
observation_count: Mapped[int] = mapped_column(BigInteger, nullable=False)
|
||||
expected_trading_days: Mapped[int] = mapped_column(BigInteger, nullable=False)
|
||||
price_coverage_pct: Mapped[Decimal] = mapped_column(Numeric(7, 4), nullable=False)
|
||||
turnover_coverage_pct: Mapped[Decimal] = mapped_column(Numeric(7, 4), nullable=False)
|
||||
max_abs_daily_return_pct: Mapped[Decimal | None] = mapped_column(Numeric(10, 4))
|
||||
status: Mapped[str] = mapped_column(String(16), nullable=False)
|
||||
reason_codes: Mapped[list[str]] = mapped_column(JSON, nullable=False)
|
||||
rule_version: Mapped[str] = mapped_column(String(16), nullable=False)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, nullable=False)
|
||||
|
||||
|
||||
class AdvisorAllocationBacktestRun(Base):
|
||||
__tablename__ = "advisor_allocation_backtest_run"
|
||||
|
||||
id: Mapped[int] = mapped_column(BigInteger, primary_key=True)
|
||||
backtest_no: Mapped[str] = mapped_column(String(36), unique=True, nullable=False)
|
||||
started_on: Mapped[date] = mapped_column(Date, nullable=False)
|
||||
ended_on: Mapped[date] = mapped_column(Date, nullable=False)
|
||||
profile_risk_level: Mapped[str] = mapped_column(String(8), nullable=False)
|
||||
return_target_lower_pct: Mapped[Decimal] = mapped_column(Numeric(7, 4), nullable=False)
|
||||
max_drawdown_pct: Mapped[Decimal] = mapped_column(Numeric(7, 4), nullable=False)
|
||||
liquidity_requirement: Mapped[str] = mapped_column(String(32), nullable=False)
|
||||
status: Mapped[str] = mapped_column(String(32), nullable=False)
|
||||
observation_count: Mapped[int] = mapped_column(BigInteger, nullable=False)
|
||||
static_total_return_pct: Mapped[Decimal | None] = mapped_column(Numeric(12, 4))
|
||||
dynamic_total_return_pct: Mapped[Decimal | None] = mapped_column(Numeric(12, 4))
|
||||
static_max_drawdown_pct: Mapped[Decimal | None] = mapped_column(Numeric(12, 4))
|
||||
dynamic_max_drawdown_pct: Mapped[Decimal | None] = mapped_column(Numeric(12, 4))
|
||||
dynamic_rebalance_count: Mapped[int] = mapped_column(BigInteger, nullable=False)
|
||||
liquidity_history_coverage_pct: Mapped[Decimal] = mapped_column(Numeric(7, 4), nullable=False)
|
||||
limitations: Mapped[list[str]] = mapped_column(JSON, nullable=False)
|
||||
strategy_version: Mapped[str] = mapped_column(String(32), nullable=False)
|
||||
created_at: Mapped[datetime] = mapped_column(DateTime, nullable=False)
|
||||
|
||||
|
||||
class AdvisorProductSuitabilityReference(Base):
|
||||
__tablename__ = "advisor_product_suitability_reference"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user