Sample code for 30+ languages & platforms
Xojo Plugin

ETrade List Orders

See more ETrade Examples

Gets the order details for a selected brokerage account based on the search criteria provided.

Chilkat Xojo Plugin Downloads

Xojo Plugin
Dim success As Boolean
success = False

// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

Dim http As New Chilkat.Http

http.OAuth1 = True
http.OAuthVerifier = ""
http.OAuthConsumerKey = "ETRADE_CONSUMER_KEY"
http.OAuthConsumerSecret = "ETRADE_CONSUMER_SECRET"

// Load the access token previously obtained via the OAuth1 Authorization
Dim jsonToken As New Chilkat.JsonObject
success = jsonToken.LoadFile("qa_data/tokens/etrade.json")
If (success <> True) Then
    System.DebugLog("Failed to load OAuth1 token")
    Return
End If

http.OAuthToken = jsonToken.StringOf("oauth_token")
http.OAuthTokenSecret = jsonToken.StringOf("oauth_token_secret")

Dim sandboxUrl As String
sandboxUrl = "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/orders"
Dim liveUrl As String
liveUrl = "https://api.etrade.com/v1/accounts/{$accountIdKey}/orders"

success = http.SetUrlVar("accountIdKey","6_Dpy0rmuQ9cu9IbTfvF2A")

Dim resp As New Chilkat.HttpResponse
success = http.HttpNoBody("GET",sandboxUrl,resp)
If (success = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

// Make sure a successful response was received.
If (resp.StatusCode > 200) Then
    System.DebugLog(resp.StatusLine)
    System.DebugLog(resp.Header)
    System.DebugLog(resp.BodyStr)
    Return
End If

// Sample XML response:

// Use this online tool to generate parsing code from sample XML: 
// Generate Parsing Code from XML

// <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
// <OrdersResponse>
//     <marker>12345678999</marker>
//     <next>https://api.sit.etrade.com/accounts/E5Nd4LJBsEi_UyHm4Vio9g/orders?marker=12345678999</next>
//     <Order>
//         <orderId>479</orderId>
//         <details>https://api.etrade.com/accounts/E5Nd4LJBsEi_UyHm4Vio9g/orders/479</details>
//         <orderType>OPTN</orderType>
//         <OrderDetail>
//             <placedTime>123453456</placedTime>
//             <orderValue>123.0000</orderValue>
//             <status>OPEN</status>
//             <orderTerm>GOOD_FOR_DAY</orderTerm>
//             <priceType>LIMIT</priceType>
//             <limitPrice>1.5</limitPrice>
//             <stopPrice>0</stopPrice>
//             <marketSession>REGULAR</marketSession>
//             <allOrNone>false</allOrNone>
//             <Instrument>
//                 <Product>
//                     <symbol>RIMM</symbol>
//                     <securityType>OPTN</securityType>
//                     <callPut>CALL</callPut>
//                     <expiryYear>2012</expiryYear>
//                     <expiryMonth>3</expiryMonth>
//                     <expiryDay>9</expiryDay>
//                     <strikePrice>12</strikePrice>
//                 </Product>
//                 <symbolDescription>RESEARCH IN MOTION LTD COM</symbolDescription>
//                 <orderAction>BUY_OPEN</orderAction>
//                 <quantityType>QUANTITY</quantityType>
//                 <orderedQuantity>5</orderedQuantity>
//                 <filledQuantity>5</filledQuantity>
//                 <averageExecutionPrice>0</averageExecutionPrice>
//                 <estimatedCommission>9.99</estimatedCommission>
//                 <estimatedFees>0</estimatedFees>
//             </Instrument>
//             <netPrice>0</netPrice>
//             <netBid>0</netBid>
//             <netAsk>0</netAsk>
//             <gcd>0</gcd>
//             <ratio/>
//         </OrderDetail>
//     </Order>
//     <Order>
//         <orderId>477</orderId>
//         <details>https://api.etrade.com/accounts/E5Nd4LJBsEi_UyHm4Vio9g/orders/477</details>
//         <orderType>ONE_CANCELS_ALL</orderType>
//         <totalOrderValue>209.99</totalOrderValue>
//         <totalCommission>10.74</totalCommission>
//         <OrderDetail>
//             <orderNumber>1</orderNumber>
//             <placedTime>1331699203122</placedTime>
//             <orderValue>123.0000</orderValue>
//             <status>OPEN</status>
//             <orderTerm>GOOD_FOR_DAY</orderTerm>
//             <priceType>LIMIT</priceType>
//             <limitPrice>2</limitPrice>
//             <stopPrice>0</stopPrice>
//             <marketSession>REGULAR</marketSession>
//             <bracketedLimitPrice>2</bracketedLimitPrice>
//             <initialStopPrice>2</initialStopPrice>
//             <allOrNone>false</allOrNone>
//             <Instrument>
//                 <Product>
//                     <symbol>ETFC</symbol>
//                     <securityType>EQ</securityType>
//                 </Product>
//                 <symbolDescription>ETRADE Financials</symbolDescription>
//                 <orderAction>BUY</orderAction>
//                 <quantityType>QUANTITY</quantityType>
//                 <orderedQuantity>100</orderedQuantity>
//                 <filledQuantity>0</filledQuantity>
//                 <averageExecutionPrice>0</averageExecutionPrice>
//                 <estimatedCommission>9.99</estimatedCommission>
//                 <estimatedFees>0</estimatedFees>
//             </Instrument>
//             <netPrice>0</netPrice>
//             <netBid>0</netBid>
//             <netAsk>0</netAsk>
//             <gcd>0</gcd>
//             <ratio/>
//         </OrderDetail>
//         <OrderDetail>
//             <orderNumber>2</orderNumber>
//             <placedTime>1331699203</placedTime>
//             <orderValue>231.0000</orderValue>
//             <status>OPEN</status>
//             <orderTerm>GOOD_FOR_DAY</orderTerm>
//             <priceType>LIMIT</priceType>
//             <limitPrice>0.5</limitPrice>
//             <stopPrice>0</stopPrice>
//             <marketSession>REGULAR</marketSession>
//             <initialStopPrice>0.5</initialStopPrice>
//             <allOrNone>false</allOrNone>
//             <Instrument>
//                 <Product>
//                     <symbol>MON</symbol>
//                     <securityType>OPTN</securityType>
//                     <callPut>CALL</callPut>
//                     <expiryYear>2012</expiryYear>
//                     <expiryMonth>4</expiryMonth>
//                     <expiryDay>21</expiryDay>
//                     <strikePrice>85</strikePrice>
//                 </Product>
//                 <symbolDescription>MON Mar 9 '12 $85 Call</symbolDescription>
//                 <orderAction>BUY_OPEN</orderAction>
//                 <quantityType>QUANTITY</quantityType>
//                 <orderedQuantity>1</orderedQuantity>
//                 <filledQuantity>0</filledQuantity>
//                 <averageExecutionPrice>0</averageExecutionPrice>
//                 <estimatedCommission>9.99</estimatedCommission>
//                 <estimatedFees>0</estimatedFees>
//             </Instrument>
//             <netPrice>0</netPrice>
//             <netBid>0</netBid>
//             <netAsk>0</netAsk>
//             <gcd>0</gcd>
//             <ratio/>
//         </OrderDetail>
//     </Order>
//     <Order>
//         <orderId>475</orderId>
//         <details>https://api.etrade.com/accounts/E5Nd4LJBsEi_UyHm4Vio9g/orders/475</details>
//         <orderType>SPREADS</orderType>
//         <OrderDetail>
//             <placedTime>1331742953</placedTime>
//             <executedTime>1331742955432</executedTime>
//             <orderValue>4445.99</orderValue>
//             <status>EXECUTED</status>
//             <orderTerm>GOOD_FOR_DAY</orderTerm>
//             <priceType>NET_DEBIT</priceType>
//             <limitPrice>1.5</limitPrice>
//             <stopPrice>0</stopPrice>
//             <marketSession>REGULAR</marketSession>
//             <allOrNone>false</allOrNone>
//             <Instrument>
//                 <Product>
//                     <symbol>REE</symbol>
//                     <securityType>OPTN</securityType>
//                     <callPut>CALL</callPut>
//                     <expiryYear>2012</expiryYear>
//                     <expiryMonth>7</expiryMonth>
//                     <expiryDay>21</expiryDay>
//                     <strikePrice>7</strikePrice>
//                 </Product>
//                 <symbolDescription>REE Jul 21 '12 $7 Call</symbolDescription>
//                 <orderAction>BUY_OPEN</orderAction>
//                 <quantityType>QUANTITY</quantityType>
//                 <orderedQuantity>2</orderedQuantity>
//                 <filledQuantity>2</filledQuantity>
//                 <averageExecutionPrice>1.5</averageExecutionPrice>
//                 <estimatedCommission>7.24</estimatedCommission>
//                 <estimatedFees>0</estimatedFees>
//             </Instrument>
//             <Instrument>
//                 <Product>
//                     <symbol>REE</symbol>
//                     <securityType>OPTN</securityType>
//                     <callPut>PUT</callPut>
//                     <expiryYear>2013</expiryYear>
//                     <expiryMonth>1</expiryMonth>
//                     <expiryDay>19</expiryDay>
//                     <strikePrice>12.50</strikePrice>
//                 </Product>
//                 <symbolDescription>REE Jan 19 '13 $12.50 Put</symbolDescription>
//                 <orderAction>BUY_OPEN</orderAction>
//                 <quantityType>QUANTITY</quantityType>
//                 <orderedQuantity>2</orderedQuantity>
//                 <filledQuantity>2</filledQuantity>
//                 <averageExecutionPrice>1.5</averageExecutionPrice>
//                 <estimatedCommission>7.24</estimatedCommission>
//                 <estimatedFees>0</estimatedFees>
//             </Instrument>
//             <netPrice>0</netPrice>
//             <netBid>0</netBid>
//             <netAsk>0</netAsk>
//             <gcd>0</gcd>
//             <ratio/>
//         </OrderDetail>
//     </Order>
// </OrdersResponse>
// 

Dim xml As New Chilkat.Xml
success = xml.LoadXml(resp.BodyStr)
System.DebugLog(xml.GetXml())

Dim orderId As Int32
Dim details As String
Dim orderType As String
Dim j As Int32
Dim count_j As Int32
Dim placedTime As String
Dim orderValue As String
Dim status As String
Dim orderTerm As String
Dim priceType As String
Dim limitPrice As String
Dim stopPrice As Int32
Dim marketSession As String
Dim allOrNone As String
Dim k As Int32
Dim count_k As Int32
Dim symbol As String
Dim securityType As String
Dim callPut As String
Dim expiryYear As Int32
Dim expiryMonth As Int32
Dim expiryDay As Int32
Dim strikePrice As String
Dim symbolDescription As String
Dim orderAction As String
Dim quantityType As String
Dim orderedQuantity As Int32
Dim filledQuantity As Int32
Dim averageExecutionPrice As String
Dim estimatedCommission As String
Dim estimatedFees As Int32
Dim netPrice As Int32
Dim netBid As Int32
Dim netAsk As Int32
Dim gcd As Int32
Dim orderNumber As Int32
Dim bracketedLimitPrice As Int32
Dim initialStopPrice As String
Dim executedTime As String
Dim totalOrderValue As String
Dim totalCommission As String

Dim marker As String
marker = xml.GetChildContent("marker")
Dim next As String
next = xml.GetChildContent("next")
Dim i As Int32
i = 0
Dim count_i As Int32
count_i = xml.NumChildrenHavingTag("Order")
While i < count_i
    xml.I = i
    orderId = xml.GetChildIntValue("Order[i]|orderId")
    details = xml.GetChildContent("Order[i]|details")
    orderType = xml.GetChildContent("Order[i]|orderType")
    j = 0
    count_j = xml.NumChildrenHavingTag("Order[i]|OrderDetail")
    While j < count_j
        xml.J = j
        placedTime = xml.GetChildContent("Order[i]|OrderDetail[j]|placedTime")
        orderValue = xml.GetChildContent("Order[i]|OrderDetail[j]|orderValue")
        status = xml.GetChildContent("Order[i]|OrderDetail[j]|status")
        orderTerm = xml.GetChildContent("Order[i]|OrderDetail[j]|orderTerm")
        priceType = xml.GetChildContent("Order[i]|OrderDetail[j]|priceType")
        limitPrice = xml.GetChildContent("Order[i]|OrderDetail[j]|limitPrice")
        stopPrice = xml.GetChildIntValue("Order[i]|OrderDetail[j]|stopPrice")
        marketSession = xml.GetChildContent("Order[i]|OrderDetail[j]|marketSession")
        allOrNone = xml.GetChildContent("Order[i]|OrderDetail[j]|allOrNone")
        k = 0
        count_k = xml.NumChildrenHavingTag("Order[i]|OrderDetail[j]|Instrument")
        While k < count_k
            xml.K = k
            symbol = xml.GetChildContent("Order[i]|OrderDetail[j]|Instrument[k]|Product|symbol")
            securityType = xml.GetChildContent("Order[i]|OrderDetail[j]|Instrument[k]|Product|securityType")
            callPut = xml.GetChildContent("Order[i]|OrderDetail[j]|Instrument[k]|Product|callPut")
            expiryYear = xml.GetChildIntValue("Order[i]|OrderDetail[j]|Instrument[k]|Product|expiryYear")
            expiryMonth = xml.GetChildIntValue("Order[i]|OrderDetail[j]|Instrument[k]|Product|expiryMonth")
            expiryDay = xml.GetChildIntValue("Order[i]|OrderDetail[j]|Instrument[k]|Product|expiryDay")
            strikePrice = xml.GetChildContent("Order[i]|OrderDetail[j]|Instrument[k]|Product|strikePrice")
            symbolDescription = xml.GetChildContent("Order[i]|OrderDetail[j]|Instrument[k]|symbolDescription")
            orderAction = xml.GetChildContent("Order[i]|OrderDetail[j]|Instrument[k]|orderAction")
            quantityType = xml.GetChildContent("Order[i]|OrderDetail[j]|Instrument[k]|quantityType")
            orderedQuantity = xml.GetChildIntValue("Order[i]|OrderDetail[j]|Instrument[k]|orderedQuantity")
            filledQuantity = xml.GetChildIntValue("Order[i]|OrderDetail[j]|Instrument[k]|filledQuantity")
            averageExecutionPrice = xml.GetChildContent("Order[i]|OrderDetail[j]|Instrument[k]|averageExecutionPrice")
            estimatedCommission = xml.GetChildContent("Order[i]|OrderDetail[j]|Instrument[k]|estimatedCommission")
            estimatedFees = xml.GetChildIntValue("Order[i]|OrderDetail[j]|Instrument[k]|estimatedFees")
            k = k + 1
        Wend
        netPrice = xml.GetChildIntValue("Order[i]|OrderDetail[j]|netPrice")
        netBid = xml.GetChildIntValue("Order[i]|OrderDetail[j]|netBid")
        netAsk = xml.GetChildIntValue("Order[i]|OrderDetail[j]|netAsk")
        gcd = xml.GetChildIntValue("Order[i]|OrderDetail[j]|gcd")
        orderNumber = xml.GetChildIntValue("Order[i]|OrderDetail[j]|orderNumber")
        bracketedLimitPrice = xml.GetChildIntValue("Order[i]|OrderDetail[j]|bracketedLimitPrice")
        initialStopPrice = xml.GetChildContent("Order[i]|OrderDetail[j]|initialStopPrice")
        executedTime = xml.GetChildContent("Order[i]|OrderDetail[j]|executedTime")
        j = j + 1
    Wend
    totalOrderValue = xml.GetChildContent("Order[i]|totalOrderValue")
    totalCommission = xml.GetChildContent("Order[i]|totalCommission")
    i = i + 1
Wend

System.DebugLog("Success.")