'''
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)