Exemplo n.º 1
0
def get_directory_store_backtests():
    # eg '/home/rob/data/backtests/'
    key_name = "backtest_store_directory"
    production_config = get_production_config()
    store_directory = getattr(production_config, key_name)

    return store_directory
Exemplo n.º 2
0
def ib_defaults(**kwargs):
    """
    Returns ib configuration with following precedence
    1- if passed in arguments: ipaddress, port, idoffset - use that
    2- if defined in private_config file, use that. ib_ipaddress, ib_port, ib_idoffset
    3 - if defined in system defaults file, use that

    :return: mongo db, hostname, port
    """

    # this will include defaults.yaml if not defined in private
    passed_param_names = list(kwargs.keys())
    output_dict = {}
    config = get_production_config()
    for param_name in LIST_OF_IB_PARAMS:
        if param_name in passed_param_names:
            param_value = kwargs[param_name]
        else:
            param_value = arg_not_supplied

        if param_value is arg_not_supplied:
            param_value = getattr(config, param_name)

        output_dict[param_name] = param_value

    # Get from dictionary
    ipaddress = output_dict["ib_ipaddress"]
    port = output_dict["ib_port"]
    idoffset = output_dict["ib_idoffset"]

    return ipaddress, port, idoffset
Exemplo n.º 3
0
def mongo_defaults(**kwargs):
    """
    Returns mongo configuration with following precedence

    1- if passed in arguments: mongo_db, mongo_host, mongo_port - use that
    2- if defined in private_config file, use that. mongo_db, mongo_host, mongo_port
    3- if defined in system defaults file, use that: mongo_db, mongo_host

    :return: mongo db, hostname, port
    """
    # this will include defaults.yaml if not defined in private
    passed_param_names = list(kwargs.keys())
    production_config = get_production_config()
    output_dict = {}
    for param_name in LIST_OF_MONGO_PARAMS:

        if param_name in passed_param_names:
            param_value = kwargs[param_name]
        else:
            param_value = arg_not_supplied

        if param_value is arg_not_supplied:

            param_value = getattr(production_config, param_name)

        output_dict[param_name] = param_value

    # Get from dictionary
    mongo_db = output_dict["mongo_db"]
    hostname = output_dict["mongo_host"]
    port = output_dict["mongo_port"]

    return mongo_db, hostname, port
Exemplo n.º 4
0
def get_directory_store_backtests():
    # eg '/home/rob/data/backtests/'
    production_config = get_production_config()
    store_directory = production_config.get_element_or_missing_data("backtest_store_directory")
    if store_directory is missing_data:
        raise Exception("Need to specify backtest_store_directory in config file")

    return store_directory
def dump_mongo_data(data):
    host = get_production_config().get_element_or_arg_not_supplied("mongo_host")
    path = get_mongo_dump_directory()
    data.log.msg("Dumping mongo data to %s NOT TESTED IN WINDOWS" % path)
    if host.startswith("mongodb://"):
        os.system("mongodump --uri='%s' -o=%s" % (host, path))
    else:
        os.system("mongodump --host='%s' -o=%s" % (host, path))
    data.log.msg("Dumped")
Exemplo n.º 6
0
def get_trading_server_login_data():
    production_config = get_production_config()
    trading_server_ip = production_config.get_element_or_missing_data(
        "trading_server_ip")
    if trading_server_ip is missing_data:
        return missing_data

    trading_server_username = production_config.trading_server_username
    trading_server_ssh_port = production_config.trading_server_ssh_port

    return trading_server_username, trading_server_ip, trading_server_ssh_port
Exemplo n.º 7
0
def get_existing_bad_markets():
    production_config = get_production_config()

    excluded_markets_config_element = production_config.get_element_or_missing_data(
        "exclude_instrument_lists")
    if excluded_markets_config_element is missing_data:
        print("NO BAD MARKETS IN CONFIG!")
        existing_bad_markets = []
    else:
        existing_bad_markets = \
            excluded_markets_config_element.get('bad_markets', [])

    return existing_bad_markets
Exemplo n.º 8
0
def get_email_details():
    # FIXME DON'T LIKE RETURNING ALL THESE VALUES - return CONFIG or subset?
    try:
        production_config = get_production_config()
        email_address = production_config.email_address
        email_pwd = production_config.email_pwd
        email_server = production_config.email_server
        email_to = production_config.email_to
        email_port = production_config.email_port
    except:
        raise Exception(
            "Need to have all of these for email to work in private config: email_address, email_pwd, email_server, email_to",
            "email_port")

    return email_server, email_address, email_pwd, email_to, email_port
Exemplo n.º 9
0
def display_bad_market_info(bad_markets: list):
    print("Add the following to yaml .config under bad_markets heading:\n")
    print("bad_markets:")
    __ = [print("  - %s" % instrument) for instrument in bad_markets]

    production_config = get_production_config()

    ## this should be a function
    existing_bad_markets = production_config.get_element_or_missing_data(
        "bad_markets")
    if existing_bad_markets is missing_data:
        existing_bad_markets = []
    existing_bad_markets.sort()

    new_bad_markets = list(
        set(bad_markets).difference(set(existing_bad_markets)))
    removed_bad_markets = list(
        set(existing_bad_markets).difference(set(bad_markets)))

    print("New bad markets %s" % new_bad_markets)
    print("Removed bad markets %s" % removed_bad_markets)
Exemplo n.º 10
0

def _get_change_in_avg_units_to_check(change_in_avg_units: pd.Series,
                                      first_date_in_new_data=None):
    if first_date_in_new_data is None:
        # No merged data so we check it all
        change_in_avg_units_to_check = change_in_avg_units
    else:
        # just check more recent data
        change_in_avg_units_to_check = change_in_avg_units[
            first_date_in_new_data:]

    return change_in_avg_units_to_check


production_config = get_production_config()
max_spike = production_config.max_price_spike


def _check_for_spikes_in_change_in_avg_units(
        change_in_avg_units_to_check: pd.Series):

    if any(change_in_avg_units_to_check > max_spike):
        first_spike = change_in_avg_units_to_check.index[
            change_in_avg_units_to_check > max_spike][0]
    else:
        first_spike = no_spike

    return first_spike

Exemplo n.º 11
0
def get_broker_account() -> str:
    production_config = get_production_config()
    account_id = production_config.get_element_or_missing_data(
        "broker_account")
    return account_id
Exemplo n.º 12
0
    def config(self) -> Config:
        config = getattr(self, "_config", None)
        if config is None:
            config = self._config = get_production_config()

        return config