• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

freqtrade / freqtrade / 9394559170

26 Apr 2024 06:36AM UTC coverage: 94.656% (-0.02%) from 94.674%
9394559170

push

github

xmatthias
Loader should be passed as kwarg for clarity

20280 of 21425 relevant lines covered (94.66%)

0.95 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

95.35
/freqtrade/optimize/base_analysis.py
1
import logging
1✔
2
from copy import deepcopy
1✔
3
from datetime import datetime, timezone
1✔
4
from typing import Any, Dict, Optional
1✔
5

6
from pandas import DataFrame
1✔
7

8
from freqtrade.configuration import TimeRange
1✔
9

10

11
logger = logging.getLogger(__name__)
1✔
12

13

14
class VarHolder:
1✔
15
    timerange: TimeRange
1✔
16
    data: DataFrame
1✔
17
    indicators: Dict[str, DataFrame]
1✔
18
    result: DataFrame
1✔
19
    compared: DataFrame
1✔
20
    from_dt: datetime
1✔
21
    to_dt: datetime
1✔
22
    compared_dt: datetime
1✔
23
    timeframe: str
1✔
24
    startup_candle: int
1✔
25

26

27
class BaseAnalysis:
1✔
28

29
    def __init__(self, config: Dict[str, Any], strategy_obj: Dict):
1✔
30
        self.failed_bias_check = True
1✔
31
        self.full_varHolder = VarHolder()
1✔
32
        self.exchange: Optional[Any] = None
1✔
33
        self._fee = None
1✔
34

35
        # pull variables the scope of the lookahead_analysis-instance
36
        self.local_config = deepcopy(config)
1✔
37
        self.local_config['strategy'] = strategy_obj['name']
1✔
38
        self.strategy_obj = strategy_obj
1✔
39

40
    @staticmethod
1✔
41
    def dt_to_timestamp(dt: datetime):
1✔
42
        timestamp = int(dt.replace(tzinfo=timezone.utc).timestamp())
1✔
43
        return timestamp
1✔
44

45
    def fill_full_varholder(self):
1✔
46
        self.full_varHolder = VarHolder()
1✔
47

48
        # define datetime in human-readable format
49
        parsed_timerange = TimeRange.parse_timerange(self.local_config['timerange'])
1✔
50

51
        if parsed_timerange.startdt is None:
1✔
52
            self.full_varHolder.from_dt = datetime.fromtimestamp(0, tz=timezone.utc)
×
53
        else:
54
            self.full_varHolder.from_dt = parsed_timerange.startdt
1✔
55

56
        if parsed_timerange.stopdt is None:
1✔
57
            self.full_varHolder.to_dt = datetime.now(timezone.utc)
×
58
        else:
59
            self.full_varHolder.to_dt = parsed_timerange.stopdt
1✔
60

61
        self.prepare_data(self.full_varHolder, self.local_config['pairs'])
1✔
62

63
    def start(self) -> None:
1✔
64

65
        # first make a single backtest
66
        self.fill_full_varholder()
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc