Create strategy_wrapper to call user-defined code with

This commit is contained in:
Matthias
2020-02-06 20:26:04 +01:00
parent b5ee4f17cb
commit 2816b96650
4 changed files with 47 additions and 18 deletions

View File

@@ -0,0 +1,29 @@
import logging
from freqtrade.exceptions import StrategyError
logger = logging.getLogger(__name__)
def strategy_safe_wrapper(f, message: str, default_retval=None):
def wrapper(*args, **kwargs):
try:
return f(*args, **kwargs)
except ValueError as error:
logger.warning(
f"{message}"
f"Strategy caused the following exception: {error}"
f"{f}"
)
if not default_retval:
raise StrategyError(str(error)) from error
return default_retval
except Exception as error:
logger.exception(
f"Unexpected error {error} calling {f}"
)
if not default_retval:
raise StrategyError(str(error)) from error
return default_retval
return wrapper