Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(Excel) ETrade View PortfolioGets portfolio information for the selected brokerage account. For more information, see https://apisb.etrade.com/docs/api/account/api-portfolio-v1.html
' This requires the Chilkat API to have been previously unlocked. ' See Global Unlock Sample for sample code. Dim http As Chilkat.Http Set http = Chilkat.NewHttp http.OAuth1 = True http.OAuthVerifier = "" http.OAuthConsumerKey = "ETRADE_CONSUMER_KEY" http.OAuthConsumerSecret = "ETRADE_CONSUMER_SECRET" ' Load the access token previously obtained via the OAuth1 Authorization Dim jsonToken As Chilkat.JsonObject Set jsonToken = Chilkat.NewJsonObject success = jsonToken.LoadFile("qa_data/tokens/etrade.json") If (success <> True) Then Debug.Print "Failed to load OAuth1 token" Exit Sub End If http.OAuthToken = jsonToken.StringOf("oauth_token") http.OAuthTokenSecret = jsonToken.StringOf("oauth_token_secret") sandboxUrl = "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/portfolio" liveUrl = "https://api.etrade.com/v1/accounts/{$accountIdKey}/portfolio" success = http.SetUrlVar("accountIdKey","6_Dpy0rmuQ9cu9IbTfvF2A") Set resp = http.QuickGetObj(sandboxUrl) If (http.LastMethodSuccess <> True) Then Debug.Print http.LastErrorText Exit Sub End If ' Make sure a successful response was received. If (resp.StatusCode > 200) Then Debug.Print resp.StatusLine Debug.Print resp.Header Debug.Print resp.BodyStr Exit Sub End If ' 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" standalone="yes"?> ' <PortfolioResponse> ' <AccountPortfolio> ' <accountId>83359700</accountId> ' <Position> ' <positionId>27005131</positionId> ' <Product> ' <expiryDay>0</expiryDay> ' <expiryMonth>0</expiryMonth> ' <expiryYear>0</expiryYear> ' <securityType>EQ</securityType> ' <strikePrice>0</strikePrice> ' <symbol>BR</symbol> ' </Product> ' <symbolDescription>BR</symbolDescription> ' <dateAcquired>-57600000</dateAcquired> ' <pricePaid>0</pricePaid> ' <commissions>0</commissions> ' <otherFees>0</otherFees> ' <quantity>10</quantity> ' <positionIndicator>TYPE2</positionIndicator> ' <positionType>LONG</positionType> ' <daysGain>-2.7999</daysGain> ' <daysGainPct>-1.3346</daysGainPct> ' <marketValue>207</marketValue> ' <totalCost>0</totalCost> ' <totalGain>207</totalGain> ' <totalGainPct>0</totalGainPct> ' <pctOfPortfolio>0.0018</pctOfPortfolio> ' <costPerShare>0</costPerShare> ' <todayCommissions>0</todayCommissions> ' <todayFees>0</todayFees> ' <todayPricePaid>0</todayPricePaid> ' <todayQuantity>0</todayQuantity> ' <Quick> ' <change>-0.28</change> ' <changePct>-1.3346</changePct> ' <lastTrade>20.70</lastTrade> ' <lastTradeTime>1343160240</lastTradeTime> ' <volume>431591</volume> ' </Quick> ' <lotsDetails>https://apisb.etrade.com/v1/accounts/E5Nd4LJBsEi_UyHm4Vio9g/portfolio/27005131</lotsDetails> ' <quoteDetails>https://apisb.etrade.com/v1/market/quote/BR</quoteDetails> ' </Position> ' <Position> ' <positionId>4709131</positionId> ' <Product> ' <expiryDay>0</expiryDay> ' <expiryMonth>0</expiryMonth> ' <expiryYear>0</expiryYear> ' <securityType>EQ</securityType> ' <strikePrice>0</strikePrice> ' <symbol>GLD</symbol> ' </Product> ' <symbolDescription>GLD</symbolDescription> ' <dateAcquired>1335250800000</dateAcquired> ' <pricePaid>1</pricePaid> ' <commissions>5</commissions> ' <otherFees>0</otherFees> ' <quantity>2</quantity> ' <positionIndicator>TYPE1</positionIndicator> ' <positionType>LONG</positionType> ' <daysGain>0.9799</daysGain> ' <daysGainPct>0.3201</daysGainPct> ' <marketValue>307.04</marketValue> ' <totalCost>7</totalCost> ' <totalGain>300.04</totalGain> ' <totalGainPct>4286.2857</totalGainPct> ' <pctOfPortfolio>0.0028</pctOfPortfolio> ' <costPerShare>3.5</costPerShare> ' <todayCommissions>0</todayCommissions> ' <todayFees>0</todayFees> ' <todayPricePaid>0</todayPricePaid> ' <todayQuantity>0</todayQuantity> ' <Quick> ' <change>0.49</change> ' <changePct>0.3201</changePct> ' <lastTrade>153.52</lastTrade> ' <lastTradeTime>1343160000</lastTradeTime> ' <volume>6510878</volume> ' </Quick> ' <lotsDetails>https://apisb.etrade.com/v1/accounts/E5Nd4LJBsEi_UyHm4Vio9g/portfolio/4709131</lotsDetails> ' <quoteDetails>https://apisb.etrade.com/v1/market/quote/GLD</quoteDetails> ' </Position> ' <Position> ' <positionId>4729131</positionId> ' <Product> ' <expiryDay>0</expiryDay> ' <expiryMonth>0</expiryMonth> ' <expiryYear>0</expiryYear> ' <securityType>EQ</securityType> ' <strikePrice>0</strikePrice> ' <symbol>MSFT</symbol> ' </Product> ' <symbolDescription>MSFT</symbolDescription> ' <dateAcquired>1335250800000</dateAcquired> ' <pricePaid>1</pricePaid> ' <commissions>5</commissions> ' <otherFees>0</otherFees> ' <quantity>1</quantity> ' <positionIndicator>TYPE2</positionIndicator> ' <positionType>LONG</positionType> ' <daysGain>-0.13</daysGain> ' <daysGainPct>-0.4439</daysGainPct> ' <marketValue>29.1499</marketValue> ' <totalCost>6</totalCost> ' <totalGain>23.1499</totalGain> ' <totalGainPct>385.8333</totalGainPct> ' <pctOfPortfolio>0.0002</pctOfPortfolio> ' <costPerShare>6</costPerShare> ' <todayCommissions>0</todayCommissions> ' <todayFees>0</todayFees> ' <todayPricePaid>0</todayPricePaid> ' <todayQuantity>0</todayQuantity> ' <Quick> ' <change>-0.13</change> ' <changePct>-0.4439</changePct> ' <lastTrade>29.15</lastTrade> ' <lastTradeTime>1343160000</lastTradeTime> ' <volume>47711254</volume> ' </Quick> ' <lotsDetails>https://apisb.etrade.com/v1/accounts/E5Nd4LJBsEi_UyHm4Vio9g/portfolio/4729131</lotsDetails> ' <quoteDetails>https://apisb.etrade.com/v1/market/quote/MSFT</quoteDetails> ' </Position> ' <Position> ' <positionId>23971131</positionId> ' <Product> ' <expiryDay>0</expiryDay> ' <expiryMonth>0</expiryMonth> ' <expiryYear>0</expiryYear> ' <securityType>EQ</securityType> ' <strikePrice>0</strikePrice> ' <symbol>MSFT</symbol> ' </Product> ' <symbolDescription>MSFT</symbolDescription> ' <dateAcquired>-57600000</dateAcquired> ' <pricePaid>0</pricePaid> ' <commissions>0</commissions> ' <otherFees>0</otherFees> ' <quantity>-10</quantity> ' <positionIndicator>TYPE5</positionIndicator> ' <positionType>SHORT</positionType> ' <daysGain>1.30</daysGain> ' <daysGainPct>-0.4439</daysGainPct> ' <marketValue>-291.5</marketValue> ' <totalCost>0</totalCost> ' <totalGain>-291.5</totalGain> ' <totalGainPct>0</totalGainPct> ' <pctOfPortfolio>-0.0026</pctOfPortfolio> ' <costPerShare>0</costPerShare> ' <todayCommissions>0</todayCommissions> ' <todayFees>0</todayFees> ' <todayPricePaid>0</todayPricePaid> ' <todayQuantity>0</todayQuantity> ' <Quick> ' <change>-0.13</change> ' <changePct>-0.4439</changePct> ' <lastTrade>29.15</lastTrade> ' <lastTradeTime>1343160000</lastTradeTime> ' <volume>47711254</volume> ' </Quick> ' <lotsDetails>https://apisb.etrade.com/v1/accounts/E5Nd4LJBsEi_UyHm4Vio9g/portfolio/23971131</lotsDetails> ' <quoteDetails>https://apisb.etrade.com/v1/market/quote/MSFT</quoteDetails> ' </Position> ' <Position> ' <positionId>4725131</positionId> ' <Product> ' <expiryDay>0</expiryDay> ' <expiryMonth>0</expiryMonth> ' <expiryYear>0</expiryYear> ' <securityType>EQ</securityType> ' <strikePrice>0</strikePrice> ' <symbol>RBL</symbol> ' </Product> ' <symbolDescription>RBL</symbolDescription> ' <dateAcquired>1335250800000</dateAcquired> ' <pricePaid>1</pricePaid> ' <commissions>5</commissions> ' <otherFees>0</otherFees> ' <quantity>2</quantity> ' <positionIndicator>TYPE2</positionIndicator> ' <positionType>LONG</positionType> ' <daysGain>-0.52</daysGain> ' <daysGainPct>-1.0252</daysGainPct> ' <marketValue>50.20</marketValue> ' <totalCost>7</totalCost> ' <totalGain>43.20</totalGain> ' <totalGainPct>617.1428</totalGainPct> ' <pctOfPortfolio>0.0004</pctOfPortfolio> ' <costPerShare>3.5</costPerShare> ' <todayCommissions>0</todayCommissions> ' <todayFees>0</todayFees> ' <todayPricePaid>0</todayPricePaid> ' <todayQuantity>0</todayQuantity> ' <Quick> ' <change>-0.26</change> ' <changePct>-1.0252</changePct> ' <lastTrade>25.10</lastTrade> ' <lastTradeTime>1343159760</lastTradeTime> ' <volume>11827</volume> ' </Quick> ' <lotsDetails>https://apisb.etrade.com/v1/accounts/E5Nd4LJBsEi_UyHm4Vio9g/portfolio/4725131</lotsDetails> ' <quoteDetails>https://apisb.etrade.com/v1/market/quote/RBL</quoteDetails> ' </Position> ' <Position> ' <positionId>20841131</positionId> ' <Product> ' <expiryDay>0</expiryDay> ' <expiryMonth>0</expiryMonth> ' <expiryYear>0</expiryYear> ' <securityType>EQ</securityType> ' <strikePrice>0</strikePrice> ' <symbol>RPI</symbol> ' </Product> ' <symbolDescription>RPI</symbolDescription> ' <dateAcquired>1335250800000</dateAcquired> ' <pricePaid>7.5599</pricePaid> ' <commissions>5</commissions> ' <otherFees>45</otherFees> ' <quantity>2</quantity> ' <positionIndicator>TYPE2</positionIndicator> ' <positionType>LONG</positionType> ' <daysGain>0</daysGain> ' <daysGainPct>0</daysGainPct> ' <marketValue>2.8599</marketValue> ' <totalCost>65.12</totalCost> ' <totalGain>-62.2599</totalGain> ' <totalGainPct>-95.6081</totalGainPct> ' <pctOfPortfolio>0.00</pctOfPortfolio> ' <costPerShare>32.56</costPerShare> ' <todayCommissions>0</todayCommissions> ' <todayFees>0</todayFees> ' <todayPricePaid>0</todayPricePaid> ' <todayQuantity>0</todayQuantity> ' <Quick> ' <change>0</change> ' <changePct>0</changePct> ' <lastTrade>1.43</lastTrade> ' <lastTradeTime>1343150700</lastTradeTime> ' <volume>1803</volume> ' </Quick> ' <lotsDetails>https://apisb.etrade.com/v1/accounts/E5Nd4LJBsEi_UyHm4Vio9g/portfolio/20841131</lotsDetails> ' <quoteDetails>https://apisb.etrade.com/v1/market/quote/RPI</quoteDetails> ' </Position> ' <Position> ' <positionId>4732131</positionId> ' <Product> ' <expiryDay>0</expiryDay> ' <expiryMonth>0</expiryMonth> ' <expiryYear>0</expiryYear> ' <securityType>EQ</securityType> ' <strikePrice>0</strikePrice> ' <symbol>RXD</symbol> ' </Product> ' <symbolDescription>RXD</symbolDescription> ' <dateAcquired>1335250800000</dateAcquired> ' <pricePaid>1</pricePaid> ' <commissions>2.99</commissions> ' <otherFees>0.0099</otherFees> ' <quantity>-3</quantity> ' <positionIndicator>TYPE5</positionIndicator> ' <positionType>SHORT</positionType> ' <daysGain>-1.296</daysGain> ' <daysGainPct>2.6799</daysGainPct> ' <marketValue>-49.6559</marketValue> ' <totalCost>0</totalCost> ' <totalGain>-49.6559</totalGain> ' <totalGainPct>-827.60</totalGainPct> ' <pctOfPortfolio>-0.0004</pctOfPortfolio> ' <costPerShare>0</costPerShare> ' <todayCommissions>0</todayCommissions> ' <todayFees>0</todayFees> ' <todayPricePaid>0</todayPricePaid> ' <todayQuantity>0</todayQuantity> ' <Quick> ' <change>0.432</change> ' <changePct>2.6799</changePct> ' <lastTrade>16.552</lastTrade> ' <lastTradeTime>1343157480</lastTradeTime> ' <volume>2200</volume> ' </Quick> ' <lotsDetails>https://apisb.etrade.com/v1/accounts/E5Nd4LJBsEi_UyHm4Vio9g/portfolio/4732131</lotsDetails> ' <quoteDetails>https://apisb.etrade.com/v1/market/quote/RXD</quoteDetails> ' </Position> ' <totalPages>1</totalPages> ' </AccountPortfolio> ' </PortfolioResponse> ' Dim xml As Chilkat.Xml Set xml = Chilkat.NewXml success = xml.LoadXml(resp.BodyStr) Debug.Print xml.GetXml() accountId = xml.GetChildIntValue("AccountPortfolio|accountId") i = 0 count_i = xml.NumChildrenHavingTag("AccountPortfolio|Position") Do While i < count_i xml.I = i positionId = xml.GetChildIntValue("AccountPortfolio|Position[i]|positionId") expiryDay = xml.GetChildIntValue("AccountPortfolio|Position[i]|Product|expiryDay") expiryMonth = xml.GetChildIntValue("AccountPortfolio|Position[i]|Product|expiryMonth") expiryYear = xml.GetChildIntValue("AccountPortfolio|Position[i]|Product|expiryYear") securityType = xml.GetChildContent("AccountPortfolio|Position[i]|Product|securityType") strikePrice = xml.GetChildIntValue("AccountPortfolio|Position[i]|Product|strikePrice") symbol = xml.GetChildContent("AccountPortfolio|Position[i]|Product|symbol") symbolDescription = xml.GetChildContent("AccountPortfolio|Position[i]|symbolDescription") dateAcquired = xml.GetChildContent("AccountPortfolio|Position[i]|dateAcquired") pricePaid = xml.GetChildContent("AccountPortfolio|Position[i]|pricePaid") commissions = xml.GetChildContent("AccountPortfolio|Position[i]|commissions") otherFees = xml.GetChildContent("AccountPortfolio|Position[i]|otherFees") quantity = xml.GetChildIntValue("AccountPortfolio|Position[i]|quantity") positionIndicator = xml.GetChildContent("AccountPortfolio|Position[i]|positionIndicator") positionType = xml.GetChildContent("AccountPortfolio|Position[i]|positionType") daysGain = xml.GetChildContent("AccountPortfolio|Position[i]|daysGain") daysGainPct = xml.GetChildContent("AccountPortfolio|Position[i]|daysGainPct") marketValue = xml.GetChildContent("AccountPortfolio|Position[i]|marketValue") totalCost = xml.GetChildContent("AccountPortfolio|Position[i]|totalCost") totalGain = xml.GetChildContent("AccountPortfolio|Position[i]|totalGain") totalGainPct = xml.GetChildContent("AccountPortfolio|Position[i]|totalGainPct") pctOfPortfolio = xml.GetChildContent("AccountPortfolio|Position[i]|pctOfPortfolio") costPerShare = xml.GetChildContent("AccountPortfolio|Position[i]|costPerShare") todayCommissions = xml.GetChildIntValue("AccountPortfolio|Position[i]|todayCommissions") todayFees = xml.GetChildIntValue("AccountPortfolio|Position[i]|todayFees") todayPricePaid = xml.GetChildIntValue("AccountPortfolio|Position[i]|todayPricePaid") todayQuantity = xml.GetChildIntValue("AccountPortfolio|Position[i]|todayQuantity") change = xml.GetChildContent("AccountPortfolio|Position[i]|Quick|change") changePct = xml.GetChildContent("AccountPortfolio|Position[i]|Quick|changePct") lastTrade = xml.GetChildContent("AccountPortfolio|Position[i]|Quick|lastTrade") lastTradeTime = xml.GetChildIntValue("AccountPortfolio|Position[i]|Quick|lastTradeTime") volume = xml.GetChildIntValue("AccountPortfolio|Position[i]|Quick|volume") lotsDetails = xml.GetChildContent("AccountPortfolio|Position[i]|lotsDetails") quoteDetails = xml.GetChildContent("AccountPortfolio|Position[i]|quoteDetails") i = i + 1 Loop totalPages = xml.GetChildIntValue("AccountPortfolio|totalPages") Debug.Print "Success." |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.