Beispiel #1
0
    def get_list_of_order_ids_for_instrument_and_contract_str(
            self, instrument_code: str, contract_str: str) -> list:
        order_id_list = self.get_list_of_order_ids()
        key_list = [
            self.mongo_data.get_result_dict_for_key(order_id)['key']
            for order_id in order_id_list
        ]
        contract_strategies = [
            futuresContractStrategy.from_key(key) for key in key_list
        ]

        def _contains_both(futures_contract_strategy: futuresContractStrategy,
                           instrument_code: str, contract_str: str):
            list_of_date_str = futures_contract_strategy.contract_date.list_of_date_str
            if futures_contract_strategy.instrument_code == instrument_code and\
                contract_str in list_of_date_str:
                return True
            else:
                return False

        order_ids = [
            orderid for orderid, futures_contract_strategy in zip(
                order_id_list, contract_strategies)
            if _contains_both(futures_contract_strategy,
                              instrument_code=instrument_code,
                              contract_str=contract_str)
        ]

        return order_ids
Beispiel #2
0
def split_contract_order_args(
        args: tuple, fill: tradeQuantity) -> contractOrderKeyArguments:
    if len(args) == 2:
        tradeable_object = futuresContractStrategy.from_key(args[0])
        trade = args[1]
    elif len(args) == 4:
        strategy = args[0]
        instrument = args[1]
        contract_id = args[2]
        trade = args[3]
        tradeable_object = futuresContractStrategy(strategy, instrument,
                                                   contract_id)
    else:
        raise Exception(
            "contractOrder(strategy, instrument, contractid, trade,  **kwargs) or ('strategy/instrument/contract_order_id', trade, **kwargs) "
        )

    key_arguments = contractOrderKeyArguments(
        tradeable_object=tradeable_object, trade=trade, fill=fill)

    return key_arguments