feat: 매매일지 자동 생성 + 전략 자동 최적화 시스템 추가
- trade_analyzer.py: 거래 성과 분석(승률/손익비/전략별 패턴), 템플릿 기반 일지 자동 생성
- strategy_optimizer.py: 그리드 서치 기반 파라미터 최적화, Sharpe 10% 개선 시 자동 적용
- analysis.py: /performance /insights /generate-journals /optimize-strategy /optimization-history 엔드포인트
- journals.py: POST /generate/{trade_id}, GET /stats 엔드포인트 추가
- models.py: StrategyOptimizationLog 테이블 추가
- main.py: post_market_analyzer_scheduler (16:00 KST 자동 실행)
- frontend: Analysis 페이지 추가 (성과 요약/인사이트/일지 생성/최적화 이력)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -322,3 +322,23 @@ class WatchlistHistory(Base):
|
||||
change_rate = Column(Numeric(10, 4), nullable=True)
|
||||
rsi = Column(Numeric(10, 4), nullable=True)
|
||||
signals = Column(JSONB, nullable=True)
|
||||
|
||||
|
||||
class StrategyOptimizationLog(Base):
|
||||
"""전략 자동 최적화 실행 이력"""
|
||||
__tablename__ = "strategy_optimization_logs"
|
||||
|
||||
id = Column(Integer, primary_key=True, index=True)
|
||||
run_date = Column(Date, nullable=False, index=True)
|
||||
trigger = Column(String(20), nullable=False, default="auto") # auto / manual
|
||||
period_days = Column(Integer, nullable=False, default=90)
|
||||
best_params = Column(JSONB, nullable=True)
|
||||
best_sharpe = Column(Numeric(10, 4), nullable=True)
|
||||
best_win_rate = Column(Numeric(10, 4), nullable=True)
|
||||
best_mdd = Column(Numeric(10, 4), nullable=True)
|
||||
current_sharpe = Column(Numeric(10, 4), nullable=True)
|
||||
previous_params = Column(JSONB, nullable=True)
|
||||
applied = Column(Boolean, default=False, nullable=False)
|
||||
apply_reason = Column(Text, nullable=True)
|
||||
total_combinations = Column(Integer, nullable=True)
|
||||
created_at = Column(DateTime, default=datetime.utcnow, index=True)
|
||||
|
||||
Reference in New Issue
Block a user