bot: use async ccxt in _process for fetching ticker history

This commit is contained in:
Samuel Husso 2018-07-27 10:14:36 +03:00
parent ab8993d13f
commit a12af0ef5a

View File

@ -12,10 +12,11 @@ from typing import Any, Callable, Dict, List, Optional
import arrow import arrow
import requests import requests
from cachetools import TTLCache, cached from cachetools import TTLCache, cached
import asyncio
from freqtrade import (DependencyException, OperationalException, from freqtrade import (DependencyException, OperationalException,
TemporaryError, __version__, constants, persistence) TemporaryError, __version__, constants, persistence)
from freqtrade.exchange import Exchange from freqtrade.exchange import Exchange, run_async_task
from freqtrade.persistence import Trade from freqtrade.persistence import Trade
from freqtrade.rpc import RPCManager, RPCMessageType from freqtrade.rpc import RPCManager, RPCMessageType
from freqtrade.state import State from freqtrade.state import State
@ -43,6 +44,8 @@ class FreqtradeBot(object):
__version__, __version__,
) )
self.loop = asyncio.get_event_loop()
# Init bot states # Init bot states
self.state = State.STOPPED self.state = State.STOPPED
@ -52,6 +55,7 @@ class FreqtradeBot(object):
self.rpc: RPCManager = RPCManager(self) self.rpc: RPCManager = RPCManager(self)
self.persistence = None self.persistence = None
self.exchange = Exchange(self.config) self.exchange = Exchange(self.config)
self.exchange.loop = self.loop
self._init_modules() self._init_modules()
def _init_modules(self) -> None: def _init_modules(self) -> None:
@ -146,6 +150,10 @@ class FreqtradeBot(object):
final_list = sanitized_list[:nb_assets] if nb_assets else sanitized_list final_list = sanitized_list[:nb_assets] if nb_assets else sanitized_list
self.config['exchange']['pair_whitelist'] = final_list self.config['exchange']['pair_whitelist'] = final_list
# async update ticker history
run_async_task(self.exchange.get_ticker_history_async,
tick_interval = self.strategy.ticker_interval)
# Query trades from persistence layer # Query trades from persistence layer
trades = Trade.query.filter(Trade.is_open.is_(True)).all() trades = Trade.query.filter(Trade.is_open.is_(True)).all()