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
(Tcl) 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.
load ./chilkat.dll # This example assumes the Chilkat HTTP API to have been previously unlocked. # See Global Unlock Sample for sample code. set http [new_CkHttp] CkHttp_put_OAuth1 $http 1 CkHttp_put_OAuthVerifier $http "" CkHttp_put_OAuthConsumerKey $http "ETRADE_CONSUMER_KEY" CkHttp_put_OAuthConsumerSecret $http "ETRADE_CONSUMER_SECRET" # Load the access token previously obtained via the OAuth1 3-Legged Authorization set jsonToken [new_CkJsonObject] set success [CkJsonObject_LoadFile $jsonToken "qa_data/tokens/etrade.json"] if {$success != 1} then { puts "Failed to load OAuth1 token" delete_CkHttp $http delete_CkJsonObject $jsonToken exit } CkHttp_put_OAuthToken $http [CkJsonObject_stringOf $jsonToken "oauth_token"] CkHttp_put_OAuthTokenSecret $http [CkJsonObject_stringOf $jsonToken "oauth_token_secret"] # Tell ETrade we want a JSON response: CkHttp_put_Accept $http "application/json" # The live URL is https://etws.etrade.com/order/rest/orderlist/{accountId} # We're using the sandbox URL.. set sbUrl [new_CkStringBuilder] CkStringBuilder_Append $sbUrl "https://etwssandbox.etrade.com/order/sandbox/rest/orderlist/" CkStringBuilder_Append $sbUrl "MY_ETRADE_ACCOUNT_ID" set respStr [CkHttp_quickGetStr $http [CkStringBuilder_getAsString $sbUrl]] if {[CkHttp_get_LastMethodSuccess $http] != 1} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkStringBuilder $sbUrl exit } # Examine the response status code. set statusCode [CkHttp_get_LastStatus $http] puts "Status Code = $statusCode" # The response is JSON. A sample response is shown below. set json [new_CkJsonObject] CkJsonObject_Load $json $respStr CkJsonObject_put_EmitCompact $json 0 # If the status code was not 200, then it was an error.. if {$statusCode != 200} then { puts [CkJsonObject_emit $json] puts "List orders failed." delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkStringBuilder $sbUrl delete_CkJsonObject $json exit } # Iterate over the orders. set i 0 set numOrders [CkJsonObject_SizeOfArray $json "GetOrderListResponse.orderListResponse.orderDetails"] # orderList is a CkJsonObject set orderList [CkJsonObject_ObjectOf $json "GetOrderListResponse.orderListResponse"] while {$i < $numOrders} { CkJsonObject_put_I $orderList $i puts "orderId: [CkJsonObject_IntOf $orderList {orderDetails[i].order.orderId}]" puts "orderStatus: [CkJsonObject_stringOf $orderList {orderDetails[i].order.orderStatus}]" if {[CkJsonObject_HasMember $orderList "orderDetails[i].order.legDetails.executedPrice"] == 1} then { puts "executedPrice: [CkJsonObject_stringOf $orderList {orderDetails[i].order.legDetails.executedPrice}]" } # Is the legDetails an array? If so, then iterate over it.. set szLegDetails [CkJsonObject_SizeOfArray $orderList "orderDetails[i].order.legDetails"] if {$szLegDetails > 0} then { set j 0 while {$j < $szLegDetails} { CkJsonObject_put_J $orderList $j puts "-- legNumber: [CkJsonObject_IntOf $orderList {orderDetails[i].order.legDetails[j].legNumber}]" puts " orderAction: [CkJsonObject_stringOf $orderList {orderDetails[i].order.legDetails[j].orderAction}]" puts " orderedQuantity: [CkJsonObject_IntOf $orderList {orderDetails[i].order.legDetails[j].orderedQuantity}]" set j [expr $j + 1] } } puts "----" set i [expr $i + 1] } delete_CkJsonObject $orderList puts "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 # } # } # ] # } # } # } delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkStringBuilder $sbUrl delete_CkJsonObject $json |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.