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 Get Account BalancesRetrieves the current account balance and related details for a specified account. For more information, see https://apisb.etrade.com/docs/api/account/api-balance-v1.html
load ./chilkat.dll # This requires the Chilkat 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 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"] set sandboxUrl "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/balance?instType={$instType}&realTimeNAV=true" set liveUrl "https://api.etrade.com/v1/accounts/{$accountIdKey}/balance?instType={$instType}&realTimeNAV=true" CkHttp_SetUrlVar $http "accountIdKey" "6_Dpy0rmuQ9cu9IbTfvF2A" CkHttp_SetUrlVar $http "instType" "BROKERAGE" # resp is a CkHttpResponse set resp [CkHttp_QuickGetObj $http $sandboxUrl] if {[CkHttp_get_LastMethodSuccess $http] != 1} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkJsonObject $jsonToken exit } # Make sure a successful response was received. if {[CkHttpResponse_get_StatusCode $resp] > 200} then { puts [CkHttpResponse_statusLine $resp] puts [CkHttpResponse_header $resp] puts [CkHttpResponse_bodyStr $resp] delete_CkHttp $http delete_CkJsonObject $jsonToken exit } # Sample XML response: # Use this online tool to generate parsing code from sample XML: # Generate Parsing Code from XML # <?xml version="1.0" encoding="UTF-8"?> # <BalanceResponse> # <accountId>83564979</accountId> # <accountType>PDT_ACCOUNT</accountType> # <optionLevel>LEVEL_4</optionLevel> # <accountDescription>KRITHH TT</accountDescription> # <quoteMode>6</quoteMode> # <dayTraderStatus>PDT_MIN_EQUITY_RES_1XK</dayTraderStatus> # <accountMode>PDT ACCOUNT</accountMode> # <Cash> # <fundsForOpenOrdersCash>0</fundsForOpenOrdersCash> # <moneyMktBalance>0</moneyMktBalance> # </Cash> # <Computed> # <cashAvailableForInvestment>0</cashAvailableForInvestment> # <netCash>93921.44</netCash> # <cashBalance>93921.44</cashBalance> # <settledCashForInvestment>0</settledCashForInvestment> # <unSettledCashForInvestment>0</unSettledCashForInvestment> # <fundsWithheldFromPurchasePower>0</fundsWithheldFromPurchasePower> # <fundsWithheldFromWithdrawal>0</fundsWithheldFromWithdrawal> # <marginBuyingPower>0</marginBuyingPower> # <cashBuyingPower>93921.44</cashBuyingPower> # <dtMarginBuyingPower>0</dtMarginBuyingPower> # <dtCashBuyingPower>0</dtCashBuyingPower> # <shortAdjustBalance>0</shortAdjustBalance> # <regtEquity>0</regtEquity> # <regtEquityPercent>0</regtEquityPercent> # <accountBalance>0</accountBalance> # </Computed> # <Margin> # <dtCashOpenOrderReserve>0</dtCashOpenOrderReserve> # <dtMarginOpenOrderReserve>0</dtMarginOpenOrderReserve> # </Margin> # </BalanceResponse> set xml [new_CkXml] CkXml_LoadXml $xml [CkHttpResponse_bodyStr $resp] puts [CkXml_getXml $xml] set accountId [CkXml_GetChildIntValue $xml "accountId"] set accountType [CkXml_getChildContent $xml "accountType"] set optionLevel [CkXml_getChildContent $xml "optionLevel"] set accountDescription [CkXml_getChildContent $xml "accountDescription"] set quoteMode [CkXml_GetChildIntValue $xml "quoteMode"] set dayTraderStatus [CkXml_getChildContent $xml "dayTraderStatus"] set accountMode [CkXml_getChildContent $xml "accountMode"] set fundsForOpenOrdersCash [CkXml_GetChildIntValue $xml "Cash|fundsForOpenOrdersCash"] set moneyMktBalance [CkXml_GetChildIntValue $xml "Cash|moneyMktBalance"] set cashAvailableForInvestment [CkXml_GetChildIntValue $xml "Computed|cashAvailableForInvestment"] set netCash [CkXml_getChildContent $xml "Computed|netCash"] set cashBalance [CkXml_getChildContent $xml "Computed|cashBalance"] set settledCashForInvestment [CkXml_GetChildIntValue $xml "Computed|settledCashForInvestment"] set unSettledCashForInvestment [CkXml_GetChildIntValue $xml "Computed|unSettledCashForInvestment"] set fundsWithheldFromPurchasePower [CkXml_GetChildIntValue $xml "Computed|fundsWithheldFromPurchasePower"] set fundsWithheldFromWithdrawal [CkXml_GetChildIntValue $xml "Computed|fundsWithheldFromWithdrawal"] set marginBuyingPower [CkXml_GetChildIntValue $xml "Computed|marginBuyingPower"] set cashBuyingPower [CkXml_getChildContent $xml "Computed|cashBuyingPower"] set dtMarginBuyingPower [CkXml_GetChildIntValue $xml "Computed|dtMarginBuyingPower"] set dtCashBuyingPower [CkXml_GetChildIntValue $xml "Computed|dtCashBuyingPower"] set shortAdjustBalance [CkXml_GetChildIntValue $xml "Computed|shortAdjustBalance"] set regtEquity [CkXml_GetChildIntValue $xml "Computed|regtEquity"] set regtEquityPercent [CkXml_GetChildIntValue $xml "Computed|regtEquityPercent"] set accountBalance [CkXml_GetChildIntValue $xml "Computed|accountBalance"] set dtCashOpenOrderReserve [CkXml_GetChildIntValue $xml "Margin|dtCashOpenOrderReserve"] set dtMarginOpenOrderReserve [CkXml_GetChildIntValue $xml "Margin|dtMarginOpenOrderReserve"] puts "Success." delete_CkHttp $http delete_CkJsonObject $jsonToken delete_CkXml $xml |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.