# Buggy code
def get_signal(pair: str, signal: SignalType) -> bool:
    """
    Calculates current signal based several technical analysis indicators
    :param pair: pair in format BTC_ANT or BTC-ANT
    :return: True if pair is good for buying, False otherwise
    """
    dataframe = analyze_ticker(pair)
    if dataframe.empty:
        return False

    latest = dataframe.iloc[-1]

    # Check if dataframe is out of date
    signal_date = arrow.get(latest["date"])
    if signal_date < arrow.now() - timedelta(minutes=10):
        return False

    result = latest[signal.value] == 1
    logger.debug(
        "%s_trigger: %s (pair=%s, signal=%s)",
        signal.value,
        latest["date"],
        pair,
        result,
    )
    return result


# Traceback (ValueError)
Traceback (most recent call last):
File "/usr/bin/freqtrade", line 4, in <module>
main()
File "/usr/lib/python3.6/site-packages/freqtrade/main.py", line 329, in main
dynamic_whitelist=args.dynamic_whitelist,
File "/usr/lib/python3.6/site-packages/freqtrade/misc.py", line 81, in throttle
result = func(*args, **kwargs)
File "/usr/lib/python3.6/site-packages/freqtrade/main.py", line 70, in _process
trade = create_trade(float(_CONF['stake_amount']))
File "/usr/lib/python3.6/site-packages/freqtrade/main.py", line 202, in create_trade
if get_signal(_pair, SignalType.BUY):
File "/usr/lib/python3.6/site-packages/freqtrade/analyze.py", line 122, in get_signal
dataframe = analyze_ticker(pair)
File "/usr/lib/python3.6/site-packages/freqtrade/analyze.py", line 107, in analyze_ticker
dataframe = populate_indicators(dataframe)
File "/usr/lib/python3.6/site-packages/freqtrade/analyze.py", line 56, in populate_indicators
dataframe['ao'] = awesome_oscillator(dataframe)
File "/usr/lib/python3.6/site-packages/freqtrade/vendor/qtpylib/indicators.py", line 156, in awesome_oscillator
numpy_rolling_mean(midprice, slow)
File "/usr/lib/python3.6/site-packages/freqtrade/vendor/qtpylib/indicators.py", line 52, in func_wrapper
calculated = func(series, window)
File "/usr/lib/python3.6/site-packages/freqtrade/vendor/qtpylib/indicators.py", line 65, in numpy_rolling_mean
return np.mean(numpy_rolling_window(data, window), -1)
File "/usr/lib/python3.6/site-packages/freqtrade/vendor/qtpylib/indicators.py", line 44, in numpy_rolling_window
return np.lib.stride_tricks.as_strided(data, shape=shape, strides=strides)
File "/usr/lib/python3.6/site-packages/numpy/lib/stride_tricks.py", line 102, in as_strided
array = np.asarray(DummyArray(interface, base=x))
File "/usr/lib/python3.6/site-packages/numpy/core/numeric.py", line 531, in asarray
return array(a, dtype, copy=False, order=order)
ValueError: negative dimensions are not allowed

# Fixed code
def get_signal(pair: str, signal: SignalType) -> bool:
    """
    Calculates current signal based several technical analysis indicators
    :param pair: pair in format BTC_ANT or BTC-ANT
    :return: True if pair is good for buying, False otherwise
    """
    try:
        dataframe = analyze_ticker(pair)
    except ValueError as ex:
        logger.warning("Unable to analyze ticker for pair %s: %s", pair, str(ex))
        return False

    if dataframe.empty:
        return False

    latest = dataframe.iloc[-1]

    # Check if dataframe is out of date
    signal_date = arrow.get(latest["date"])
    if signal_date < arrow.now() - timedelta(minutes=10):
        return False

    result = latest[signal.value] == 1
    logger.debug(
        "%s_trigger: %s (pair=%s, signal=%s)",
        signal.value,
        latest["date"],
        pair,
        result,
    )
    return result