question

Upvotes
Accepted
1 0 0 1

Invalid Exchange on REDI API

I implemented the same thing as the document in section 3.1, via Python code


And I changed the code as

import pythoncom
import win32com.client
# Equity Order Entry Example
o = win32com.client.Dispatch("Redi.ORDER")#,clsctx=pythoncom.CLSCTX_LOCAL_SERVER,userName="DEMO")
# print("hello")
o.Side = 'Buy'#'SBUX'#
o.symbol = 'LCOZ0'
o.Exchange = 'DEMO DMA'#'IFCM'
o.Quantity = '1'
o.PriceType = 'Limit' #'Market' no need to place the Price
o.Price = '41.43'
o.TIF = 'Day'
o.Account = 'DEMO'
o.Ticket = 'Direct'
# Prepare a variable which can handle returned values from submit method of the order
msg = win32com.client.VARIANT(win32com.client.pythoncom.VT_BYREF | win32com.client.pythoncom.VT_VARIANT, None)
# Send an options order
result = o.Submit(msg)
print(result) # ‘True’ if order submission was successful
print(msg.value) # message from sumbit



after I run the code, it’s return message of “invalid exchange”

redi-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

Upvotes
Accepted
31.8k 37 11 19

Hello @Lilian.Chan,

I suspect that the error message in this case may be slightly misleading. I expect that it's not that Exchange "DEMO DMA" is invalid, I know it is a valid Destination, but that it may not match to what you populate into Order as Account info and to the User logged into REDIPlus desktop.

The validation order on a population of an Order object is:

Logged in user -> Account valid for user -> Exchange valid for Account-> PriceType is supported by Exchange

Please verify via REDIPlus desktop that the user you are logged in as has Account named "DEMO" and when you select Account, there is Destination named "DEMO DMA" available to you?

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.