# source: https://raw.githubusercontent.com/stepan-karpov/optimal-investment-homework/de24d410d47999d1db7d7aad5a27f85b2c8f783d/task4/user_data/strategies/Strategy1.py

from freqtrade.strategy import IStrategy
from pandas import DataFrame
import pandas as pd

class Github_stepan_karpov_optimal_investment_homework__Strategy1__20260403_115724(IStrategy):
    INTERFACE_VERSION = 3
    timeframe = '1d'
    can_short = True

    minimal_roi = {"0": 0.0}
    stoploss = -1.0
    trailing_stop = False
    use_exit_signal = True
    exit_profit_only = False

    def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        return dataframe

    def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe['enter_long'] = 0
        dataframe['enter_short'] = (
            (dataframe['close'] < dataframe['open']) &                  # красная свеча
            (dataframe['close'].shift(1) < dataframe['open'].shift(1)) & # предыдущая красная
            (dataframe['close'].shift(2) < dataframe['open'].shift(2))   # третья красная подряд
        ).astype(int)
        return dataframe

    def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        # Выход ровно через 48 часов (2 свечи на 1d)
        dataframe['exit_long'] = 0
        dataframe['exit_short'] = dataframe['enter_short'].shift(2).fillna(0).astype(int)
        return dataframe