예제 #1
0
def get_list_of_last_futures_price_updates(data):
    list_of_instruments = get_list_of_instruments(data)
    updates = [
        get_last_futures_price_update_for_instrument(data, instrument_code)
        for instrument_code in list_of_instruments
    ]
    return updates
예제 #2
0
def get_list_of_position_updates_for_strategy(data, strategy_name):
    instrument_list = get_list_of_instruments(data)
    list_of_updates = [get_last_position_update_for_strategy_instrument(data, strategy_name, instrument_code)
                       for instrument_code in instrument_list]

    list_of_updates = [update for update in list_of_updates if update is not None]

    return list_of_updates
def auto_populate_position_limits(data: dataBlob):
    instrument_list = get_list_of_instruments(data)
    auto_parameters = get_auto_population_parameters()
    [
        set_position_limit_for_instrument(data,
                                          instrument_code=instrument_code,
                                          auto_parameters=auto_parameters)
        for instrument_code in instrument_list
    ]
    return None
예제 #4
0
def auto_populate_position_limits(data: dataBlob):
    instrument_list = get_list_of_instruments(data)
    risk_multiplier, max_leverage = get_risk_multiplier_and_max_leverage()
    [
        set_position_limit_for_instrument(
            data,
            instrument_code=instrument_code,
            risk_multiplier=risk_multiplier,
            max_leverage=max_leverage,
        ) for instrument_code in instrument_list
    ]
    return None
예제 #5
0
    def get_market_moves_for_dates(self,
                                   start_date: datetime.datetime,
                                   end_date: datetime.datetime):

        self._end_date = end_date
        self._start_date = start_date
        list_of_instruments = get_list_of_instruments(self.data, source="multiple")
        all_moves = [self.get_market_move_for_instrument_and_dates(
                                                               instrument_code=instrument_code)
                     for instrument_code in list_of_instruments]

        all_moves_as_df = pd.DataFrame(all_moves)
        all_moves_as_df = all_moves_as_df.dropna()

        return all_moves_as_df
예제 #6
0
    def get_market_moves_for_period(self,
                                    period: str) -> pd.DataFrame:

        self._end_date = datetime.datetime.now()

        print("Getting data for %s" % period)
        # ['name', 'change', 'vol_adjusted']
        list_of_instruments = get_list_of_instruments(self.data, source="multiple")
        all_moves = [self.get_market_move_for_instrument_and_period(
                                                               instrument_code=instrument_code,
                                                               period=period)
                     for instrument_code in list_of_instruments]

        all_moves_as_df = pd.DataFrame(all_moves)
        all_moves_as_df = all_moves_as_df.dropna()

        return all_moves_as_df
예제 #7
0
def get_instrument_risk_table(data, only_held_instruments=True):
    ## INSTRUMENT RISK (daily %, annual %, return space daily and annual, base currency per contract daily and annual, positions)
    if only_held_instruments:
        instrument_list = get_instruments_with_positions_all_strategies(data)
    else:
        instrument_list = get_list_of_instruments()

    p = progressBar(len(instrument_list))
    risk_data_list = []
    for instrument_code in instrument_list:
        risk_this_instrument = get_risk_data_for_instrument(
            data, instrument_code)
        risk_data_list.append(risk_this_instrument)
        p.iterate()

    p.finished()

    risk_df = pd.DataFrame(risk_data_list, index=instrument_list).transpose()
    risk_df = sorted_clean_df(risk_df, "annual_risk_perc_capital")

    return risk_df
def auto_populate_limits(data: dataBlob):
    instrument_list = get_list_of_instruments(data)
    auto_parameters = get_auto_population_parameters()

    trade_multiplier = get_and_convert(
        "Higgest proportion of standard position expected to trade daily?",
        type_expected=float,
        default_value=MAX_POSITION_TRADED_DAILY,
    )
    period_days = get_and_convert("What period in days to set limit for?",
                                  type_expected=int,
                                  default_value=1)
    _ = [
        set_trade_limit_for_instrument(
            data,
            instrument_code=instrument_code,
            auto_parameters=auto_parameters,
            trade_multiplier=trade_multiplier,
            period_days=period_days,
        ) for instrument_code in instrument_list
    ]
    return None
예제 #9
0
def auto_populate_limits(data: dataBlob):
    instrument_list = get_list_of_instruments(data)
    risk_multiplier, max_leverage = get_risk_multiplier_and_max_leverage()
    trade_multiplier = get_and_convert(
        "Higgest proportion of standard position expected to trade daily?",
        type_expected=float,
        default_value=0.33,
    )
    period_days = get_and_convert("What period in days to set limit for?",
                                  type_expected=int,
                                  default_value=1)
    _ = [
        set_trade_limit_for_instrument(
            data,
            instrument_code=instrument_code,
            risk_multiplier=risk_multiplier,
            trade_multiplier=trade_multiplier,
            period_days=period_days,
            max_leverage=max_leverage,
        ) for instrument_code in instrument_list
    ]
    return None