# source: https://raw.githubusercontent.com/DerSalvador/freqtrade-helm-chart/a669dc11b640b0eb63aa8f8b51e9f181fd7ee43c/chart/deployed_strategies/binance-michael-k8s-namespace/Stavix2.py
from freqtrade.strategy.interface import IStrategy
from pandas import DataFrame
from technical.indicators import ichimoku
import freqtrade.vendor.qtpylib.indicators as qtpylib

class Github_DerSalvador_freqtrade_helm_chart__Stavix2__20260115_122204(IStrategy):
    INTERFACE_VERSION = 3
    minimal_roi = {'0': 0.15}
    stoploss = -0.1
    timeframe = '1m'

    def populate_indicators(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        cloud = ichimoku(dataframe, conversion_line_period=200, base_line_periods=350, laggin_span=150, displacement=75)
        dataframe['tenkan_sen'] = cloud['tenkan_sen']
        dataframe['kijun_sen'] = cloud['kijun_sen']
        dataframe['senkou_span_a'] = cloud['senkou_span_a']
        dataframe['senkou_span_b'] = cloud['senkou_span_b']
        dataframe['chikou_span'] = cloud['chikou_span']
        return dataframe

    def populate_entry_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe.loc[(dataframe['close'] > dataframe['senkou_span_a']) & (dataframe['close'] > dataframe['senkou_span_b']) & qtpylib.crossed_above(dataframe['kijun_sen'], dataframe['tenkan_sen']), 'entry'] = 1
        return dataframe

    def populate_exit_trend(self, dataframe: DataFrame, metadata: dict) -> DataFrame:
        dataframe.loc[(dataframe['close'] < dataframe['senkou_span_a']) & (dataframe['close'] < dataframe['senkou_span_b']) & qtpylib.crossed_above(dataframe['tenkan_sen'], dataframe['kijun_sen']), 'exit'] = 1
        return dataframe