- The model now submits a pending setup (direction, zone, confirm price, validity); the executor enters at market once a 5m close confirms a dip into support or a rejection from resistance, and cancels the setup when the zone breaks, the trigger is missed or the stop is too far - Stop beyond the confirmation extreme by 0.5 x ATR14(5m), skipped above 1%; fixed take-profit ladders from the fill price (long 60/30/10 at +0.5/0.75/1%, short 80/20 at -0.5/0.75%); 4h time stop - While holding, the model may only keep or exit - Drop the long-term angle from the program, API, tables and page
32 lines
960 B
Python
32 lines
960 B
Python
"""trading drop angle
|
|
|
|
Revision ID: e8b25c71d4a9
|
|
Revises: c3f19d7a2e58
|
|
Create Date: 2026-10-15 13:30:00.000000
|
|
|
|
"""
|
|
from typing import Sequence, Union
|
|
|
|
from alembic import op
|
|
import sqlalchemy as sa
|
|
|
|
|
|
# revision identifiers, used by Alembic.
|
|
revision: str = 'e8b25c71d4a9'
|
|
down_revision: Union[str, Sequence[str], None] = 'c3f19d7a2e58'
|
|
branch_labels: Union[str, Sequence[str], None] = None
|
|
depends_on: Union[str, Sequence[str], None] = None
|
|
|
|
|
|
def upgrade() -> None:
|
|
"""Upgrade schema."""
|
|
# 用户决定模拟盘只做短线(2026-10-15),不再有角度之分
|
|
op.drop_column('trading_symbols', 'angle')
|
|
op.drop_column('trading_analyses', 'angle')
|
|
|
|
|
|
def downgrade() -> None:
|
|
"""Downgrade schema."""
|
|
op.add_column('trading_analyses', sa.Column('angle', sa.String(length=8), nullable=False, server_default='short'))
|
|
op.add_column('trading_symbols', sa.Column('angle', sa.String(length=8), nullable=False, server_default='short'))
|