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”

Tagged:

Best Answer

  • zoya faberov
    zoya faberov ✭✭✭✭✭
    Answer ✓

    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?