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
(Swift 2) 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.
func chilkatTest() { // This example assumes the Chilkat HTTP API to have been previously unlocked. // See Global Unlock Sample for sample code. let http = CkoHttp() http.OAuth1 = true http.OAuthVerifier = "" http.OAuthConsumerKey = "ETRADE_CONSUMER_KEY" http.OAuthConsumerSecret = "ETRADE_CONSUMER_SECRET" // Load the access token previously obtained via the OAuth1 3-Legged Authorization let jsonToken = CkoJsonObject() var success: Bool = jsonToken.LoadFile("qa_data/tokens/etrade.json") if success != true { print("Failed to load OAuth1 token") return } http.OAuthToken = jsonToken.StringOf("oauth_token") http.OAuthTokenSecret = jsonToken.StringOf("oauth_token_secret") // Tell ETrade we want a JSON response: http.Accept = "application/json" // The live URL is https://etws.etrade.com/order/rest/orderlist/{accountId} // We're using the sandbox URL.. let sbUrl = CkoStringBuilder() sbUrl.Append("https://etwssandbox.etrade.com/order/sandbox/rest/orderlist/") sbUrl.Append("MY_ETRADE_ACCOUNT_ID") var respStr: String? = http.QuickGetStr(sbUrl.GetAsString()) if http.LastMethodSuccess != true { print("\(http.LastErrorText)") return } // Examine the response status code. var statusCode: Int = http.LastStatus.intValue print("Status Code = \(statusCode)") // The response is JSON. A sample response is shown below. let json = CkoJsonObject() json.Load(respStr) json.EmitCompact = false // If the status code was not 200, then it was an error.. if statusCode != 200 { print("\(json.Emit())") print("List orders failed.") return } // Iterate over the orders. var i: Int = 0 var numOrders: Int = json.SizeOfArray("GetOrderListResponse.orderListResponse.orderDetails").intValue var orderList: CkoJsonObject? = json.ObjectOf("GetOrderListResponse.orderListResponse") while i < numOrders { orderList.I = i print("orderId: \(orderList!.IntOf("orderDetails[i].order.orderId").intValue)") print("orderStatus: \(orderList!.StringOf("orderDetails[i].order.orderStatus"))") if orderList!.HasMember("orderDetails[i].order.legDetails.executedPrice") == true { print("executedPrice: \(orderList!.StringOf("orderDetails[i].order.legDetails.executedPrice"))") } // Is the legDetails an array? If so, then iterate over it.. var szLegDetails: Int = orderList!.SizeOfArray("orderDetails[i].order.legDetails").intValue if szLegDetails > 0 { var j: Int = 0 while j < szLegDetails { orderList.J = j print("-- legNumber: \(orderList!.IntOf("orderDetails[i].order.legDetails[j].legNumber").intValue)") print(" orderAction: \(orderList!.StringOf("orderDetails[i].order.legDetails[j].orderAction"))") print(" orderedQuantity: \(orderList!.IntOf("orderDetails[i].order.legDetails[j].orderedQuantity").intValue)") j = j + 1 } } print("----") i = i + 1 } orderList = nil print("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 // } // } // ] // } // } // } } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.