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
(PureBasic) 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
IncludeFile "CkHttpResponse.pb" IncludeFile "CkHttp.pb" IncludeFile "CkJsonObject.pb" IncludeFile "CkXml.pb" Procedure ChilkatExample() ; This requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. http.i = CkHttp::ckCreate() If http.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkHttp::setCkOAuth1(http, 1) CkHttp::setCkOAuthVerifier(http, "") CkHttp::setCkOAuthConsumerKey(http, "ETRADE_CONSUMER_KEY") CkHttp::setCkOAuthConsumerSecret(http, "ETRADE_CONSUMER_SECRET") ; Load the access token previously obtained via the OAuth1 Authorization jsonToken.i = CkJsonObject::ckCreate() If jsonToken.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkJsonObject::ckLoadFile(jsonToken,"qa_data/tokens/etrade.json") If success <> 1 Debug "Failed to load OAuth1 token" CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf CkHttp::setCkOAuthToken(http, CkJsonObject::ckStringOf(jsonToken,"oauth_token")) CkHttp::setCkOAuthTokenSecret(http, CkJsonObject::ckStringOf(jsonToken,"oauth_token_secret")) sandboxUrl.s = "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/balance?instType={$instType}&realTimeNAV=true" liveUrl.s = "https://api.etrade.com/v1/accounts/{$accountIdKey}/balance?instType={$instType}&realTimeNAV=true" CkHttp::ckSetUrlVar(http,"accountIdKey","6_Dpy0rmuQ9cu9IbTfvF2A") CkHttp::ckSetUrlVar(http,"instType","BROKERAGE") resp.i = CkHttp::ckQuickGetObj(http,sandboxUrl) If CkHttp::ckLastMethodSuccess(http) <> 1 Debug CkHttp::ckLastErrorText(http) CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf ; Make sure a successful response was received. If CkHttpResponse::ckStatusCode(resp) > 200 Debug CkHttpResponse::ckStatusLine(resp) Debug CkHttpResponse::ckHeader(resp) Debug CkHttpResponse::ckBodyStr(resp) CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) ProcedureReturn EndIf ; 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> xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkXml::ckLoadXml(xml,CkHttpResponse::ckBodyStr(resp)) Debug CkXml::ckGetXml(xml) accountId.i accountType.s optionLevel.s accountDescription.s quoteMode.i dayTraderStatus.s accountMode.s fundsForOpenOrdersCash.i moneyMktBalance.i cashAvailableForInvestment.i netCash.s cashBalance.s settledCashForInvestment.i unSettledCashForInvestment.i fundsWithheldFromPurchasePower.i fundsWithheldFromWithdrawal.i marginBuyingPower.i cashBuyingPower.s dtMarginBuyingPower.i dtCashBuyingPower.i shortAdjustBalance.i regtEquity.i regtEquityPercent.i accountBalance.i dtCashOpenOrderReserve.i dtMarginOpenOrderReserve.i accountId = CkXml::ckGetChildIntValue(xml,"accountId") accountType = CkXml::ckGetChildContent(xml,"accountType") optionLevel = CkXml::ckGetChildContent(xml,"optionLevel") accountDescription = CkXml::ckGetChildContent(xml,"accountDescription") quoteMode = CkXml::ckGetChildIntValue(xml,"quoteMode") dayTraderStatus = CkXml::ckGetChildContent(xml,"dayTraderStatus") accountMode = CkXml::ckGetChildContent(xml,"accountMode") fundsForOpenOrdersCash = CkXml::ckGetChildIntValue(xml,"Cash|fundsForOpenOrdersCash") moneyMktBalance = CkXml::ckGetChildIntValue(xml,"Cash|moneyMktBalance") cashAvailableForInvestment = CkXml::ckGetChildIntValue(xml,"Computed|cashAvailableForInvestment") netCash = CkXml::ckGetChildContent(xml,"Computed|netCash") cashBalance = CkXml::ckGetChildContent(xml,"Computed|cashBalance") settledCashForInvestment = CkXml::ckGetChildIntValue(xml,"Computed|settledCashForInvestment") unSettledCashForInvestment = CkXml::ckGetChildIntValue(xml,"Computed|unSettledCashForInvestment") fundsWithheldFromPurchasePower = CkXml::ckGetChildIntValue(xml,"Computed|fundsWithheldFromPurchasePower") fundsWithheldFromWithdrawal = CkXml::ckGetChildIntValue(xml,"Computed|fundsWithheldFromWithdrawal") marginBuyingPower = CkXml::ckGetChildIntValue(xml,"Computed|marginBuyingPower") cashBuyingPower = CkXml::ckGetChildContent(xml,"Computed|cashBuyingPower") dtMarginBuyingPower = CkXml::ckGetChildIntValue(xml,"Computed|dtMarginBuyingPower") dtCashBuyingPower = CkXml::ckGetChildIntValue(xml,"Computed|dtCashBuyingPower") shortAdjustBalance = CkXml::ckGetChildIntValue(xml,"Computed|shortAdjustBalance") regtEquity = CkXml::ckGetChildIntValue(xml,"Computed|regtEquity") regtEquityPercent = CkXml::ckGetChildIntValue(xml,"Computed|regtEquityPercent") accountBalance = CkXml::ckGetChildIntValue(xml,"Computed|accountBalance") dtCashOpenOrderReserve = CkXml::ckGetChildIntValue(xml,"Margin|dtCashOpenOrderReserve") dtMarginOpenOrderReserve = CkXml::ckGetChildIntValue(xml,"Margin|dtMarginOpenOrderReserve") Debug "Success." CkHttp::ckDispose(http) CkJsonObject::ckDispose(jsonToken) CkXml::ckDispose(xml) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.