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)




Best Answer

  • 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

Answers