]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - helper.py
Make nonce in nanoseconds
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / helper.py
index 8a29f40419473ab0fc61cc0ff5c130781bf1a648..3e39785d4bb1a75d5bde324403161ddc3dcc053a 100644 (file)
--- a/helper.py
+++ b/helper.py
@@ -4,10 +4,13 @@ from store import *
 
 def move_balances(market, debug=False):
     needed_in_margin = {} 
+    for currency in BalanceStore.all:
+        if BalanceStore.all[currency].margin_free != 0:
+            needed_in_margin[currency] = 0
     for trade in TradeStore.all:
+        if trade.value_to.currency not in needed_in_margin:
+            needed_in_margin[trade.value_to.currency] = 0
         if trade.trade_type == "short":
-            if trade.value_to.currency not in needed_in_margin:
-                needed_in_margin[trade.value_to.currency] = 0
             needed_in_margin[trade.value_to.currency] += abs(trade.value_to)
     for currency, needed in needed_in_margin.items():
         current_balance = BalanceStore.all[currency].margin_free
@@ -109,22 +112,47 @@ def follow_orders(verbose=True, sleep=None):
         print("All orders finished")
 
 def print_orders(market, base_currency="BTC"):
-    prepare_trades(market, base_currency=base_currency, compute_value="average")
+    prepare_trades(market, base_currency=base_currency, compute_value="average", debug=True)
     TradeStore.prepare_orders(compute_value="average")
     for currency, balance in BalanceStore.all.items():
         print(balance)
     TradeStore.print_all_with_order()
 
-def make_orders(market, base_currency="BTC"):
-    prepare_trades(market, base_currency=base_currency)
-    for trade in TradeStore.all:
-        print(trade)
-        for order in trade.orders:
-            print("\t", order, sep="")
-            order.run()
+def print_balances(market, base_currency="BTC"):
+    BalanceStore.fetch_balances(market)
+    for currency, balance in BalanceStore.all.items():
+        print(balance)
+    if base_currency is not None:
+        print("total:")
+        print(sum(BalanceStore.in_currency(base_currency, market).values()))
+
+def process_sell_needed__1_sell(market, base_currency="BTC", debug=False):
+    prepare_trades(market, base_currency=base_currency, debug=debug)
+    TradeStore.prepare_orders(compute_value="average", only="dispose")
+    print("------------------")
+    for currency, balance in BalanceStore.all.items():
+        print(balance)
+    print("------------------")
+    TradeStore.print_all_with_order()
+    print("------------------")
+    TradeStore.run_orders()
+    follow_orders()
+
+def process_sell_needed__2_buy(market, base_currency="BTC", debug=False):
+    update_trades(market, base_currency=base_currency, debug=debug, only="acquire")
+    TradeStore.prepare_orders(compute_value="average", only="acquire")
+    print("------------------")
+    for currency, balance in BalanceStore.all.items():
+        print(balance)
+    print("------------------")
+    TradeStore.print_all_with_order()
+    print("------------------")
+    move_balances(market, debug=debug)
+    TradeStore.run_orders()
+    follow_orders()
 
-def process_sell_all_sell(market, base_currency="BTC", debug=False):
-    prepare_trades_to_sell_all(market, debug=debug)
+def process_sell_all__1_all_sell(market, base_currency="BTC", debug=False):
+    prepare_trades_to_sell_all(market, base_currency=base_currency, debug=debug)
     TradeStore.prepare_orders(compute_value="average")
     print("------------------")
     for currency, balance in BalanceStore.all.items():
@@ -135,8 +163,8 @@ def process_sell_all_sell(market, base_currency="BTC", debug=False):
     TradeStore.run_orders()
     follow_orders()
 
-def process_sell_all_buy(market, base_currency="BTC", debug=False):
-    prepare_trades(market, debug=debug)
+def process_sell_all__2_all_buy(market, base_currency="BTC", debug=False):
+    prepare_trades(market, base_currency=base_currency, debug=debug)
     TradeStore.prepare_orders()
     print("------------------")
     for currency, balance in BalanceStore.all.items():