Browse Source

Begin work on trading bot

Eren Yilmaz 6 years ago
parent
commit
e38c70250f
1 changed files with 26 additions and 0 deletions
  1. 26 0
      trading_bot.py

+ 26 - 0
trading_bot.py

@@ -0,0 +1,26 @@
+import random
+from datetime import timedelta, datetime
+from math import log2, ceil
+
+import model
+
+
+def place_order(ownable_id):
+    cheapest_buy_order, best_sell_order = model.abs_spread(ownable_id)
+    if cheapest_buy_order is None or best_sell_order is None:
+        return
+    investors_id = model.bank_id()
+
+    orders = model.get_ownable_orders(investors_id, ownable_id)
+    orders = [random.choice(orders) for _ in range(int(ceil(log2(len(orders)))))]
+    amounts = [order[3] for order in orders]
+    amount = sum(amounts) / len(amounts)
+
+    expiry = datetime.strptime(model.current_db_time(), '%Y-%m-%d %H:%M:%S') + timedelta(minutes=43200)
+
+    model.place_order(buy=bool(random.getrandbits(1)),
+                      ownership_id=model.get_ownership_id(ownable_id, investors_id),
+                      limit=random.uniform(cheapest_buy_order, best_sell_order),
+                      stop_loss=False,
+                      amount=amount,
+                      expiry=expiry)