question

Upvotes
Accepted
41 1 2 8

COMPLEXORDER - Invalid Exchange Error on REDI API

I'm trying to send the diagonal options order below via the API but get Invalid Exchange error. NOTE:-

1. I have successfully entered the exact same order via the UI including destination and account.

1630597322168.png

2. I can successfully enter a single options order via API using the same account and exchange.

Please advise solution - thank you!

    Dim hOrder As New COMPLEXORDER
    ' Complex options order header
    hOrder.Strategy = "Diagonal"
    hOrder.SetSymbol 0, "VICI"
    hOrder.SetExchange 0, "DEM2 DMA"
    hOrder.SetPriceType 0, "Limit"
    hOrder.SetTIF 0, "Day"
    hOrder.SetQuantity 0, 1
    hOrder.SetAccount 0, "3FORGEDD"
    
    ' Long Put
    hOrder.SetSide 1, "Buy"
    hOrder.SetPosition 1, "Open"
    hOrder.SetOptType 1, "Put"
    hOrder.SetMonth 1, "Jan '23"
    hOrder.SetStrike 1, "30.00"
    hOrder.SetAccount 1, "3FORGEDD"
    
    ' Short Put
    hOrder.AddOptionLeg
    hOrder.SetSide 2, "Sell"
    hOrder.SetPosition 2, "Open"
    hOrder.SetOptType 2, "Put"
    hOrder.SetMonth 2, "Dec '21"
    hOrder.SetStrike 2, "25.00"
    hOrder.SetAccount 2, "3FORGEDD"
    
    hOrder.SetPrice 0, 4
        
    Dim errStr As Variant
    Dim rtnVal As Variant
    ' Send order object to REDI EMS
    rtnVal = hOrder.Submit(errStr)




redi-apiorder-entry
1630597322168.png (5.2 KiB)
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.

Upvotes
Accepted
276 3 0 2

Hi @DDALY ,

Can you please try setting the exchange later? (see below example)

-Brian

Sub SendDiagonal2()

  Dim myerr As Variant
  Dim rtnVal As Variant
 
  Dim hOrder As New COMPLEXORDER
  
  ' Complex options order header
  hOrder.Strategy = "Diagonal"
  hOrder.SetSymbol 0, "AAPL"
  hOrder.SetExchange 0, "DEM2 DMA"
  hOrder.SetQuantity 0, 1
  hOrder.SetPriceType 0, "Market"
  hOrder.SetTIF 0, "Day"
  hOrder.SetAccount 0, "DEMO2"

  ' Leg 1 of vertical spread
  hOrder.SetSide 1, "Buy"
  hOrder.SetPosition 1, "Open"
  hOrder.SetOptType 1, "Call"
  hOrder.SetMonth 1, "Dec '21"
  hOrder.SetStrike 1, "195.00"

  ' Leg 2 of vertical spread
  hOrder.AddOptionLeg
  hOrder.SetSide 2, "Sell"
  hOrder.SetPosition 2, "Open"
  hOrder.SetOptType 2, "Call"
  hOrder.SetMonth 2, "Nov '21"
  hOrder.SetStrike 2, "200.00"
  
  hOrder.SetExchange 0, "DEM2 DMA"
   hOrder.SetPriceType 0, "Market"

  rtnVal = hOrder.Submit(myerr)

  If Not rtnVal Then
    If myerr <> "" Then
      MsgBox myerr
    Else
      MsgBox "Failed - Please Contact REDI Support."
    End If
  Else
    MsgBox "Submitted"
  End If
  
End Sub
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.

Upvotes
41 1 2 8

@brian.mullane, That worked perfectly! Thanks a lot, Dermot

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.

Upvotes
41 1 2 8

@brian.mullane, Just doing some more testing on above and I've noticed when I increase the quantity it still lands in REDI as 1 lot.. very strange. Can you check if you get the same result? Thanks, Dermot

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.

Upvotes
28.4k 30 11 15

Hello @DDALY ,

Appears to apply for me:

 hOrder.SetQuantity 0, 5

Results in

redidiag.gif

Try to restart and retest, where you can be sure if it was the same order?


redidiag.gif (56.4 KiB)
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.

Upvotes
41 1 2 8

@zoya.farberov, I moved the SetQuantity to just before the Submit and now working fine. Thank 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.