From 54a86d72f28550e5904981c7b1fe909383dc91dc Mon Sep 17 00:00:00 2001 From: Matthias Date: Sat, 17 Nov 2018 12:59:16 +0100 Subject: [PATCH] Raise error if one of the required ordertypes is not present --- freqtrade/constants.py | 1 + freqtrade/strategy/resolver.py | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/freqtrade/constants.py b/freqtrade/constants.py index b7c069c45..d5c23fe1d 100644 --- a/freqtrade/constants.py +++ b/freqtrade/constants.py @@ -12,6 +12,7 @@ DEFAULT_STRATEGY = 'DefaultStrategy' DEFAULT_DB_PROD_URL = 'sqlite:///tradesv3.sqlite' DEFAULT_DB_DRYRUN_URL = 'sqlite://' UNLIMITED_STAKE_AMOUNT = 'unlimited' +REQUIRED_ORDERTYPES = ['buy', 'sell', 'stoploss'] TICKER_INTERVAL_MINUTES = { diff --git a/freqtrade/strategy/resolver.py b/freqtrade/strategy/resolver.py index 31bd21ec8..3f25e4838 100644 --- a/freqtrade/strategy/resolver.py +++ b/freqtrade/strategy/resolver.py @@ -84,6 +84,10 @@ class StrategyResolver(object): else: config['order_types'] = self.strategy.order_types + if not all(k in self.strategy.order_types for k in constants.REQUIRED_ORDERTYPES): + raise ImportError(f"Impossible to load Strategy '{self.strategy.__class__.__name__}'. " + f"Order-types mapping is incomplete.") + # Sort and apply type conversions self.strategy.minimal_roi = OrderedDict(sorted( {int(key): value for (key, value) in self.strategy.minimal_roi.items()}.items(),