Merge pull request #997 from freqtrade/fix/timedout_candle

don't flag data as outdated which isn't
This commit is contained in:
Janne Sinivirta 2018-07-08 17:36:03 +03:00 committed by GitHub
commit 34764108cc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 6 deletions

View File

@ -2,7 +2,7 @@
Functions to analyze ticker data with indicators and produce buy and sell signals
"""
import logging
from datetime import datetime, timedelta
from datetime import datetime
from enum import Enum
from typing import Dict, List, Tuple
@ -154,7 +154,7 @@ class Analyze(object):
# Check if dataframe is out of date
signal_date = arrow.get(latest['date'])
interval_minutes = constants.TICKER_INTERVAL_MINUTES[interval]
if signal_date < (arrow.utcnow() - timedelta(minutes=(interval_minutes + 5))):
if signal_date < (arrow.utcnow().shift(minutes=-(interval_minutes * 2 + 5))):
logger.warning(
'Outdated history for pair %s. Last tick is %s minutes old',
pair,

View File

@ -4,7 +4,6 @@
Unit test file for analyse.py
"""
import datetime
import logging
from unittest.mock import MagicMock
@ -148,8 +147,9 @@ def test_get_signal_old_dataframe(default_conf, mocker, caplog):
caplog.set_level(logging.INFO)
mocker.patch('freqtrade.exchange.Exchange.get_ticker_history', return_value=1)
exchange = get_patched_exchange(mocker, default_conf)
# FIX: The get_signal function has hardcoded 10, which we must inturn hardcode
oldtime = arrow.utcnow() - datetime.timedelta(minutes=11)
# default_conf defines a 5m interval. we check interval * 2 + 5m
# this is necessary as the last candle is removed (partial candles) by default
oldtime = arrow.utcnow().shift(minutes=-16)
ticks = DataFrame([{'buy': 1, 'date': oldtime}])
mocker.patch.multiple(
'freqtrade.analyze.Analyze',
@ -159,7 +159,7 @@ def test_get_signal_old_dataframe(default_conf, mocker, caplog):
)
assert (False, False) == _ANALYZE.get_signal(exchange, 'xyz', default_conf['ticker_interval'])
assert log_has(
'Outdated history for pair xyz. Last tick is 11 minutes old',
'Outdated history for pair xyz. Last tick is 16 minutes old',
caplog.record_tuples
)