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
(Delphi DLL) 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
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Http, Xml, HttpResponse, JsonObject; ... procedure TForm1.Button1Click(Sender: TObject); var http: HCkHttp; jsonToken: HCkJsonObject; success: Boolean; sandboxUrl: PWideChar; liveUrl: PWideChar; resp: HCkHttpResponse; xml: HCkXml; accountId: Integer; accountType: PWideChar; optionLevel: PWideChar; accountDescription: PWideChar; quoteMode: Integer; dayTraderStatus: PWideChar; accountMode: PWideChar; fundsForOpenOrdersCash: Integer; moneyMktBalance: Integer; cashAvailableForInvestment: Integer; netCash: PWideChar; cashBalance: PWideChar; settledCashForInvestment: Integer; unSettledCashForInvestment: Integer; fundsWithheldFromPurchasePower: Integer; fundsWithheldFromWithdrawal: Integer; marginBuyingPower: Integer; cashBuyingPower: PWideChar; dtMarginBuyingPower: Integer; dtCashBuyingPower: Integer; shortAdjustBalance: Integer; regtEquity: Integer; regtEquityPercent: Integer; accountBalance: Integer; dtCashOpenOrderReserve: Integer; dtMarginOpenOrderReserve: Integer; begin // This requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := CkHttp_Create(); CkHttp_putOAuth1(http,True); CkHttp_putOAuthVerifier(http,''); CkHttp_putOAuthConsumerKey(http,'ETRADE_CONSUMER_KEY'); CkHttp_putOAuthConsumerSecret(http,'ETRADE_CONSUMER_SECRET'); // Load the access token previously obtained via the OAuth1 Authorization jsonToken := CkJsonObject_Create(); success := CkJsonObject_LoadFile(jsonToken,'qa_data/tokens/etrade.json'); if (success <> True) then begin Memo1.Lines.Add('Failed to load OAuth1 token'); Exit; end; CkHttp_putOAuthToken(http,CkJsonObject__stringOf(jsonToken,'oauth_token')); CkHttp_putOAuthTokenSecret(http,CkJsonObject__stringOf(jsonToken,'oauth_token_secret')); sandboxUrl := 'https://apisb.etrade.com/v1/accounts/{$accountIdKey}/balance?instType={$instType}&realTimeNAV=true'; 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 := CkHttp_QuickGetObj(http,sandboxUrl); if (CkHttp_getLastMethodSuccess(http) <> True) then begin Memo1.Lines.Add(CkHttp__lastErrorText(http)); Exit; end; // Make sure a successful response was received. if (CkHttpResponse_getStatusCode(resp) > 200) then begin Memo1.Lines.Add(CkHttpResponse__statusLine(resp)); Memo1.Lines.Add(CkHttpResponse__header(resp)); Memo1.Lines.Add(CkHttpResponse__bodyStr(resp)); Exit; end; // 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 := CkXml_Create(); CkXml_LoadXml(xml,CkHttpResponse__bodyStr(resp)); Memo1.Lines.Add(CkXml__getXml(xml)); accountId := CkXml_GetChildIntValue(xml,'accountId'); accountType := CkXml__getChildContent(xml,'accountType'); optionLevel := CkXml__getChildContent(xml,'optionLevel'); accountDescription := CkXml__getChildContent(xml,'accountDescription'); quoteMode := CkXml_GetChildIntValue(xml,'quoteMode'); dayTraderStatus := CkXml__getChildContent(xml,'dayTraderStatus'); accountMode := CkXml__getChildContent(xml,'accountMode'); fundsForOpenOrdersCash := CkXml_GetChildIntValue(xml,'Cash|fundsForOpenOrdersCash'); moneyMktBalance := CkXml_GetChildIntValue(xml,'Cash|moneyMktBalance'); cashAvailableForInvestment := CkXml_GetChildIntValue(xml,'Computed|cashAvailableForInvestment'); netCash := CkXml__getChildContent(xml,'Computed|netCash'); cashBalance := CkXml__getChildContent(xml,'Computed|cashBalance'); settledCashForInvestment := CkXml_GetChildIntValue(xml,'Computed|settledCashForInvestment'); unSettledCashForInvestment := CkXml_GetChildIntValue(xml,'Computed|unSettledCashForInvestment'); fundsWithheldFromPurchasePower := CkXml_GetChildIntValue(xml,'Computed|fundsWithheldFromPurchasePower'); fundsWithheldFromWithdrawal := CkXml_GetChildIntValue(xml,'Computed|fundsWithheldFromWithdrawal'); marginBuyingPower := CkXml_GetChildIntValue(xml,'Computed|marginBuyingPower'); cashBuyingPower := CkXml__getChildContent(xml,'Computed|cashBuyingPower'); dtMarginBuyingPower := CkXml_GetChildIntValue(xml,'Computed|dtMarginBuyingPower'); dtCashBuyingPower := CkXml_GetChildIntValue(xml,'Computed|dtCashBuyingPower'); shortAdjustBalance := CkXml_GetChildIntValue(xml,'Computed|shortAdjustBalance'); regtEquity := CkXml_GetChildIntValue(xml,'Computed|regtEquity'); regtEquityPercent := CkXml_GetChildIntValue(xml,'Computed|regtEquityPercent'); accountBalance := CkXml_GetChildIntValue(xml,'Computed|accountBalance'); dtCashOpenOrderReserve := CkXml_GetChildIntValue(xml,'Margin|dtCashOpenOrderReserve'); dtMarginOpenOrderReserve := CkXml_GetChildIntValue(xml,'Margin|dtMarginOpenOrderReserve'); Memo1.Lines.Add('Success.'); CkHttp_Dispose(http); CkJsonObject_Dispose(jsonToken); CkXml_Dispose(xml); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.