# Buggy code
def _rpc_status_table(
    self, stake_currency, fiat_display_currency: str
) -> Tuple[List, List]:
    trades = Trade.get_open_trades()
    if not trades:
        raise RPCException("no active trade")
    else:
        trades_list = []
        for trade in trades:
            # calculate profit and send message to user
            try:
                current_rate = self._freqtrade.get_sell_rate(trade.pair, False)
            except DependencyException:
                current_rate = NAN
            trade_perc = 100 * trade.calc_profit_ratio(current_rate)
            trade_profit = trade.calc_profit(current_rate)
            profit_str = f"{trade_perc:.2f}%"
            if self._fiat_converter:
                fiat_profit = self._fiat_converter.convert_amount(
                    trade_profit, stake_currency, fiat_display_currency
                )
                if fiat_profit and not isnan(fiat_profit):
                    profit_str += f" ({fiat_profit:.2f})"
            trades_list.append(
                [
                    trade.id,
                    trade.pair,
                    shorten_date(
                        arrow.get(trade.open_date).humanize(only_distance=True)
                    ),
                    profit_str,
                ]
            )
        profitcol = "Profit"
        if self._fiat_converter:
            profitcol += " (" + fiat_display_currency + ")"

        columns = ["ID", "Pair", "Since", profitcol]
        return trades_list, columns


# Traceback (Exception)
2020-02-20 22:47:28,025 - freqtrade - ERROR - Fatal exception!
Traceback (most recent call last):
File "/opt/tradebot/freqtrade/.env/lib/python3.7/site-packages/talib/__init__.py", line 20, in wrapper
for arg in chain(args, kwargs.values())
StopIteration

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/freqtrade/freqtrade/main.py", line 36, in main
return_code = args['func'](args)
File "/freqtrade/freqtrade/commands/optimize_commands.py", line 76, in start_hyperopt
hyperopt.start()
File "/freqtrade/freqtrade/optimize/hyperopt.py", line 488, in start
preprocessed = self.backtesting.strategy.tickerdata_to_dataframe(data)
File "/freqtrade/freqtrade/strategy/interface.py", line 448, in tickerdata_to_dataframe
for pair, pair_data in tickerdata.items()}
File "/freqtrade/freqtrade/strategy/interface.py", line 448, in <dictcomp>
for pair, pair_data in tickerdata.items()}
File "/freqtrade/freqtrade/strategy/interface.py", line 464, in advise_indicators
return self.populate_indicators(dataframe, metadata)
File "/freqtrade/user_data/strategies/MyDev.py", line 205, in populate_indicators
dataframe['mfi'] = ta.MFI(dataframe)
File "talib/_abstract.pxi", line 352, in talib._ta_lib.Function.__call__
File "talib/_abstract.pxi", line 383, in talib._ta_lib.Function.__call_function
File "/opt/tradebot/freqtrade/.env/lib/python3.7/site-packages/talib/__init__.py", line 24, in wrapper
return func(*args, **kwargs)
File "talib/_func.pxi", line 8454, in talib._ta_lib.MFI
Exception: volume is not double

# Fixed code
def _rpc_status_table(
    self, stake_currency: str, fiat_display_currency: str
) -> Tuple[List, List]:
    trades = Trade.get_open_trades()
    if not trades:
        raise RPCException("no active trade")
    else:
        trades_list = []
        for trade in trades:
            # calculate profit and send message to user
            try:
                current_rate = self._freqtrade.get_sell_rate(trade.pair, False)
            except DependencyException:
                current_rate = NAN
            trade_perc = 100 * trade.calc_profit_ratio(current_rate)
            trade_profit = trade.calc_profit(current_rate)
            profit_str = f"{trade_perc:.2f}%"
            if self._fiat_converter:
                fiat_profit = self._fiat_converter.convert_amount(
                    trade_profit, stake_currency, fiat_display_currency
                )
                if fiat_profit and not isnan(fiat_profit):
                    profit_str += f" ({fiat_profit:.2f})"
            trades_list.append(
                [
                    trade.id,
                    trade.pair
                    + (
                        "*"
                        if (
                            trade.open_order_id is not None
                            and trade.close_rate_requested is None
                        )
                        else ""
                    )
                    + ("**" if (trade.close_rate_requested is not None) else ""),
                    shorten_date(
                        arrow.get(trade.open_date).humanize(only_distance=True)
                    ),
                    profit_str,
                ]
            )
        profitcol = "Profit"
        if self._fiat_converter:
            profitcol += " (" + fiat_display_currency + ")"

        columns = ["ID", "Pair", "Since", profitcol]
        return trades_list, columns