# src/strategies/buy_and_hold.py
"""
Estrategia Buy and Hold
"""
import pandas as pd
from ..core.strategy import Strategy, Signal

class BuyAndHold(Strategy):
    """
    Estrategia simple Buy and Hold
    
    Compra al inicio y mantiene hasta el final.
    Útil como baseline para comparar otras estrategias.
    """
    
    def __init__(self):
        super().__init__(name="Buy and Hold", params={})
        self.bought = False
    
    def init_indicators(self, data: pd.DataFrame) -> pd.DataFrame:
        """
        No necesita indicadores
        """
        return data
    
    def generate_signal(self, idx: int) -> Signal:
        """
        Compra solo la primera vez, luego mantiene
        """
        if not self.bought:
            self.bought = True
            return Signal.BUY
        
        return Signal.HOLD
    
    def reset(self):
        """
        Reinicia el estado para nuevo backtest
        """
        self.bought = False