コード例 #1
0
def initialize_cache(currency_pair: str, tick_rate: str) -> None:
    with Cache.configure(currency_pair, DATA_CACHE_GROUP):
        cache = Cache.get()
        source_mod_time = get_latest_source_modification(currency_pair)
        if cache.cache_exists(
        ) and cache.get_data_mod_time() < source_mod_time:
            print('Cache invalid. Clearing cache.')
            cache.clear_all_keys()
コード例 #2
0
def preprocess_signals(data: pd.DataFrame, args: Namespace) -> pd.DataFrame:
    with Cache.configure(args.currency_pair, args.tick_rate):
        signal_strategy = SignalStrategyFactory.get(
            'ma', **signal_strat_argument_parser(args))
        stopping_strat_argument_parser(args)
        stop_strategy = StoppingStrategyFactory.get(
            args.stopping_strat, **stopping_strat_argument_parser(args))
        preprocessor = Preprocessor(signal_strategy, stop_strategy)
        if args.no_cache:
            return preprocessor.find_signals(data)
        else:
            return preprocessor.get_signals(data)
コード例 #3
0
def simulate(data: pd.Series, signals: pd.DataFrame,
             args: Namespace) -> (pd.DataFrame, dict):
    with Cache.configure(args.currency_pair, args.tick_rate):
        resolver = SignalResolver(data[args.quote], args.reverse)
        if args.no_cache:
            resolved_signals = resolver.resolve_signals(
                signals, args.start, args.stop)
        else:
            resolved_signals = resolver.get_resolve_signals(
                signals, args.start, args.stop)
        analyzer = SignalAnalyzer(resolved_signals)
        stats = analyzer.get_stats(args.start, args.stop)
        return resolved_signals, stats
コード例 #4
0
def load_data(currency_pair: str, tick_rate: str,
              no_cache: bool) -> pd.DataFrame:
    source_reader = HistDataReader()
    loader = DataLoader(source_reader, tick_rate)
    if no_cache:
        print('Cache disabled.')
        data, resampled_data = loader.load_from_sources(currency_pair)
    else:
        with Cache.configure(currency_pair, DATA_CACHE_GROUP):
            data, resampled_data = loader.load(currency_pair)
    if resampled_data is not None:
        print_data_summary(resampled_data)
        return data, resampled_data
    else:
        raise RuntimeError('Unable to load data')