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
(Objective-C) 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.
#import <CkoHttp.h> #import <CkoJsonObject.h> #import <CkoStringBuilder.h> #import <NSString.h> // This example assumes the Chilkat HTTP API to have been previously unlocked. // See Global Unlock Sample for sample code. CkoHttp *http = [[CkoHttp alloc] init]; http.OAuth1 = YES; http.OAuthVerifier = @""; http.OAuthConsumerKey = @"ETRADE_CONSUMER_KEY"; http.OAuthConsumerSecret = @"ETRADE_CONSUMER_SECRET"; // Load the access token previously obtained via the OAuth1 3-Legged Authorization CkoJsonObject *jsonToken = [[CkoJsonObject alloc] init]; BOOL success = [jsonToken LoadFile: @"qa_data/tokens/etrade.json"]; if (success != YES) { NSLog(@"%@",@"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.. CkoStringBuilder *sbUrl = [[CkoStringBuilder alloc] init]; [sbUrl Append: @"https://etwssandbox.etrade.com/order/sandbox/rest/orderlist/"]; [sbUrl Append: @"MY_ETRADE_ACCOUNT_ID"]; NSString *respStr = [http QuickGetStr: [sbUrl GetAsString]]; if (http.LastMethodSuccess != YES) { NSLog(@"%@",http.LastErrorText); return; } // Examine the response status code. int statusCode = [http.LastStatus intValue]; NSLog(@"%@%d",@"Status Code = ",statusCode); // The response is JSON. A sample response is shown below. CkoJsonObject *json = [[CkoJsonObject alloc] init]; [json Load: respStr]; json.EmitCompact = NO; // If the status code was not 200, then it was an error.. if (statusCode != 200) { NSLog(@"%@",[json Emit]); NSLog(@"%@",@"List orders failed."); return; } // Iterate over the orders. int i = 0; int numOrders = [[json SizeOfArray: @"GetOrderListResponse.orderListResponse.orderDetails"] intValue]; CkoJsonObject *orderList = [json ObjectOf: @"GetOrderListResponse.orderListResponse"]; while (i < numOrders) { orderList.I = [NSNumber numberWithInt: i]; NSLog(@"%@%d",@"orderId: ",[[orderList IntOf: @"orderDetails[i].order.orderId"] intValue]); NSLog(@"%@%@",@"orderStatus: ",[orderList StringOf: @"orderDetails[i].order.orderStatus"]); if ([orderList HasMember: @"orderDetails[i].order.legDetails.executedPrice"] == YES) { NSLog(@"%@%@",@"executedPrice: ",[orderList StringOf: @"orderDetails[i].order.legDetails.executedPrice"]); } // Is the legDetails an array? If so, then iterate over it.. int szLegDetails = [[orderList SizeOfArray: @"orderDetails[i].order.legDetails"] intValue]; if (szLegDetails > 0) { int j = 0; while (j < szLegDetails) { orderList.J = [NSNumber numberWithInt: j]; NSLog(@"%@%d",@"-- legNumber: ",[[orderList IntOf: @"orderDetails[i].order.legDetails[j].legNumber"] intValue]); NSLog(@"%@%@",@" orderAction: ",[orderList StringOf: @"orderDetails[i].order.legDetails[j].orderAction"]); NSLog(@"%@%d",@" orderedQuantity: ",[[orderList IntOf: @"orderDetails[i].order.legDetails[j].orderedQuantity"] intValue]); j = j + 1; } } NSLog(@"%@",@"----"); i = i + 1; } NSLog(@"%@",@"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.