# Buggy code
def _validate_ticker_lowprice(self, ticker) -> bool:
    """
    Check if if one price-step (pip) is > than a certain barrier.
    :param ticker: ticker dict as returned from ccxt.load_markets()
    :return: True if the pair can stay, false if it should be removed
    """
    compare = ticker["last"] + self._exchange.price_get_one_pip(
        ticker["symbol"], ticker["last"]
    )
    changeperc = (compare - ticker["last"]) / ticker["last"]
    if changeperc > self._low_price_ratio:
        self.log_on_refresh(
            logger.info,
            f"Removed {ticker['symbol']} from whitelist, "
            f"because 1 unit is {changeperc * 100:.3f}%",
        )
        return False
    return True


# Traceback (TypeError)
2020-03-28 00:43:49,891 - freqtrade.commands.trade_commands - INFO - worker found ... calling exit
2020-03-28 00:43:49,891 - freqtrade.rpc.rpc_manager - INFO - Sending rpc message: {'type': status, 'status': 'process died'}
2020-03-28 00:43:49,953 - freqtrade.freqtradebot - INFO - Cleaning up modules ...
2020-03-28 00:43:49,953 - freqtrade.rpc.rpc_manager - INFO - Cleaning up rpc modules ...
2020-03-28 00:44:05,419 - freqtrade - ERROR - Fatal exception!
Traceback (most recent call last):
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/main.py", line 36, in main
return_code = args['func'](args)
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/commands/trade_commands.py", line 20, in start_trading
worker.run()
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/worker.py", line 66, in run
state = self._worker(old_state=state)
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/worker.py", line 104, in _worker
self._throttle(func=self._process_running, throttle_secs=self._throttle_secs)
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/worker.py", line 125, in _throttle
result = func(*args, **kwargs)
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/worker.py", line 139, in _process_running
self.freqtrade.process()
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/freqtradebot.py", line 142, in process
self.active_pair_whitelist = self._refresh_whitelist(trades)
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/freqtradebot.py", line 168, in _refresh_whitelist
self.pairlists.refresh_pairlist()
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/pairlist/pairlistmanager.py", line 91, in refresh_pairlist
pairlist = pl.filter_pairlist(pairlist, tickers)
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/pairlist/PrecisionFilter.py", line 59, in filter_pairlist
if not ticker or (stoploss and not self._validate_precision_filter(ticker, stoploss)):
File "/Users/yazeed/Sites/freqtradeLATEST/freqtrade/pairlist/PrecisionFilter.py", line 36, in _validate_precision_filter
stop_price = ticker['ask'] * stoploss
TypeError: unsupported operand type(s) for *: 'NoneType' and 'float'

# Fixed code
def _validate_ticker_lowprice(self, ticker) -> bool:
    """
    Check if if one price-step (pip) is > than a certain barrier.
    :param ticker: ticker dict as returned from ccxt.load_markets()
    :return: True if the pair can stay, false if it should be removed
    """
    if ticker["last"] is None:
        self.log_on_refresh(
            logger.info,
            f"Removed {ticker['symbol']} from whitelist, because "
            "ticker['last'] is empty (Usually no trade in the last 24h).",
        )
        return False
    compare = ticker["last"] + self._exchange.price_get_one_pip(
        ticker["symbol"], ticker["last"]
    )
    changeperc = (compare - ticker["last"]) / ticker["last"]
    if changeperc > self._low_price_ratio:
        self.log_on_refresh(
            logger.info,
            f"Removed {ticker['symbol']} from whitelist, "
            f"because 1 unit is {changeperc * 100:.3f}%",
        )
        return False
    return True