def backup_capital(data): strategy_list = get_list_of_strategies(data) capital_data = dict() for strategy_name in strategy_list: capital_data[ strategy_name] = data.mongo_capital.get_capital_pd_series_for_strategy( strategy_name) capital_data[ "TOTAL_total"] = data.mongo_capital.get_total_capital_pd_series() capital_data[ "TOTAL_broker"] = data.mongo_capital.get_broker_account_value_pd_series( ) capital_data[ "TOTAL_max"] = data.mongo_capital.get_maximum_account_value_pd_series( ) capital_data[ "TOTAL_pandl"] = data.mongo_capital.get_profit_and_loss_account_pd_series( ) capital_data = pd.concat(capital_data, axis=1) capital_data.columns = strategy_list + [ "TOTAL_total", "TOTAL_broker", "TOTAL_max", "TOTAL_pandl", ] capital_data = capital_data.ffill() data.csv_capital.write_df_of_all_capital(capital_data) data.log.msg("Backed up capital data")
def get_list_of_last_position_updates(data): strategy_list = get_list_of_strategies(data) list_of_updates = [] for strategy_name in strategy_list: updates_for_strategy = get_list_of_position_updates_for_strategy( data, strategy_name) list_of_updates = list_of_updates + updates_for_strategy return list_of_updates
def get_list_of_timer_functions_for_strategies(process_name, data): list_of_strategy_names = get_list_of_strategies() list_of_timer_names_and_functions = [] for strategy_name in list_of_strategy_names: object, method = get_strategy_object_and_method( process_name, data, strategy_name) strategy_tuple = (strategy_name, object, method) list_of_timer_names_and_functions.append(strategy_tuple) return list_of_timer_names_and_functions
def get_control_data_list_for_strategy_processes(data): list_of_processes = get_process_with_strategies(data) list_of_strategies = get_list_of_strategies() all_cd_list = [] for process_name in list_of_processes: for strategy_name in list_of_strategies: last_run_or_heartbeat = get_last_run_or_heartbeat(data, dict(type=process_name, strategy_name = strategy_name)) data_for_method = dataForMethod(method_or_strategy=strategy_name, process_name=process_name, last_run_or_heartbeat=last_run_or_heartbeat) all_cd_list.append(data_for_method) return all_cd_list
def backup_optimal_positions(data): strategy_list = get_list_of_strategies(data) for strategy_name in strategy_list: instrument_list = data.mongo_optimal_position.get_list_of_instruments_for_strategy_with_optimal_position( strategy_name) for instrument_code in instrument_list: mongo_data = data.mongo_optimal_position.get_optimal_position_as_df_for_strategy_and_instrument( strategy_name, instrument_code) if mongo_data is missing_data: continue data.csv_optimal_position.write_position_df_for_instrument_strategy( strategy_name, instrument_code, mongo_data) data.log.msg("Backed up %s %s optimal position data" % (instrument_code, strategy_name))
def backup_strategy_position_data(data): strategy_list = get_list_of_strategies(data) instrument_list = (data.mongo_contract_position. get_list_of_instruments_with_any_position()) for strategy_name in strategy_list: for instrument_code in instrument_list: mongo_data = data.mongo_strategy_position.get_position_as_df_for_strategy_and_instrument( strategy_name, instrument_code) if mongo_data is missing_data: continue data.csv_strategy_position.write_position_df_for_instrument_strategy( strategy_name, instrument_code, mongo_data) data.log.msg("Backed up %s %s strategy position data" % (instrument_code, strategy_name))
def strategy_report(data=arg_not_supplied, timestamp=arg_not_supplied, strategy_name=ALL_STRATEGIES): if data is arg_not_supplied: data = dataBlob() if strategy_name == ALL_STRATEGIES: list_of_strategies = get_list_of_strategies(data=data) if timestamp is not arg_not_supplied: # use print not logs as will only happen interactively print("Timestamp will be ignored as running ALL strategy reports") timestamp = arg_not_supplied else: list_of_strategies = [strategy_name] formatted_output = get_strategies_report_output(data, list_of_strategies, timestamp=timestamp) return formatted_output