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
(Perl) 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.
use chilkat(); # This example assumes the Chilkat HTTP API to have been previously unlocked. # See Global Unlock Sample for sample code. $http = chilkat::CkHttp->new(); $http->put_OAuth1(1); $http->put_OAuthVerifier(""); $http->put_OAuthConsumerKey("ETRADE_CONSUMER_KEY"); $http->put_OAuthConsumerSecret("ETRADE_CONSUMER_SECRET"); # Load the access token previously obtained via the OAuth1 3-Legged Authorization $jsonToken = chilkat::CkJsonObject->new(); $success = $jsonToken->LoadFile("qa_data/tokens/etrade.json"); if ($success != 1) { print "Failed to load OAuth1 token" . "\r\n"; exit; } $http->put_OAuthToken($jsonToken->stringOf("oauth_token")); $http->put_OAuthTokenSecret($jsonToken->stringOf("oauth_token_secret")); # Tell ETrade we want a JSON response: $http->put_Accept("application/json"); # The live URL is https://etws.etrade.com/order/rest/orderlist/{accountId} # We're using the sandbox URL.. $sbUrl = chilkat::CkStringBuilder->new(); $sbUrl->Append("https://etwssandbox.etrade.com/order/sandbox/rest/orderlist/"); $sbUrl->Append("MY_ETRADE_ACCOUNT_ID"); $respStr = $http->quickGetStr($sbUrl->getAsString()); if ($http->get_LastMethodSuccess() != 1) { print $http->lastErrorText() . "\r\n"; exit; } # Examine the response status code. $statusCode = $http->get_LastStatus(); print "Status Code = " . $statusCode . "\r\n"; # The response is JSON. A sample response is shown below. $json = chilkat::CkJsonObject->new(); $json->Load($respStr); $json->put_EmitCompact(0); # If the status code was not 200, then it was an error.. if ($statusCode != 200) { print $json->emit() . "\r\n"; print "List orders failed." . "\r\n"; exit; } # Iterate over the orders. $i = 0; $numOrders = $json->SizeOfArray("GetOrderListResponse.orderListResponse.orderDetails"); # orderList is a JsonObject $orderList = $json->ObjectOf("GetOrderListResponse.orderListResponse"); while ($i < $numOrders) { $orderList->put_I($i); print "orderId: " . $orderList->IntOf("orderDetails[i].order.orderId") . "\r\n"; print "orderStatus: " . $orderList->stringOf("orderDetails[i].order.orderStatus") . "\r\n"; if ($orderList->HasMember("orderDetails[i].order.legDetails.executedPrice") == 1) { print "executedPrice: " . $orderList->stringOf("orderDetails[i].order.legDetails.executedPrice") . "\r\n"; } # Is the legDetails an array? If so, then iterate over it.. $szLegDetails = $orderList->SizeOfArray("orderDetails[i].order.legDetails"); if ($szLegDetails > 0) { $j = 0; while ($j < $szLegDetails) { $orderList->put_J($j); print "-- legNumber: " . $orderList->IntOf("orderDetails[i].order.legDetails[j].legNumber") . "\r\n"; print " orderAction: " . $orderList->stringOf("orderDetails[i].order.legDetails[j].orderAction") . "\r\n"; print " orderedQuantity: " . $orderList->IntOf("orderDetails[i].order.legDetails[j].orderedQuantity") . "\r\n"; $j = $j + 1; } } print "----" . "\r\n"; $i = $i + 1; } print "success." . "\r\n"; # 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.