32 lines
1.1 KiB
Python
32 lines
1.1 KiB
Python
'''
|
|
strategy_engine/selector.py
|
|
|
|
risk_filtered_result.csv에서 tradable 종목만 선택하고,
|
|
추가적인 전략 조건(예: 상승 확률, 리스크 점수 기준)에 따라 최종 전략 대상 종목을 선별합니다.
|
|
'''
|
|
|
|
import pandas as pd
|
|
|
|
def select_candidates(risk_filtered_path: str, min_probability: float = 0.7, min_risk_score: int = 70) -> pd.DataFrame:
|
|
"""
|
|
전략 실행 대상 종목을 선별하는 함수
|
|
|
|
Parameters:
|
|
risk_filtered_path (str): risk_filtered_result.csv 파일 경로
|
|
min_probability (float): 최소 상승 확률 기준 (기본 0.7)
|
|
min_risk_score (int): 최소 리스크 점수 기준 (기본 70)
|
|
|
|
Returns:
|
|
pd.DataFrame: 전략 조건을 만족하는 종목들
|
|
"""
|
|
df = pd.read_csv(risk_filtered_path)
|
|
|
|
# tradable 종목 중 전략 조건 만족하는 종목만 선별
|
|
filtered = df[
|
|
(df['tradable'] == True) &
|
|
(df['predicted_score'] >= min_probability) &
|
|
(df['risk_score'] >= min_risk_score)
|
|
].copy()
|
|
|
|
return filtered.reset_index(drop=True)
|