# source: https://raw.githubusercontent.com/HugsTS/ARBI-BOT/31c2ad01ced77a82848794a23cdd26f3696b1c85/user_data/strategies/AddressReactiveStrategy.py
from freqtrade.strategy.interface import IStrategy
from pandas import DataFrame
import talib.abstract as ta

class Github_HugsTS_ARBI_BOT__AddressReactiveStrategy__20250923_030318(IStrategy):
    timeframe = "5m"
    can_short = False
    minimal_roi = {"0": 0.02}
    stoploss = -0.03
    trailing_stop = True
    process_only_new_candles = True

    def populate_indicators(self, df: DataFrame, metadata: dict) -> DataFrame:
        df["rsi"] = ta.RSI(df["close"], timeperiod=14)
        df["ema_fast"] = ta.EMA(df["close"], timeperiod=12)
        df["ema_slow"] = ta.EMA(df["close"], timeperiod=26)
        return df

    def populate_entry_trend(self, df: DataFrame, metadata: dict) -> DataFrame:
        df.loc[(df["ema_fast"] > df["ema_slow"]) & (df["rsi"] < 60), ["enter_long", "enter_tag"]] = (1, "trend_follow")
        return df

    def populate_exit_trend(self, df: DataFrame, metadata: dict) -> DataFrame:
        df.loc[((df["rsi"] > 70) | (df["ema_fast"] < df["ema_slow"])), ["exit_long", "exit_tag"]] = (1, "exit_signal")
        return df
