# source: https://raw.githubusercontent.com/titouannwtt/freqtrade_basics/3a0eb0a0fd6c19085e670b3022ae3b97efca955f/freqtrade/user_data/strategies/basic_emas.py
from functools import reduce
from freqtrade.strategy import IStrategy
from freqtrade.strategy import CategoricalParameter, DecimalParameter, IntParameter
from pandas import DataFrame

import talib.abstract as ta
import freqtrade.vendor.qtpylib.indicators as qtpylib


class Github_titouannwtt_freqtrade_basics__basic_emas__20230611_171658(IStrategy):
    INTERFACE_VERSION: int = 3
    minimal_roi = {
        "0": 1.0,
        "10000": 0.40,
        "25000": 0.15,
        "50000": 0
    }

    stoploss = -0.35

    timeframe = '1d'

    def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe['ema12'] = ta.EMA(dataframe, timeperiod=12)
        dataframe['ema80'] = ta.EMA(dataframe, timeperiod=80)
        #print(dataframe)
        return dataframe

    def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe.loc[
            (
                qtpylib.crossed_above(dataframe[f'ema12'], dataframe[f'ema80']) &
                (dataframe['volume'] > 0)
            ),
            'enter_long'] = 1

        return dataframe

    def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe.loc[
            (
                qtpylib.crossed_above(dataframe[f'ema80'],dataframe[f'ema12']) &
                (dataframe['volume'] > 0)
            ),
            'exit_long'] = 1
        return dataframe
