offset=offset, start_dt=start_dt, end_dt=end_dt) # use previously calculated data to save initialization time if data_by_coin is None: bci.set_input_data(input_data) else: bci.data = data bci.dates = dates bci.data_by_coin = data_by_coin [ dates, baseline_values, index_values, fees ] = bci.run() results.append([ index, rebalancing, primary_volume_filter, secondary_volume_filter, max_allocation, running_avg_volume_period, primary_candidate, offset, dates, index_values, fees, baseline_values ]) if data_by_coin is None: data = bci.data dates = bci.dates data_by_coin = bci.data_by_coin except Exception as e:
primary_candidate_size=primary_candidate, secondary_candidate_size=secondary_candidate, initial_funds=1000, offset=offset, start_dt=start_dt, end_dt=end_dt) # use previously calculated data to save initialization time if data_by_coin is None: bci.set_input_data(input_data) else: bci.data = data bci.dates = dates bci.data_by_coin = data_by_coin [dates, baseline_values, index_values, fees] = bci.run() results.append([dates, index_values, fees, baseline_values, label]) if data_by_coin is None: data = bci.data dates = bci.dates data_by_coin = bci.data_by_coin except Exception as e: LOG.debug(e) LOG.info(f"Best performing index configurations:") for data in sorted(results, key=lambda x: x[1][-1], reverse=True): LOG.info( f"{data[4]}:{data[1][-1]:.2f}:{data[3][-1]:.2f}:{data[2]:.2f}") LOG.info(f"Best performing baseline configurations:")
return vars(parser.parse_args()) if __name__ == "__main__": LOG.info("Bitpanda Crypto Index Simulator") args = parse_args() bci = BCI( index_size = args['index'], rebalancing_period = args['rebalancing'], primary_usd_filtering = args['primary_volume_filter'], secondary_usd_filtering = args['secondary_volume_filter'], max_asset_allocation = args['max_allocation'], fee = args['fee'], running_avg_volume_period = args['volume_period'], index_candidate_size = args['candidates'], primary_candidate_size = args['primary_candidates'], secondary_candidate_size = args['secondary_candidates'], initial_funds = args['funds'], offset = args['offset'], bypass_validation = args['bypass_validation'], input_file_name = args['input_file'], start_dt = args['start_date'], end_dt = args['end_date'], show_graph = args['show_graph'], save_graph = args['save_graph'] ) bci.run()