示例#1
0
def SendNewQuote(submitter, attrs):
    global responses, soid
    quote_id = uuid.uuid4()
    SetQuoteId(attrs, quote_id)
    msg = dict_to_protobuf(attrs, NewQuote)
    print '\nSent QuoteCancel {}\n'.format(quote_id, )  # submitter.send_topic)
    # print '\nSent NewQuote {} on {}\n'.format(quote_id, )  # submitter.send_topic)
    print msg
    submitter.send(msg)

    #Wait for a response
    try:
        msgs = submitter.wait_for_response(Header.MSG_QUOTE_RESPONSE,
                                           wait_topic,
                                           timeout=60,
                                           exists=True)
        print '\nQuoteResponse for new quote received:\n'
        responses = responses + submitter.order_responses[quote_id]
        soid = submitter.order_responses[quote_id][
            -1].order_response.secondary_order_id
        return True

    except:
        print 'Did not receive a new QuoteResponse from the OC, make sure its up!!'
        return False
示例#2
0
def SendQuoteReplace(submitter, attrs):
    global responses, soid
    quote_id = GetQuoteId(attrs)

    buy_qty = raw_input("Buy Qty=> ")
    sell_qty = raw_input("Sell Qty=> ")
    buy_prc = raw_input("Buy Price=> ")
    sell_prc = raw_input("Sell Price=> ")

    quote_side_1=[
               {'qty':int(buy_qty),'side':1,'price':int(buy_prc)}, #orginal=32860
               {'qty':int(sell_qty),'side':2,'price':int(sell_prc)}  #orginal=32870
                 ]
    attrs = {
                 'instrument_id':2057683400770929841, #MCHZ7
                 'quote_side':quote_side_1,
                 'ord_type':enums.ORD_TYPE_LIMIT,
                 'time_in_force':enums.TIME_IN_FORCE_DAY,
                 'market_id':enums.TT_MARKET_ID_HKEX,
                 'connection_id': connection_id,
                 'user_id': user_id,
                 'account_id': account_id,
                 'account':account,
                 'quote_id':quote_id,
                 'source':enums.SOURCE_PYRATE,
                 'appl_id':PYRATE_APPLICATION_ID,
                 'aggressor_indicator':True,
                 'secondary_order_id': soid
            }
# Submit a replace quote
    msg = dict_to_protobuf(attrs, QuoteReplace)
    print '\nSent QuoteCancel {}\n'.format(quote_id, )  # submitter.send_topic)
#    print '\nSent QuoteReplace {} on {}\n'.format(quote_id, )  # submitter.send_topic)
    print msg
    submitter.send(msg)

# Wait for a response
    try:
        msgs = submitter.wait_for_response(Header.MSG_QUOTE_RESPONSE, wait_topic)
        print '\nQuoteResponse for QuoteReplace received:\n'
        responses = responses + submitter.order_responses[quote_id]

        soid = submitter.order_responses[quote_id][-1].order_response.secondary_order_id
        print MessageToString(submitter.order_responses[quote_id][-1].order_response)
        
        return True

    except:
        print 'Did not receive a QuoteReplace QuoteResponse from the OC, make sure its up!!'
        return False
示例#3
0
def SendQuoteCancel(submitter, attrs):
    global responses
    quote_id = GetQuoteId(attrs)
    msg = dict_to_protobuf(attrs, QuoteCancel)
    print '\nSent QuoteCancel {}\n'.format(quote_id, )  # submitter.send_topic)
    # print '\nSent QuoteCancel {} on {}\n'.format(quote_id, )  # submitter.send_topic)
    submitter.send(msg)

# Wait for a response
    try:
        msgs = submitter.wait_for_response(Header.MSG_QUOTE_RESPONSE, wait_topic)
        print '\nQuoteResponse for cancel received:\n'
        responses = responses + submitter.order_responses[quote_id]
        return True

    except:
        print 'Did not receive a canceled QuoteResponse from the OC, make sure its up!!'
        return False
示例#4
0
                },
                {
                    'party_id': "C",
                    'party_role': enums.PARTY_ROLE_ACCOUNT_CODE
                },
                {
                    'party_id': "ML3",
                    'party_role': enums.PARTY_ROLE_ORDER_ENTRY_OPERATOR_ID
                },
                {
                    'party_id': "9",
                    'party_role': enums.PARTY_ROLE_CLEARING_INSTRUCTION
                },
                {
                    'party_id': "TTG",
                    'party_role': enums.PARTY_ROLE_CONTRA_TRADER
                },
            ]
        }]
    }],
    'trans_booked_time':
    1438800308000000000
}
msg = dict_to_protobuf(attrs, NewTradeCapture)

# Submit a new order
submitter = OCOrderSender(account_id, connection_id)
submitter.send(msg)
print '\nSent NewTradeCaptureReport {} on {}\n'.format(report_id,
                                                       submitter.send_topic)
print msg
attrs = {
    'instrument_id': 12932967830139539957,
    'quote_side': quote_side_1,
    'market_id': enums.TT_MARKET_ID_HKEX,
    'connection_id': connection_id,
    'user_id': user_id,
    'account_id': account_id,
    'account': account,
    'quote_id': quote_id,
    'source': enums.SOURCE_PYRATE,
    'appl_id': PYRATE_APPLICATION_ID,
    'ord_type': enums.ORD_TYPE_LIMIT,
    'time_in_force': enums.TIME_IN_FORCE_DAY,
    'sender_location_id': "HKEX",
}
msg = dict_to_protobuf(attrs, NewQuote)

# Submit a new quote
submitter = OCOrderSender(account_id, connection_id)
submitter.send(msg)
print '\nSent NewQuote\n'
# print '\nSent NewQuote {} on {}\n'.format(quote_id, submitter.send_topic)
print msg

# Wait for a response
try:
    wait_topic = 'OR.OC.{}'.format(connection_id)
    msgs = submitter.wait_for_response(Header.MSG_QUOTE_RESPONSE, wait_topic)
    print '\nQuoteResponse(s) received:\n'
    print MessageToString(
        submitter.order_responses[quote_id][-1].order_response)
示例#6
0
        'instrument_id': 4947896210186472147,
        'price': 489,
        'side': enums.SIDE_SELL,
        'ord_type': enums.ORD_TYPE_LIMIT,
        'order_qty': 500,
        'time_in_force': enums.TIME_IN_FORCE_IMMEDIATE_OR_CANCEL,
        'market_id': enums.TT_MARKET_ID_ICE,
        'connection_id': connection_id,
        'user_id': user_id,
        'account_id': account_id,
        'account': account,
        'source': enums.SOURCE_PYRATE,
        'appl_id': PYRATE_APPLICATION_ID,
    }],
}
msg = dict_to_protobuf(attrs, NewOrderCross)

# Submit a new order
submitter = OCOrderSender(account_id, connection_id)
submitter.send(msg)
print '\nSent NewOrderCross {} on {}\n'.format(cross_id, submitter.send_topic)
print msg

# Wait for a response
try:
    wait_topic = 'OC.{}'.format(connection_id)
    msgs = submitter.wait_for_response(Header.MSG_EXECUTION_REPORT,
                                       [wait_topic])
    print '\nExecutionReport received:\n'
    print MessageToString(
        submitter.order_responses[order_id][-1].order_response)
attrs = {
        'manual_order_indicator':1,
        'instrument_id':15953546965709579576,
#        'price':10000,
#        'order_qty':1,
        'side':enums.SIDE_BUY,
        'market_id':enums.TT_MARKET_ID_HKEX_DEV,
        'connection_id': connection_id,
        'user_id': user_id,
        'account_id': account_id,
        'request_id':request_id,
        'source':enums.SOURCE_PYRATE,
        'appl_id':PYRATE_APPLICATION_ID,
#        "user_parameters": user_parameters
        }
msg = dict_to_protobuf(attrs, QuoteRequest)

# Submit a new order
submitter = OCOrderSender(account_id, connection_id)
submitter.send(msg)
# print '\nSent QuoteRequest {} on {}\n'.format(request_id, submitter.send_topic)
print msg

# Wait for a response
try:
    wait_topic = 'OR.OC.{}'.format(connection_id)
    msgs = submitter.wait_for_response(Header.MSG_QUOTE_REQUEST_RESPONSE, request_id, wait_topic)
    print '\nQuoteRequestResponse received:\n'
    print MessageToString(submitter.order_responses[request_id][-1].order_response)
except:
    print 'Did not receive a QuoteRequestResponse from the OC, make sure its up!!'