Пример #1
0
def process_order(order):
    split_order = order.replace("/", " ").split(" ")
    product = which_substring(order, p.products_list)
    product_index = split_order.index(product)
    product_description = split_order[0:product_index]
    order_description = split_order[product_index+1:]
    months = [m for m in product_description if m in p.months]
    strikes = [float(k) for k in product_description if isfloat(k)]
    direction = get_direction(" ".join(order_description))
    prices, quantities = get_prices_and_quantities(order_description, direction)
    order_object = Order(prices, quantities, direction, product, months, strikes)
    if not (prices and quantities and direction and product and months and strikes):
        print("Bad order - try again")
        return False
    else:
        return order_object.to_string()
Пример #2
0
def get_prices_and_quantities(order_desc, direction):
    first_number_index = [1 if isfloat(e) else 0 for e in order_desc].index(1)
    info = order_desc[first_number_index:]
    if direction == "bid":
        prices = [float(info[0])]
        quantities = [int(info[3])]
    elif direction == "offer":
        prices = [float(info[2])]
        quantities = [int(info[0])]
    elif direction == "market":
        prices = [float(info[0]), float(info[2])]
        quantities = [int(info[3])]
        if "up" not in info:
            quantities.append(int(info[5]))
    else:
        return False, False
    return prices, quantities
Пример #3
0
def risk_reversal(order):
    split_order = order.split(" ")
    months_order = [m for m in split_order if m in p.months]
    strikes = [float(k) for k in split_order if isfloat(k)]