i added 12 new params to it create gui elemts to get elements for the float vals of threshold and params and checkboxes for true false and pass them to the strategy class TradingStrategy(Strategy):
    params = {
        'rsi_length': 30,       
        'macd_fast': 12,
        'macd_slow': 26,
        'bollinger_bands_window': 20,
        'stochastic_oscillator_window': 14,
        'rsi_threshold_buy' : 50,
        'rsi_threshold_sell' : 50,
        'macd_threshold_buy' : 50,
        'macd_threshold_sell' : 50,
        'bollinger_bands_threshold_buy' : 50,
        'bollinger_bands_threshold_sell' : 50, #10
        'stochastic_oscillator_window_buy' :50,
        'stochastic_oscillator_window_sell' :50, #12
        'rsi_include' : True,
        'macd_include' : True,
        'bollinger_bands_include' : True,
        'stochastic_oscillator_include' : True,
        
        
    }

    def init(self):
        # Convert data columns to pandas.Series
        close_series = pd.Series(self.data['Close'])
        high_series = pd.Series(self.data['High'])
        low_series = pd.Series(self.data['Low'])

        # RSI Indicator
        self.rsi = self.I(lambda x: RSIIndicator(x, window=self.params[0][1]).rsi(), close_series)
        
        # MACD
        self.macd = self.I(lambda x: MACD(x, window_slow=self.params[1][1], window_fast=self.params[2][1]).macd(), close_series)
        
        # Bollinger Bands
        self.bollinger_bands = self.I(lambda x: BollingerBands(x, window=self.params[3][1]).bollinger_mavg(), close_series)
        print(self.bollinger_bands)
        
        
        # Stochastic Oscillator
        self.stochastic_oscillator = self.I(
            lambda h, l, c: StochasticOscillator(
                high=h, low=l, close=c, window=self.params[4][1]
            ).stoch(),
            high_series, low_series, close_series
        )

    def next(self):
    	if ( self.params[13][1] ) :
		if self.rsi > self.params[5][1]:
		    self.buy()
		elif self.rsi < self.params[6][1]:
		    self.sell()
	if ( self.params[14][1] ) :
		if self.macd >  self.params[7][1]:
		    self.buy()
		elif self.macd < self.params[8][1]:
		    self.sell()
	if ( self.params[15][1] ) :
		if self.bollinger_bands > params[9][1] :
		    self.buy()
		elif self.bollinger_bands < params[10][1] :
		    self.sell()
	if ( self.params[16][1] ) :
		if self.stochastic_oscillator > params[11][1]:
		    self.buy()
		elif self.stochastic_oscillator < params[12][1]:
		    self.sell()

class GUI:
    def __init__(self, root):
        self.root = root
        self.root.title("Trading Strategy GUI")
        self.root.geometry("800x600")

        self.ticker_label = tk.Label(root, text="Ticker:")
        self.ticker_label.pack()
        self.ticker_entry = tk.Entry(root)
        self.ticker_entry.insert(0, 'PEPE/USDT')
        self.ticker_entry.pack()


        self.rsi_length_label = tk.Label(root, text="RSI length:")
        self.rsi_length_label.pack()
        self.rsi_length_entry = tk.Entry(root)
        self.rsi_length_entry.insert(0, '30')
        self.rsi_length_entry.pack()

        self.macd_fast_label = tk.Label(root, text="MACD Fast:")
        self.macd_fast_label.pack()
        self.macd_fast_entry = tk.Entry(root)
        self.macd_fast_entry.insert(0, '12')
        self.macd_fast_entry.pack()

        self.macd_slow_label = tk.Label(root, text="MACD Slow:")
        self.macd_slow_label.pack()
        self.macd_slow_entry = tk.Entry(root)
        self.macd_slow_entry.insert(0, '26')
        self.macd_slow_entry.pack()

        self.bollinger_bands_window_label = tk.Label(root, text="Bollinger Bands Window:")
        self.bollinger_bands_window_label.pack()
        self.bollinger_bands_window_entry = tk.Entry(root)
        self.bollinger_bands_window_entry.insert(0, '20')
        self.bollinger_bands_window_entry.pack()

        self.stochastic_oscillator_window_label = tk.Label(root, text="Stochastic Oscillator Window:")
        self.stochastic_oscillator_window_label.pack()
        self.stochastic_oscillator_window_entry = tk.Entry(root)
        self.stochastic_oscillator_window_entry.insert(0, '14')
        self.stochastic_oscillator_window_entry.pack()

        self.backtest_button = tk.Button(root, text="Backtest", command=self.backtest)
        self.backtest_button.pack()

        self.plot_button = tk.Button(root, text="Plot", command=self.plot)
        self.plot_button.pack()