def get_executions(args):
    """Gets all (filtered) executions from last 24hrs """
    client = connection.get_client()
    if client is None:
        return g.error_resp[-2]
    elif client.isConnected() is False:
        return g.error_resp[-1]

    g.executions_resp = dict(execDetailsEnd=False,
                             execDetails=[],
                             commissionReport=dict())
    log.debug('Requesting executions for filter {}'.format(args))
    filter = ExecutionFilter()
    for attr in dir(filter):
        if attr[:2] == 'm_' and attr[2:] in args:
            setattr(filter, attr, args[attr[2:]])
    log.debug('Filter: {}'.format(filter.__dict__))
    filter.m_clientId = 0
    client.reqExecutions(1, filter)
    timeout = g.timeout / 2
    while g.executions_resp['execDetailsEnd'] is False and client.isConnected(
    ) is True and timeout > 0:
        # log.debug("Waiting for responses on client {}...".format(client.clientId))
        time.sleep(.25)
        timeout -= 1
        log.debug('Current executions {}'.format(g.executions_resp))
    connection.close_client(client)
    return g.executions_resp
示例#2
0
def exec_filter(client_id):
    contract = make_contract('NVDA')
    filt = ExecutionFilter()
    filt.m_clientId = client_id
    filt.m_symbol = contract.m_symbol
    filt.m_secType = contract.m_secType
    filt.m_exchange = contract.m_exchange
    return filt
示例#3
0
def exec_filter(client_id):
    contract = make_contract('NVDA')
    filt = ExecutionFilter()
    filt.m_clientId = client_id
    filt.m_symbol = contract.m_symbol
    filt.m_secType = contract.m_secType
    filt.m_exchange = contract.m_exchange
    return filt
示例#4
0
 def exec_filter(self, client_id, accountName, contract):
     filt = ExecutionFilter()
     filt.m_clientId = client_id
     filt.m_acctCode = accountName
     #filt.m_time = "20160122-00:00:00"
     filt.m_symbol = contract.m_symbol
     filt.m_secType = contract.m_secType
     filt.m_exchange = contract.m_exchange
     return filt
示例#5
0
 def exec_filter(self, client_id, accountName, contract):
     filt = ExecutionFilter()
     filt.m_clientId = client_id
     filt.m_acctCode = accountName
     #filt.m_time = "20160122-00:00:00"
     filt.m_symbol = contract.m_symbol
     filt.m_secType = contract.m_secType
     filt.m_exchange = contract.m_exchange
     return filt    
示例#6
0
    def _download_account_details(self):
        exec_filter = ExecutionFilter()
        exec_filter.m_clientId = self.client_id
        self.reqExecutions(self.next_request_id, exec_filter)

        self.reqManagedAccts()
        while self.managed_accounts is None:
            sleep(_poll_frequency)

        for account in self.managed_accounts:
            self.reqAccountUpdates(subscribe=True, acctCode=account)
        while self.accounts_download_complete is False:
            sleep(_poll_frequency)
示例#7
0
    def _download_account_details(self):
        exec_filter = ExecutionFilter()
        exec_filter.m_clientId = self.client_id
        self.reqExecutions(self.next_request_id, exec_filter)

        self.reqManagedAccts()
        while self.managed_accounts is None:
            sleep(_poll_frequency)

        for account in self.managed_accounts:
            self.reqAccountUpdates(subscribe=True, acctCode=account)
        while self.accounts_download_complete is False:
            sleep(_poll_frequency)