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
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
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
}, { '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)
'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!!'