示例#1
0
def parse_orders_receipt(order):
    return {
        'order_id':
        order.get('OrderHandle'),
        'side':
        Polarity(int(order.get('Polarity'))).name
        if order.get('Polarity') else None,
        'size_remaining':
        floatify(order.get('UnmatchedStake')),
        'matched_price':
        floatify(order.get('MatchedPrice')),
        'matched_size':
        floatify(order.get('MatchedStake')),
        'matched_lay_size':
        floatify(order.get('MatchedAgainstStake')),
        'sent_time':
        make_tz_naive(order.get('IssuedAt')),
        'status':
        OrderStatus(int(order.get('Status'))) if order.get('Status') else None,
        'runner_sequence_number':
        order.get('SequenceNumber'),
        'runner_id':
        order.get('SelectionId'),
        'customer_reference':
        order.get('PunterReferenceNumber'),
        'return_code':
        order.get('ReturnCode'),
    }
示例#2
0
def parse_orders(order):
    return {
        'order_id':
        order.get('Id'),
        'commission_information': {
            'gross_settlement_amount':
            floatify(
                order.get('OrderCommissionInformation',
                          {}).get('GrossSettlementAmount')) if order.get(
                              'OrderCommissionInformation',
                              {}).get('GrossSettlementAmount') else None,
            'commission':
            floatify(
                order.get('OrderCommissionInformation',
                          {}).get('OrderCommission')) if order.get(
                              'OrderCommissionInformation',
                              {}).get('OrderCommission') else None,
        } if order.get('OrderCommissionInformation') else {},
        'runner_id':
        order.get('SelectionId'),
        'market_id':
        order.get('MarketId'),
        'sequence_number':
        order.get('SequenceNumber'),
        'status':
        OrderStatus(int(order.get('Status'))).name
        if order.get('Status') else None,
        'side':
        Polarity(int(order.get('Polarity'))).name
        if order.get('Polarity') else None,
        'sent_time':
        make_tz_naive(order.get('IssuedAt')),
        'price':
        floatify(order.get('RequestedPrice')),
        'remaining_size':
        floatify(order.get('UnmatchedStake')),
        'average_price':
        floatify(order.get('AveragePrice')),
        'matched_price':
        floatify(order.get('MatchedPrice')),
        'matched_size':
        floatify(order.get('MatchedStake')),
        'matched_lay_size':
        floatify(order.get('MatchedAgainstStake')),
        'back_take_size':
        floatify(order.get('TotalForSideTakeStake ')),
        'back_make_size':
        floatify(order.get('TotalForSideMakeStake')),
        'customer_reference':
        order.get('PunterReferenceNumber'),
        'withdrawal_sequence_number':
        order.get('ExpectedWithdrawalSequenceNumber'),
        'runner_reset_count':
        order.get('ExpectedSelectionResetCount'),
        'in_play':
        order.get('IsCurrentlyInRunning'),
        'order_fill_type':
        OrderKillType(int(order.get('OrderFillType'))).name
        if order.get('OrderFillType') else None,
        'fill_or_kill_threshold':
        order.get('FillOrKillThreshold'),
        'cancel_on_in_running':
        order.get('CancelOnInRunning'),
        'cancel_if_selection_reset':
        order.get('CancelIfSelectionReset'),
        'commission_base_rate':
        floatify(order.get('PunterCommissionBasis')),
        'commission_take_rate':
        floatify(order.get('TakeCommissionRate')),
        'commission_make_rate':
        floatify(order.get('MakeCommissionRate')),
    }
示例#3
0
def parse_single_order(order):
    return {
        'order_id':
        order.get('Id'),
        'settlement_information': {
            'gross_settlement_amount':
            floatify(
                order.get('OrderCommissionInformation',
                          {}).get('GrossSettlementAmount'))
            if order.get('OrderCommissionInformation') else None,
            'order_commission':
            floatify(
                order.get('OrderCommissionInformation',
                          {}).get('OrderCommission'))
            if order.get('OrderCommissionInformation') else None,
            'market_commission':
            floatify(
                order.get('OrderCommissionInformation',
                          {}).get('MarketCommission'))
            if order.get('OrderCommissionInformation') else None,
            'settlement_time':
            make_tz_naive(
                order.get('OrderCommissionInformation',
                          {}).get('MarketSettledDate'))
            if order.get('OrderCommissionInformation') else None,
        },
        'audit_log': [{
            'timestamp':
            make_tz_naive(log.get('Time')),
            'matched_size':
            floatify(
                log.get('MatchedOrderInformation', {}).get('MatchedStake'))
            if log.get('MatchedOrderInformation') else None,
            'matched_lay_size':
            floatify(
                log.get('MatchedOrderInformation',
                        {}).get('MatchedAgainstStake'))
            if log.get('MatchedOrderInformation') else None,
            'matched_price':
            floatify(
                log.get('MatchedOrderInformation', {}).get('PriceMatched'))
            if log.get('MatchedOrderInformation') else None,
            'matched_order_id':
            log.get('MatchedOrderInformation', {}).get('MatchedOrderID')
            if log.get('MatchedOrderInformation') else None,
            'maker':
            log.get('MatchedOrderInformation', {}).get('WasMake')
            if log.get('MatchedOrderInformation') else None,
            'order_commission':
            floatify(
                log.get('CommissionInformation', {}).get('OrderCommission')),
            'gross_settlement_amount':
            floatify(
                log.get('CommissionInformation',
                        {}).get('GrossSettlementAmount')),
            'order_action':
            OrderActionType(int(log.get('OrderActionType'))).name,
            'requested_size':
            floatify(log.get('RequestedStake')),
            'total_size':
            floatify(log.get('TotalStake')),
            'total_lay_size':
            floatify(log.get('TotalAgainstStake')),
            'requested_price':
            floatify(log.get('RequestedPrice')),
            'average_price':
            floatify(log.get('AveragePrice')),
        } for log in order.get('AuditLog', {}).get('AuditLog', [])],
        'runner_id':
        order.get('SelectionId'),
        'market_id':
        order.get('MarketId'),
        'status':
        OrderStatus(int(order.get('OrderStatus'))).name
        if order.get('OrderStatus') else None,
        'in_play':
        order.get('IsCurrentlyInRunning'),
        'market_status':
        MarketStatus(int(order.get('MarketStatus'))).name
        if order.get('MarketStatus') else None,
        'sent_time':
        make_tz_naive(order.get('IssuedAt')),
        'last_update_time':
        make_tz_naive(order.get('LastChangedAt')),
        'expiry_time':
        make_tz_naive(order.get('ExpiresAt')),
        'valid_from':
        make_tz_naive(order.get('ValidFrom')),
        'order_fill_type':
        OrderKillType(int(order.get('OrderFillType'))).name
        if order.get('OrderFillType') else None,
        'fill_or_kill_threshold':
        floatify(order.get('FillOrKillThreshold')),
        'requested_size':
        floatify(order.get('RequestedStake')),
        'requested_price':
        floatify(order.get('RequestedPrice')),
        'expected_selection_reset_count':
        order.get('ExpectedSelectionResetCount'),
        'total_size':
        floatify(order.get('TotalStake')),
        'remaining_size':
        floatify(order.get('UnmatchedStake')),
        'matched_size':
        floatify(order.get('MatchedStake')),
        'matched_lay_stake':
        floatify(order.get('MatchedAgainstStake')),
        'matched_price':
        floatify(order.get('MatchedPrice')),
        'average_price':
        floatify(order.get('AveragePrice')),
        'matching_time':
        make_tz_naive(order.get('MatchingTimeStamp')),
        'side':
        Polarity(int(order.get('Polarity')))
        if order.get('Polarity') else None,
        'withdrawal_reprice_option':
        order.get('WithdrawalRepriceOption'),
        'cancel_on_in_running':
        order.get('CancelOnInRunning'),
        'cancel_if_selection_reset':
        order.get('CancelIfSelectionReset'),
        'sequence_number':
        order.get('SequenceNumber'),
        'customer_reference':
        order.get('PunterReferenceNumber'),
        'market_type':
        order.get('MarketType'),
        'expected_withdrawal_sequence_number':
        order.get('ExpectedWithdrawalSequenceNumber'),
    }