]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - market.py
Merge branch 'dev'
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / market.py
index d7b05ce7abb64486a2aad30be1a2317d763ce287..82df34f4766ba7648cce4a5e4f364dde948c53b1 100644 (file)
--- a/market.py
+++ b/market.py
@@ -15,6 +15,7 @@ class Market:
     report = None
     trades = None
     balances = None
+    options = None
 
     def __init__(self, ccxt_instance, args, **kwargs):
         self.args = args
@@ -26,6 +27,7 @@ class Market:
         self.balances = BalanceStore(self)
         self.processor = Processor(self)
 
+        self.options = kwargs.get("options", {})
         for key in ["user_id", "market_id"]:
             setattr(self, key, kwargs.get(key, None))
 
@@ -206,8 +208,9 @@ class Market:
                             message="{} disappeared, recreating it".format(order))
                     new_order = order.trade.prepare_order(
                             compute_value=order.trade.tick_actions_recreate(tick))
-                    new_order.run()
-                    self.report.log_order(order, tick, new_order=new_order)
+                    if new_order is not None:
+                        new_order.run()
+                        self.report.log_order(order, tick, new_order=new_order)
 
         self.report.log_stage("follow_orders_end")
 
@@ -465,7 +468,7 @@ class Processor:
 
     def parse_args(self, action, default_args, kwargs):
         method, allowed_arguments = self.method_arguments(action)
-        args = {k: v for k, v in {**default_args, **kwargs}.items() if k in allowed_arguments }
+        args = {k: v for k, v in {**default_args, **kwargs, **self.market.options}.items() if k in allowed_arguments }
 
         if "repartition" in args and "base_currency" in args["repartition"]:
             r = args["repartition"]