Procházet zdrojové kódy

Missing code for bot.py

Eren Yilmaz před 5 roky
rodič
revize
50137da151
1 změnil soubory, kde provedl 52 přidání a 0 odebrání
  1. 52 0
      assets/bot.py

+ 52 - 0
assets/bot.py

@@ -0,0 +1,52 @@
+# DO NOT COPY: TOP SECRET
+# Illegal publishing will be charged with up to ₭500
+from math import ceil
+from random import uniform
+
+from secret_trading_tools import tradables_except_kollar, best_buy_order, cheapest_sell_order, \
+    some_orders_on, buy, sell, old_order_is_just_expired, delete_order_on, \
+    transactions_size_since_last_order_on, order_on, own_money, owned_amount, some_order_has_just_been_executed
+
+
+def follower():
+    """
+    The main algorithm
+    """
+    for tradable in tradables_except_kollar:
+        create_order_on(tradable)
+
+    while True:
+        for tradable in tradables_except_kollar:
+            if old_order_is_just_expired(tradable):
+                create_order_on(tradable)
+
+            if some_order_has_just_been_executed(tradable):
+                if transactions_size_since_last_order_on(tradable) > 2 * order_on(tradable).amount:
+                    delete_order_on(tradable)
+                    create_order_on(tradable)
+
+
+def create_order_on(tradable):
+    """
+    This function places a new order on the given tradable
+    """
+    limit = uniform(best_buy_order, cheapest_sell_order)
+
+    duration = 43200
+
+    some_orders = some_orders_on(tradable)  # returns us roughly log2(x) orders where x is the total # of orders
+    some_amounts = [order.amount for order in some_orders]
+    amount = ceil(sum(some_amounts) / len(some_amounts))
+
+    stop_loss = False
+
+    if limit - best_buy_order < cheapest_sell_order - limit:
+        if limit * amount < own_money:
+            buy(tradable, amount, limit, stop_loss, duration)
+    else:
+        if amount < owned_amount(tradable):
+            sell(tradable, amount, limit, stop_loss, duration)
+
+
+if __name__ == '__main__':
+    follower()