Use Dataprovider
This commit is contained in:
parent
b119a767de
commit
7206287b00
@ -5,6 +5,7 @@ including Klines, tickers, historic data
|
|||||||
Common Interface for bot and strategy to access data.
|
Common Interface for bot and strategy to access data.
|
||||||
"""
|
"""
|
||||||
import logging
|
import logging
|
||||||
|
from typing import List, Dict
|
||||||
|
|
||||||
from pandas import DataFrame
|
from pandas import DataFrame
|
||||||
|
|
||||||
@ -19,13 +20,13 @@ class DataProvider(object):
|
|||||||
self._config = config
|
self._config = config
|
||||||
self._exchange = exchange
|
self._exchange = exchange
|
||||||
|
|
||||||
def refresh() -> None:
|
def refresh(self, pairlist: List[str]) -> None:
|
||||||
"""
|
"""
|
||||||
Refresh data, called with each cycle
|
Refresh data, called with each cycle
|
||||||
"""
|
"""
|
||||||
pass
|
self._exchange.refresh_tickers(pairlist, self._config['ticker_interval'])
|
||||||
|
|
||||||
def ohlcv(self, pair: str) -> DataFrame:
|
def ohlcv(self, pair: str) -> List[str]:
|
||||||
"""
|
"""
|
||||||
get ohlcv data for the given pair as DataFrame
|
get ohlcv data for the given pair as DataFrame
|
||||||
"""
|
"""
|
||||||
|
@ -16,6 +16,7 @@ from freqtrade import (DependencyException, OperationalException,
|
|||||||
TemporaryError, __version__, constants, persistence)
|
TemporaryError, __version__, constants, persistence)
|
||||||
from freqtrade.data.converter import order_book_to_dataframe
|
from freqtrade.data.converter import order_book_to_dataframe
|
||||||
from freqtrade.edge import Edge
|
from freqtrade.edge import Edge
|
||||||
|
from freqtrade.dataprovider import DataProvider
|
||||||
from freqtrade.exchange import Exchange
|
from freqtrade.exchange import Exchange
|
||||||
from freqtrade.persistence import Trade
|
from freqtrade.persistence import Trade
|
||||||
from freqtrade.rpc import RPCManager, RPCMessageType
|
from freqtrade.rpc import RPCManager, RPCMessageType
|
||||||
@ -57,6 +58,8 @@ class FreqtradeBot(object):
|
|||||||
self.persistence = None
|
self.persistence = None
|
||||||
self.exchange = Exchange(self.config)
|
self.exchange = Exchange(self.config)
|
||||||
self.wallets = Wallets(self.exchange)
|
self.wallets = Wallets(self.exchange)
|
||||||
|
|
||||||
|
self.dataprovider = DataProvider(self.config, self.exchange)
|
||||||
pairlistname = self.config.get('pairlist', {}).get('method', 'StaticPairList')
|
pairlistname = self.config.get('pairlist', {}).get('method', 'StaticPairList')
|
||||||
self.pairlists = PairListResolver(pairlistname, self, self.config).pairlist
|
self.pairlists = PairListResolver(pairlistname, self, self.config).pairlist
|
||||||
|
|
||||||
@ -167,7 +170,7 @@ class FreqtradeBot(object):
|
|||||||
if trade.pair not in self.active_pair_whitelist])
|
if trade.pair not in self.active_pair_whitelist])
|
||||||
|
|
||||||
# Refreshing candles
|
# Refreshing candles
|
||||||
self.exchange.refresh_tickers(self.active_pair_whitelist, self.strategy.ticker_interval)
|
self.dataprovider.refresh(self.active_pair_whitelist)
|
||||||
|
|
||||||
# First process current opened trades
|
# First process current opened trades
|
||||||
for trade in trades:
|
for trade in trades:
|
||||||
@ -317,7 +320,7 @@ class FreqtradeBot(object):
|
|||||||
|
|
||||||
# running get_signal on historical data fetched
|
# running get_signal on historical data fetched
|
||||||
for _pair in whitelist:
|
for _pair in whitelist:
|
||||||
(buy, sell) = self.strategy.get_signal(_pair, interval, self.exchange.klines(_pair))
|
(buy, sell) = self.strategy.get_signal(_pair, interval, self.dataprovider.ohlcv(_pair))
|
||||||
if buy and not sell:
|
if buy and not sell:
|
||||||
stake_amount = self._get_trade_stake_amount(_pair)
|
stake_amount = self._get_trade_stake_amount(_pair)
|
||||||
if not stake_amount:
|
if not stake_amount:
|
||||||
@ -579,7 +582,7 @@ class FreqtradeBot(object):
|
|||||||
experimental = self.config.get('experimental', {})
|
experimental = self.config.get('experimental', {})
|
||||||
if experimental.get('use_sell_signal') or experimental.get('ignore_roi_if_buy_signal'):
|
if experimental.get('use_sell_signal') or experimental.get('ignore_roi_if_buy_signal'):
|
||||||
(buy, sell) = self.strategy.get_signal(trade.pair, self.strategy.ticker_interval,
|
(buy, sell) = self.strategy.get_signal(trade.pair, self.strategy.ticker_interval,
|
||||||
self.exchange.klines(trade.pair))
|
self.dataprovider.ohlcv(trade.pair))
|
||||||
|
|
||||||
config_ask_strategy = self.config.get('ask_strategy', {})
|
config_ask_strategy = self.config.get('ask_strategy', {})
|
||||||
if config_ask_strategy.get('use_order_book', False):
|
if config_ask_strategy.get('use_order_book', False):
|
||||||
|
Loading…
Reference in New Issue
Block a user