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")
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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))
Ejemplo n.º 7
0
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