def get_all_contract_objects_for_instrument_code(self, instrument_code: str) -> listOfFuturesContracts:

        list_of_keys = self._get_all_contract_keys_for_instrument_code(instrument_code)
        list_of_objects = [self._get_contract_data_from_key_without_checking(key) for key in list_of_keys]
        list_of_futures_contracts = listOfFuturesContracts(list_of_objects)

        return list_of_futures_contracts
Exemple #2
0
def get_contract_chain(instrument_code, data):
    diag_contracts = diagContracts(data)
    diag_prices = diagPrices(data)

    roll_parameters = diag_contracts.get_roll_parameters(instrument_code)

    # Get the last contract currently being used
    multiple_prices = diag_prices.get_multiple_prices(instrument_code)
    current_contract_dict = multiple_prices.current_contract_dict()
    current_contract_list = list(current_contract_dict.values())
    furthest_out_contract_date = max(current_contract_list)
    furthest_out_contract = contractDateWithRollParameters(
        contractDate(furthest_out_contract_date), roll_parameters)

    # To give us wiggle room, and ensure we start collecting the new forward a
    # little in advance
    final_contract = furthest_out_contract.next_priced_contract()

    contract_date_chain = (
        final_contract.get_unexpired_contracts_from_now_to_contract_date())

    # We have a list of contract_date objects, need futureContracts
    # create a 'bare' instrument object
    instrument_object = futuresInstrument(instrument_code)

    contract_object_chain_as_list = [
        futuresContract(instrument_object, contract_date_object)
        for contract_date_object in contract_date_chain
    ]

    contract_object_chain = listOfFuturesContracts(
        contract_object_chain_as_list)

    return contract_object_chain
    def contracts_with_price_data_for_instrument_code(self, instrument_code: str) -> listOfFuturesContracts:
        futures_instrument_with_ib_data = self.futures_instrument_data.get_futures_instrument_object_with_IB_data(instrument_code)
        list_of_date_str = self.ibconnection.broker_get_futures_contract_list(futures_instrument_with_ib_data)

        list_of_contracts = [futuresContract(instrument_code, date_str) for date_str in list_of_date_str]

        list_of_contracts = listOfFuturesContracts(list_of_contracts)

        return list_of_contracts
    def get_list_of_contracts(self) -> listOfFuturesContracts:
        ## doesn't remove zero positions
        list_of_contractids = self.get_list_of_contractids()
        list_of_contracts = [
            self._contract_given_contractid(contractid)
            for contractid in list_of_contractids
        ]
        list_of_contracts = listOfFuturesContracts(list_of_contracts)

        return list_of_contracts
Exemple #5
0
    def get_all_contract_objects_for_instrument_code(self, instrument_code):
        contract_dates_list = self.get_list_of_contract_dates_for_instrument_code(
            instrument_code)
        contract_objects_list = [
            self.get_contract_data(instrument_code, contract_date)
            for contract_date in contract_dates_list
        ]

        contract_objects_list = listOfFuturesContracts(contract_objects_list)

        return contract_objects_list
    def get_contracts_with_price_data(self) -> listOfFuturesContracts:
        """

        :return: list of contracts
        """

        list_of_contract_tuples = self._get_contract_tuples_with_price_data()
        list_of_contracts = [
            futuresContract(contract_tuple[0], contract_tuple[1])
            for contract_tuple in list_of_contract_tuples
        ]
        list_of_contracts = listOfFuturesContracts(list_of_contracts)

        return list_of_contracts
Exemple #7
0
def create_contract_object_chain_from_contract_date_chain(
    instrument_code: str, contract_date_chain: list
) -> listOfFuturesContracts:

    # We have a list of contract_date objects, need futureContracts
    # create a 'bare' instrument object
    instrument_object = futuresInstrument(instrument_code)

    contract_object_chain_as_list = [
        futuresContract(instrument_object, contract_date)
        for contract_date in contract_date_chain
    ]

    contract_object_chain = listOfFuturesContracts(contract_object_chain_as_list)

    return contract_object_chain
Exemple #8
0
    def contracts_with_price_data_for_instrument_code(self,
                                                      instrument_code: str,
                                                      allow_expired = True) \
            -> listOfFuturesContracts:

        futures_instrument_with_ib_data = self.futures_instrument_data.get_futures_instrument_object_with_IB_data(
            instrument_code)
        list_of_date_str = self.ib_client.broker_get_futures_contract_list(
            futures_instrument_with_ib_data, allow_expired=allow_expired)

        list_of_contracts = [
            futuresContract(instrument_code, date_str)
            for date_str in list_of_date_str
        ]

        list_of_contracts = listOfFuturesContracts(list_of_contracts)

        return list_of_contracts