[추가 파일]
1. models/models.py — StrategyConfig 테이블 추가
2. services/strategy_config_service.py — DB 읽기 + TTL 캐시 서비스
3. api/endpoints/strategy_config.py — CRUD REST API
4. api/__init__.py — strategy_config 라우터 등록
[동작 방식]
- DB에 파라미터 있으면 DB 우선, 없으면 config.py 기본값 fallback
- TTL 30초 인메모리 캐시 → 재시작 없이 실시간 파라미터 변경
- 전략 코드에서 strategy_cfg.get("KEY", default) 패턴으로 사용
- /api/strategy-config 엔드포인트로 UI에서 관리 가능
[관리 대상 파라미터 그룹]
- INDICATOR: RSI, 볼린저, MA, ATR, ADX
- RISK: 손절/익절, MDD, 포지션 크기, 연속손실
- FILTER: 과열필터, 하락장필터, 트렌드필터
- DAY_TRADE: 데이트레이딩 세부 파라미터
- MEAN_REVERSION: 평균회귀 전략 파라미터
29 lines
1.6 KiB
Python
29 lines
1.6 KiB
Python
"""
|
|
API 라우터 통합 모듈
|
|
|
|
- 각 엔드포인트 라우터를 prefix/tag와 함께 등록
|
|
"""
|
|
from fastapi import APIRouter
|
|
from app.api.endpoints import (
|
|
trading_rules, trades, portfolio, market_data, mcp, recommendations,
|
|
monitoring, tensorflow_predictions, debug, risk_management, ml_ensemble,
|
|
journals, day_trading, strategy_config,
|
|
)
|
|
|
|
api_router = APIRouter()
|
|
|
|
api_router.include_router(trading_rules.router, prefix="/rules", tags=["trading_rules"])
|
|
api_router.include_router(trades.router, prefix="/trades", tags=["trades"])
|
|
api_router.include_router(portfolio.router, prefix="/portfolio", tags=["portfolio"])
|
|
api_router.include_router(market_data.router, prefix="/market-data", tags=["market_data"])
|
|
api_router.include_router(mcp.router, prefix="/mcp", tags=["mcp"])
|
|
api_router.include_router(recommendations.router, prefix="/recommendations", tags=["recommendations"])
|
|
api_router.include_router(monitoring.router, prefix="/monitoring", tags=["monitoring"])
|
|
api_router.include_router(tensorflow_predictions.router, prefix="/ml", tags=["ml"])
|
|
api_router.include_router(debug.router, prefix="/debug", tags=["debug"])
|
|
api_router.include_router(risk_management.router, prefix="/risk", tags=["risk_management"])
|
|
api_router.include_router(ml_ensemble.router, prefix="/ml-ensemble", tags=["ml_ensemble"])
|
|
api_router.include_router(journals.router, prefix="/journals", tags=["journals"])
|
|
api_router.include_router(day_trading.router, prefix="/daytrading", tags=["day_trading"])
|
|
api_router.include_router(strategy_config.router, prefix="/strategy-config", tags=["strategy_config"])
|