diff --git a/cli.spec b/cli.spec index 2b482460c..00d38dbb0 100644 --- a/cli.spec +++ b/cli.spec @@ -9,6 +9,7 @@ hiddenimports_strategies = [ 'dexbot.strategies', 'dexbot.strategies.echo', 'dexbot.strategies.relative_orders', + 'dexbot.strategies.staggered_orders', 'dexbot.strategies.storagedemo', 'dexbot.strategies.walls', ] diff --git a/dexbot/controllers/create_worker_controller.py b/dexbot/controllers/create_worker_controller.py index 28ae5cbf7..745092ee3 100644 --- a/dexbot/controllers/create_worker_controller.py +++ b/dexbot/controllers/create_worker_controller.py @@ -16,7 +16,8 @@ def __init__(self, main_ctrl): @property def strategies(self): strategies = { - 'Relative Orders': 'dexbot.strategies.relative_orders' + 'Relative Orders': 'dexbot.strategies.relative_orders', + 'Staggered Orders': 'dexbot.strategies.staggered_orders' } return strategies diff --git a/dexbot/strategies/staggered_orders.py b/dexbot/strategies/staggered_orders.py new file mode 100644 index 000000000..b7f75510b --- /dev/null +++ b/dexbot/strategies/staggered_orders.py @@ -0,0 +1,47 @@ +from dexbot.basestrategy import BaseStrategy +from dexbot.queue.idle_queue import idle_add + +from bitshares.amount import Amount + + +class Strategy(BaseStrategy): + """ Staggered Orders strategy + """ + + def __init__(self, *args, **kwargs): + super().__init__(*args, **kwargs) + + # Define Callbacks + self.onMarketUpdate += self.check_orders + self.onAccount += self.check_orders + + self.error_ontick = self.error + self.error_onMarketUpdate = self.error + self.error_onAccount = self.error + + self.worker_name = kwargs.get('name') + self.view = kwargs.get('view') + + self.check_orders() + + def error(self, *args, **kwargs): + self.cancel_all() + self.disabled = True + self.log.info(self.execute()) + + def update_orders(self): + self.log.info('Change detected, updating orders') + # Todo: implement logic + + def check_orders(self, *args, **kwargs): + """ Tests if the orders need updating + """ + pass + # Todo: implement logic + + # GUI updaters + def update_gui_profit(self): + pass + + def update_gui_slider(self): + pass diff --git a/gui.spec b/gui.spec index 8c2ad41c4..206ae2dd6 100644 --- a/gui.spec +++ b/gui.spec @@ -9,6 +9,7 @@ hiddenimports_strategies = [ 'dexbot.strategies', 'dexbot.strategies.echo', 'dexbot.strategies.relative_orders', + 'dexbot.strategies.staggered_orders', 'dexbot.strategies.storagedemo', 'dexbot.strategies.walls', ]