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
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
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
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
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