further refactoring of FreqtradeBot.process()
This commit is contained in:
parent
e35daf95c0
commit
158cb307f6
@ -4,7 +4,6 @@ Freqtrade is the main module of this bot. It contains the class Freqtrade()
|
|||||||
|
|
||||||
import copy
|
import copy
|
||||||
import logging
|
import logging
|
||||||
import time
|
|
||||||
import traceback
|
import traceback
|
||||||
from datetime import datetime
|
from datetime import datetime
|
||||||
from typing import Any, Dict, List, Optional, Tuple
|
from typing import Any, Dict, List, Optional, Tuple
|
||||||
@ -13,7 +12,7 @@ import arrow
|
|||||||
from requests.exceptions import RequestException
|
from requests.exceptions import RequestException
|
||||||
|
|
||||||
from freqtrade import (DependencyException, OperationalException,
|
from freqtrade import (DependencyException, OperationalException,
|
||||||
TemporaryError, __version__, constants, persistence)
|
__version__, constants, persistence)
|
||||||
from freqtrade.data.converter import order_book_to_dataframe
|
from freqtrade.data.converter import order_book_to_dataframe
|
||||||
from freqtrade.data.dataprovider import DataProvider
|
from freqtrade.data.dataprovider import DataProvider
|
||||||
from freqtrade.edge import Edge
|
from freqtrade.edge import Edge
|
||||||
@ -99,7 +98,7 @@ class FreqtradeBot(object):
|
|||||||
:return: True if one or more trades has been created or closed, False otherwise
|
:return: True if one or more trades has been created or closed, False otherwise
|
||||||
"""
|
"""
|
||||||
state_changed = False
|
state_changed = False
|
||||||
try:
|
|
||||||
# Check whether markets have to be reloaded
|
# Check whether markets have to be reloaded
|
||||||
self.exchange._reload_markets()
|
self.exchange._reload_markets()
|
||||||
|
|
||||||
@ -136,18 +135,6 @@ class FreqtradeBot(object):
|
|||||||
self.check_handle_timedout()
|
self.check_handle_timedout()
|
||||||
Trade.session.flush()
|
Trade.session.flush()
|
||||||
|
|
||||||
except TemporaryError as error:
|
|
||||||
logger.warning(f"Error: {error}, retrying in {constants.RETRY_TIMEOUT} seconds...")
|
|
||||||
time.sleep(constants.RETRY_TIMEOUT)
|
|
||||||
except OperationalException:
|
|
||||||
tb = traceback.format_exc()
|
|
||||||
hint = 'Issue `/start` if you think it is safe to restart.'
|
|
||||||
self.rpc.send_msg({
|
|
||||||
'type': RPCMessageType.STATUS_NOTIFICATION,
|
|
||||||
'status': f'OperationalException:\n```\n{tb}```{hint}'
|
|
||||||
})
|
|
||||||
logger.exception('OperationalException. Stopping trader ...')
|
|
||||||
self.state = State.STOPPED
|
|
||||||
return state_changed
|
return state_changed
|
||||||
|
|
||||||
def _extend_whitelist_with_trades(self, whitelist: List[str], trades: List[Any]):
|
def _extend_whitelist_with_trades(self, whitelist: List[str], trades: List[Any]):
|
||||||
|
@ -6,11 +6,13 @@ Read the documentation to know what cli arguments you need.
|
|||||||
import logging
|
import logging
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
import traceback
|
||||||
from argparse import Namespace
|
from argparse import Namespace
|
||||||
from typing import Any, Callable, List
|
from typing import Any, Callable, List
|
||||||
import sdnotify
|
import sdnotify
|
||||||
|
|
||||||
from freqtrade import (constants, OperationalException, __version__)
|
from freqtrade import (constants, OperationalException, TemporaryError,
|
||||||
|
__version__)
|
||||||
from freqtrade.arguments import Arguments
|
from freqtrade.arguments import Arguments
|
||||||
from freqtrade.configuration import Configuration, set_loggers
|
from freqtrade.configuration import Configuration, set_loggers
|
||||||
from freqtrade.state import State
|
from freqtrade.state import State
|
||||||
@ -173,7 +175,23 @@ class Worker(object):
|
|||||||
return result
|
return result
|
||||||
|
|
||||||
def _process(self) -> bool:
|
def _process(self) -> bool:
|
||||||
return self.freqtrade.process()
|
state_changed = False
|
||||||
|
try:
|
||||||
|
state_changed = self.freqtrade.process()
|
||||||
|
|
||||||
|
except TemporaryError as error:
|
||||||
|
logger.warning(f"Error: {error}, retrying in {constants.RETRY_TIMEOUT} seconds...")
|
||||||
|
time.sleep(constants.RETRY_TIMEOUT)
|
||||||
|
except OperationalException:
|
||||||
|
tb = traceback.format_exc()
|
||||||
|
hint = 'Issue `/start` if you think it is safe to restart.'
|
||||||
|
self.freqtrade.rpc.send_msg({
|
||||||
|
'type': RPCMessageType.STATUS_NOTIFICATION,
|
||||||
|
'status': f'OperationalException:\n```\n{tb}```{hint}'
|
||||||
|
})
|
||||||
|
logger.exception('OperationalException. Stopping trader ...')
|
||||||
|
self.state = State.STOPPED
|
||||||
|
return state_changed
|
||||||
|
|
||||||
def _reconfigure(self):
|
def _reconfigure(self):
|
||||||
"""
|
"""
|
||||||
|
Loading…
Reference in New Issue
Block a user