''' strategy_engine/templates/basic_strategy.py 기본 전략 템플릿: - 매수 신호가 있는 tradable 종목에 대해 TP(목표가), SL(손절가)를 자동 계산 - 단순 비율 방식으로 설정 (예: +5%, -3%) - Buy 여부 결정 포함 ''' import pandas as pd def apply_basic_strategy(df: pd.DataFrame, tp_ratio: float = 0.05, sl_ratio: float = 0.03) -> pd.DataFrame: """ 전략 종목에 대해 TP/SL 조건 및 액션(Buy) 설정 Parameters: df (pd.DataFrame): selector에서 필터링된 종목 DataFrame (최소: symbol, close 컬럼 포함) tp_ratio (float): 목표 수익률 비율 (기본 5%) sl_ratio (float): 손절 비율 (기본 3%) Returns: pd.DataFrame: 전략 조건이 부여된 종목 테이블 """ df = df.copy() df['entry_price'] = df['close'] # 현재 종가를 진입가로 가정 df['target_price'] = df['entry_price'] * (1 + tp_ratio) df['stop_loss'] = df['entry_price'] * (1 - sl_ratio) df['action'] = 'Buy' # 현재는 모두 매수 대상으로 판단 return df[['symbol', 'entry_price', 'target_price', 'stop_loss', 'action']]