Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) ETrade - List Orders (JSON)Shows how to retrieve a list of orders for an ETrade account, and to iterate through the response. See https://developer.etrade.com/ctnt/dev-portal/getDetail?contentUri=V0_Documentation-OrderAPI-ListOrders for more information.
LOCAL loHttp LOCAL loJsonToken LOCAL lnSuccess LOCAL loSbUrl LOCAL lcRespStr LOCAL lnStatusCode LOCAL loJson LOCAL i LOCAL lnNumOrders LOCAL loOrderList LOCAL lnSzLegDetails LOCAL j * This example assumes the Chilkat HTTP API to have been previously unlocked. * See Global Unlock Sample for sample code. loHttp = CreateObject('Chilkat_9_5_0.Http') loHttp.OAuth1 = 1 loHttp.OAuthVerifier = "" loHttp.OAuthConsumerKey = "ETRADE_CONSUMER_KEY" loHttp.OAuthConsumerSecret = "ETRADE_CONSUMER_SECRET" * Load the access token previously obtained via the OAuth1 3-Legged Authorization loJsonToken = CreateObject('Chilkat_9_5_0.JsonObject') lnSuccess = loJsonToken.LoadFile("qa_data/tokens/etrade.json") IF (lnSuccess <> 1) THEN ? "Failed to load OAuth1 token" RELEASE loHttp RELEASE loJsonToken CANCEL ENDIF loHttp.OAuthToken = loJsonToken.StringOf("oauth_token") loHttp.OAuthTokenSecret = loJsonToken.StringOf("oauth_token_secret") * Tell ETrade we want a JSON response: loHttp.Accept = "application/json" * The live URL is https://etws.etrade.com/order/rest/orderlist/{accountId} * We're using the sandbox URL.. loSbUrl = CreateObject('Chilkat_9_5_0.StringBuilder') loSbUrl.Append("https://etwssandbox.etrade.com/order/sandbox/rest/orderlist/") loSbUrl.Append("MY_ETRADE_ACCOUNT_ID") lcRespStr = loHttp.QuickGetStr(loSbUrl.GetAsString()) IF (loHttp.LastMethodSuccess <> 1) THEN ? loHttp.LastErrorText RELEASE loHttp RELEASE loJsonToken RELEASE loSbUrl CANCEL ENDIF * Examine the response status code. lnStatusCode = loHttp.LastStatus ? "Status Code = " + STR(lnStatusCode) * The response is JSON. A sample response is shown below. loJson = CreateObject('Chilkat_9_5_0.JsonObject') loJson.Load(lcRespStr) loJson.EmitCompact = 0 * If the status code was not 200, then it was an error.. IF (lnStatusCode <> 200) THEN ? loJson.Emit() ? "List orders failed." RELEASE loHttp RELEASE loJsonToken RELEASE loSbUrl RELEASE loJson CANCEL ENDIF * Iterate over the orders. i = 0 lnNumOrders = loJson.SizeOfArray("GetOrderListResponse.orderListResponse.orderDetails") loOrderList = loJson.ObjectOf("GetOrderListResponse.orderListResponse") DO WHILE i < lnNumOrders loOrderList.I = i ? "orderId: " + STR(loOrderList.IntOf("orderDetails[i].order.orderId")) ? "orderStatus: " + loOrderList.StringOf("orderDetails[i].order.orderStatus") IF (loOrderList.HasMember("orderDetails[i].order.legDetails.executedPrice") = 1) THEN ? "executedPrice: " + loOrderList.StringOf("orderDetails[i].order.legDetails.executedPrice") ENDIF * Is the legDetails an array? If so, then iterate over it.. lnSzLegDetails = loOrderList.SizeOfArray("orderDetails[i].order.legDetails") IF (lnSzLegDetails > 0) THEN j = 0 DO WHILE j < lnSzLegDetails loOrderList.J = j ? "-- legNumber: " + STR(loOrderList.IntOf("orderDetails[i].order.legDetails[j].legNumber")) ? " orderAction: " + loOrderList.StringOf("orderDetails[i].order.legDetails[j].orderAction") ? " orderedQuantity: " + STR(loOrderList.IntOf("orderDetails[i].order.legDetails[j].orderedQuantity")) j = j + 1 ENDDO ENDIF ? "----" i = i + 1 ENDDO RELEASE loOrderList ? "success." * Sample JSON response: * { * "GetOrderListResponse": { * "orderListResponse": { * "count": 11, * "marker": "", * "orderDetails": [ * { * "order": { * "orderId": 208, * "orderPlacedTime": 1267660551466, * "orderExecutedTime": 1267660558000, * "orderValue": 0, * "orderStatus": "EXECUTED", * "orderType": "EQ", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "MARKET", * "limitPrice": 0, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "CSCO" * }, * "symbolDescription": "CISCO SYS INC COM", * "orderAction": "SELL", * "orderedQuantity": 1, * "filledQuantity": 1, * "executedPrice": 24.84, * "estimatedCommission": 5, * "estimatedFees": 0 * }, * "allOrNone": false * } * }, * { * "order": { * "orderId": 205, * "orderPlacedTime": 1267099216308, * "orderValue": 4999994.21, * "orderStatus": "OPEN", * "orderType": "OPTN", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "LIMIT", * "limitPrice": 50000, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "MSQ", * "callPut": "CALL", * "expYear": 2010, * "expMonth": 4, * "expDay": 17, * "strikePrice": 26 * }, * "symbolDescription": "MSFT APR 26 Call", * "orderAction": "SELL_OPEN", * "orderedQuantity": 1, * "filledQuantity": 0, * "executedPrice": 0, * "estimatedCommission": 5.75, * "estimatedFees": 0 * }, * "allOrNone": false * } * }, * { * "order": { * "orderId": 200, * "orderPlacedTime": 1267095453128, * "orderValue": 210.79, * "orderStatus": "CANCEL_REQUESTED", * "orderType": "BUY_WRITES", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "NET_DEBIT", * "limitPrice": 2, * "stopPrice": 0, * "legDetails": [ * { * "legNumber": 1, * "symbolInfo": { * "symbol": "IBM" * }, * "symbolDescription": "INTERNATIONAL BUSINESS MACHS COM\n\t\t\t\t\t\t\t", * "orderAction": "BUY", * "orderedQuantity": 100, * "filledQuantity": 0, * "executedPrice": 0, * "estimatedCommission": 5, * "estimatedFees": 0 * }, * { * "legNumber": 2, * "symbolInfo": { * "symbol": "IBM", * * "callPut": "CALL", * "expYear": 2010, * "expMonth": 4, * "expDay": 17, * "strikePrice": 115 * }, * "symbolDescription": "IBM APR 115 Call", * "orderAction": "SELL_OPEN", * "orderedQuantity": 1, * "filledQuantity": 0, * "executedPrice": 0, * "estimatedCommission": 5.75, * "estimatedFees": 0 * } * ], * "allOrNone": false * } * }, * { * "order": { * "orderId": 192, * "orderPlacedTime": 1267089996809, * "orderValue": 10.79, * "orderStatus": "OPEN", * "orderType": "OPTN", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "LIMIT", * "limitPrice": 0.05, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "QQQ", * "callPut": "CALL", * "expYear": 2010, * "expMonth": 3, * "expDay": 20, * "strikePrice": 43 * }, * "symbolDescription": "QQQQ MAR 43 Call", * "orderAction": "BUY_OPEN", * "orderedQuantity": 1, * "filledQuantity": 0, * "executedPrice": 0, * "estimatedCommission": 5.75, * "estimatedFees": 0 * }, * "allOrNone": false * } * }, * { * "order": { * "orderId": 191, * "orderPlacedTime": 1267089623587, * "orderValue": 15, * "orderStatus": "OPEN", * "orderType": "EQ", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "LIMIT", * "limitPrice": 1, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "MSFT" * }, * "symbolDescription": "MICROSOFT CORP COM\n\t\t\t\t\t\t\t", * "orderAction": "BUY", * "orderedQuantity": 10, * "filledQuantity": 0, * "executedPrice": 0, * "estimatedCommission": 5, * "estimatedFees": 0 * }, * "allOrNone": false * } * }, * { * "order": { * "orderId": 190, * "orderPlacedTime": 1267089606681, * "orderValue": 15, * "orderStatus": "OPEN", * "orderType": "EQ", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "LIMIT", * "limitPrice": 1, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "MSFT" * }, * "symbolDescription": "MICROSOFT CORP COM\n\t\t\t\t\t\t\t", * "orderAction": "BUY", * "orderedQuantity": 10, * "filledQuantity": 0, * "executedPrice": 0, * "estimatedCommission": 5, * "estimatedFees": 0 * }, * "allOrNone": false * } * }, * { * "order": { * "orderId": 189, * "orderPlacedTime": 1267089589812, * "orderValue": 15, * "orderStatus": "OPEN", * "orderType": "EQ", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "LIMIT", * "limitPrice": 1, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "IBM" * }, * "symbolDescription": "INTERNATIONAL BUSINESS MACHS COM\n\t\t\t\t\t\t\t", * "orderAction": "BUY", * "orderedQuantity": 10, * "filledQuantity": 0, * "executedPrice": 0, * "estimatedCommission": 5, * "estimatedFees": 0 * }, * "allOrNone": false * } * }, * { * "order": { * "orderId": 188, * "orderPlacedTime": 1267089356773, * "orderValue": 132.59, * "orderStatus": "OPEN", * "orderType": "EQ", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "MARKET", * "limitPrice": 0, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "IBM" * }, * "symbolDescription": "INTERNATIONAL BUSINESS MACHS COM\n\t\t\t\t\t\t\t", * "orderAction": "BUY", * "orderedQuantity": 1, * "filledQuantity": 0, * "executedPrice": 0, * "estimatedCommission": 5, * "estimatedFees": 0 * }, * "allOrNone": false * } * }, * { * "order": { * "orderId": 187, * "orderPlacedTime": 1266904795303, * "orderValue": 10.79, * "orderStatus": "OPEN", * "orderType": "OPTN", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "LIMIT", * "limitPrice": 0.05, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "MSQ", * "callPut": "CALL", * "expYear": 2010, * "expMonth": 4, * "expDay": 17, * "strikePrice": 27 * }, * "symbolDescription": "MSFT APR 27 Call", * "orderAction": "BUY_OPEN", * "orderedQuantity": 1, * "filledQuantity": 0, * "executedPrice": 0, * "estimatedCommission": 5.75, * "estimatedFees": 0 * }, * "allOrNone": false * } * }, * { * "order": { * "orderId": 170, * "orderPlacedTime": 1266584434221, * "orderValue": 391.944, * "orderStatus": "OPEN", * "orderType": "OPTN", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "LIMIT", * "limitPrice": 1, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "IBM", * "callPut": "CALL", * "expYear": 2010, * "expMonth": 2, * "expDay": 20, * "strikePrice": 130 * }, * "symbolDescription": "IBM FEB 130 Call", * "orderAction": "SELL_OPEN", * "orderedQuantity": 4, * "filledQuantity": 0, * "executedPrice": 0, * "estimatedCommission": 8, * "estimatedFees": 0 * }, * "allOrNone": false * } * }, * { * "order": { * "orderId": 166, * "orderPlacedTime": 1266583451241, * "orderValue": 4020.28, * "orderStatus": "OPEN", * "orderType": "OPTN", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "LIMIT", * "limitPrice": 2, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "IBM", * "callPut": "CALL", * "expYear": 2010, * "expMonth": 2, * "expDay": 20, * "strikePrice": 130 * }, * "symbolDescription": "IBM FEB 130 Call", * "orderAction": "BUY_CLOSE", * "orderedQuantity": 20, * "filledQuantity": 10, * "executedPrice": 2, * "estimatedCommission": 20, * "estimatedFees": 0 * }, * "allOrNone": false * } * }, * { * "order": { * "orderId": 162, * "orderPlacedTime": 1266581179588, * "orderValue": 4020.28, * "orderStatus": "OPEN", * "orderType": "OPTN", * "orderTerm": "GOOD_FOR_DAY", * "priceType": "LIMIT", * "limitPrice": 2, * "stopPrice": 0, * "legDetails": { * "legNumber": 1, * "symbolInfo": { * "symbol": "GOP", * "callPut": "CALL", * "expYear": 2010, * "expMonth": 3, * "expDay": 20, * "strikePrice": 520 * }, * "symbolDescription": "GOOG MAR 520 Call", * "orderAction": "BUY_CLOSE", * "orderedQuantity": 20, * "filledQuantity": 10, * "executedPrice": 2, * "estimatedCommission": 20, * "estimatedFees": 0 * }, * "allOrNone": false * } * } * ] * } * } * } RELEASE loHttp RELEASE loJsonToken RELEASE loSbUrl RELEASE loJson |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.