Exemplo n.º 1
0
def _build_all_price_data(set_of_price_data, contract_date_info):

    current_price_data, next_price_data, carry_price_data = set_of_price_data
    all_price_data = pd.concat(
        [current_price_data, next_price_data, carry_price_data], axis=1)
    all_price_data.columns = [
        price_name,
        forward_name,
        carry_name,
    ]

    all_price_data[contract_name_from_column_name(
        price_name)] = contract_date_info.current_contract
    all_price_data[contract_name_from_column_name(
        forward_name)] = contract_date_info.next_contract
    all_price_data[contract_name_from_column_name(
        carry_name)] = contract_date_info.carry_contract

    return all_price_data
Exemplo n.º 2
0
def _change_contracts_to_str(multiple_price_data_aspd):
    for price_column in list_of_price_column_names:
        multiple_price_data_aspd[price_column] = multiple_price_data_aspd[
            price_column].astype(float)

        contract_column = contract_name_from_column_name(price_column)
        multiple_price_data_aspd[contract_column] = multiple_price_data_aspd[
            contract_column].astype(str)

    return multiple_price_data_aspd
Exemplo n.º 3
0
    def as_aligned_pd_row(self,
                          time_index: datetime.timedelta) -> pd.DataFrame:

        new_dict = {
            price_name: self.price,
            carry_name: self.carry,
            forward_name: self.forward,
            contract_name_from_column_name(price_name): self.price_contract,
            contract_name_from_column_name(carry_name): self.carry_contract,
            contract_name_from_column_name(forward_name): self.forward_contract
        }

        new_dict_with_nones_removed = dict([(key, value)
                                            for key, value in new_dict.items()
                                            if value is not None])

        new_df_row = pd.DataFrame(new_dict_with_nones_removed,
                                  index=[time_index])

        return new_df_row
def _calc_new_multiple_prices(existing_adjusted_prices: futuresAdjustedPrices,
                              updated_multiple_prices: futuresMultiplePrices)\
        -> (futuresMultiplePrices, str):

    last_date_in_current_adj = existing_adjusted_prices.index[-1]
    multiple_prices_as_dict = updated_multiple_prices.as_dict()

    prices_in_multiple_prices = multiple_prices_as_dict[price_name]
    price_contract_column = contract_name_from_column_name(price_name)

    last_contract_in_price_data = prices_in_multiple_prices[
        price_contract_column][:last_date_in_current_adj][-1]

    new_multiple_price_data = prices_in_multiple_prices.prices_after_date(
        last_date_in_current_adj)

    return new_multiple_price_data, last_contract_in_price_data
Exemplo n.º 5
0
    def as_dict(self) -> dictFuturesNamedContractFinalPricesWithContractID:
        """
        Split up and transform into dict

        :return: dictFuturesContractFinalPricesWithContractID, keys PRICE, FORWARD, CARRY
        """

        self_as_dict = {}
        for price_column_name in list_of_price_column_names:
            contract_column_name = contract_name_from_column_name(
                price_column_name)
            self_as_dict[
                price_column_name] = futuresNamedContractFinalPricesWithContractID(
                    self[price_column_name],
                    self[contract_column_name],
                    price_column_name=price_column_name)

        self_as_dict = dictFuturesNamedContractFinalPricesWithContractID(
            self_as_dict)

        return self_as_dict
Exemplo n.º 6
0
import pandas as pd

from syscore.objects import missing_instrument
from sysdata.sim.sim_data import simData

from sysobjects.adjusted_prices import futuresAdjustedPrices
from sysobjects.instruments import assetClassesAndInstruments, instrumentCosts, futuresInstrumentWithMetaData
from sysobjects.multiple_prices import futuresMultiplePrices
from sysobjects.dict_of_named_futures_per_contract_prices import price_name, carry_name, forward_name, contract_name_from_column_name

price_contract_name = contract_name_from_column_name(price_name)
carry_contract_name = contract_name_from_column_name(carry_name)
forward_contract_name = contract_name_from_column_name(forward_name)

class futuresSimData(simData):

    def __repr__(self):
        return "futuresSimData object with %d instruments" % len(
            self.get_instrument_list())

    def all_asset_classes(self) -> list:
        asset_class_data = self.get_instrument_asset_classes()

        return asset_class_data.all_asset_classes()

    def all_instruments_in_asset_class(self, asset_class: str) -> list:
        """
        Return all the instruments in a given asset class

        :param asset_class: str
        :return: list of instrument codes