def place_first_order(max_price, my_order, orders): # TODO: receive balance as parameter and check: # TODO: 1) is it possible to place before cancel? # TODO: 2) do i have balance for creating order? if my_order.price == orders[0].price and my_order.amount == orders[0].amount: # My order is top order next_order = find_next_order(my_order.price, orders) update, price = False, 0 if my_order.price - next_order.price > 0.2: # If price is can be reduced log.log_trading('Reducing top order price') update = True price = next_order.price + 0.1 elif my_order.amount < TOP_ORDER_PRICE: # If my top order is less than TOP_ORDER_PRICE BTC log.log_trading('Increasing top order amount') update = True price = my_order.price if update: bitnz.place_order(price, TOP_ORDER_PRICE) bitnz.cancel_order(my_order) my_order.price = price my_order.amount = TOP_ORDER_PRICE elif not my_order.price == max_price: # If my order is not top order and is not max_price log.log_trading('Replacing top order') price = orders[0].price + 1e-8 if price > max_price: price = max_price bitnz.place_order(price, TOP_ORDER_PRICE) bitnz.cancel_order(my_order) my_order.price = price my_order.amount = TOP_ORDER_PRICE
def delete_overpriced_bids(max_value, orders): for i in range(len(orders) - 1, -1, -1): if orders[i].price > max_value: log.log_trading('Deleting overpriced order') bitnz.cancel_order(orders[i]) del orders[i]