"""Persist tp_sl_monitor peak gain so a restart doesn't reset the regime. bot_trades.peak_gain_pct : monotonic peak unrealised gain % (default 0) Without this, a pyramided / in-profit System-2 trade rehydrates with peak=0 on restart → wrongly drops into the underwater de-risk regime. Revision ID: 014 Revises: 013 Create Date: 2026-05-18 00:00:00.000000 """ from typing import Sequence, Union import sqlalchemy as sa from alembic import op revision: str = "014" down_revision: Union[str, None] = "013" branch_labels: Union[str, Sequence[str], None] = None depends_on: Union[str, Sequence[str], None] = None def upgrade() -> None: with op.batch_alter_table("bot_trades") as b: b.add_column(sa.Column("peak_gain_pct", sa.Float(), nullable=False, server_default="0")) def downgrade() -> None: with op.batch_alter_table("bot_trades") as b: b.drop_column("peak_gain_pct")