def is_price_good_for_ps(price:float, ps:list)->bool:
    """
    Decides if the given price can be used as the trading price for the given PS.

    >>> is_price_good_for_ps(5, [9, -3])
    True
    >>> is_price_good_for_ps(5, [9, -7])
    False
    >>> is_price_good_for_ps(5, [4, -3])
    False
    """
    for i in range(len(ps)):
        if ps[i] >= 0 and price > ps[i]:
            return False   # price too high for a buyer
        elif ps[i] <= 0 and -price > ps[i]:
            return False   # price too low for a seller
    return True