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
(Objective-C) ETrade v1 View PortfolioGet portfolio information for a selected brokerage account.
#import <CkoHttp.h> #import <CkoJsonObject.h> #import <NSString.h> #import <CkoXml.h> // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkoHttp *http = [[CkoHttp alloc] init]; http.OAuth1 = YES; http.OAuthVerifier = @""; http.OAuthConsumerKey = @"ETRADE_CONSUMER_KEY"; http.OAuthConsumerSecret = @"ETRADE_CONSUMER_SECRET"; // Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2. CkoJsonObject *json = [[CkoJsonObject alloc] init]; BOOL success = [json LoadFile: @"qa_data/tokens/etrade.json"]; if (success != YES) { NSLog(@"%@",@"Failed to load OAuth1 token"); return; } http.OAuthToken = [json StringOf: @"oauth_token"]; http.OAuthTokenSecret = [json StringOf: @"oauth_token_secret"]; // See the ETrade v1 API documentation HERE. [http SetUrlVar: @"accountIdKey" value: @"vsnhtF7d9jXxBy6HyaAC4vQ"]; NSString *respStr = [http QuickGetStr: @"https://apisb.etrade.com/v1/accounts/{$accountIdKey}/portfolio"]; if (http.LastMethodSuccess != YES) { NSLog(@"%@",http.LastErrorText); return; } // A 200 status code indicates success. int statusCode = [http.LastStatus intValue]; NSLog(@"%@%d",@"statusCode = ",statusCode); // Use the following online tool to generate parsing code from sample XML: // Generate Parsing Code from XML // A sample XML response is shown below... CkoXml *xml = [[CkoXml alloc] init]; [xml LoadXml: respStr]; NSString *tagPath = 0; int accountId; int i; int count_i; NSString *positionId = 0; int expiryDay; int expiryMonth; int expiryYear; NSString *securityType = 0; int strikePrice; NSString *symbol = 0; NSString *symbolDescription = 0; int dateAcquired; int pricePaid; int commissions; int otherFees; int quantity; NSString *positionIndicator = 0; NSString *positionType = 0; NSString *daysGain = 0; NSString *daysGainPct = 0; NSString *marketValue = 0; int totalCost; NSString *totalGain = 0; int totalGainPct; NSString *pctOfPortfolio = 0; int costPerShare; int todayCommissions; int todayFees; int todayPricePaid; int todayQuantity; NSString *adjPrevClose = 0; NSString *change = 0; NSString *changePct = 0; NSString *lastTrade = 0; int lastTradeTime; NSString *quoteStatus = 0; int volume; NSString *lotsDetails = 0; NSString *quoteDetails = 0; int totalPages; accountId = [[xml GetChildIntValue: @"AccountPortfolio|accountId"] intValue]; i = 0; count_i = [[xml NumChildrenHavingTag: @"AccountPortfolio|Position"] intValue]; while (i < count_i) { xml.I = [NSNumber numberWithInt: i]; positionId = [xml GetChildContent: @"AccountPortfolio|Position[i]|positionId"]; expiryDay = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|Product|expiryDay"] intValue]; expiryMonth = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|Product|expiryMonth"] intValue]; expiryYear = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|Product|expiryYear"] intValue]; securityType = [xml GetChildContent: @"AccountPortfolio|Position[i]|Product|securityType"]; strikePrice = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|Product|strikePrice"] intValue]; symbol = [xml GetChildContent: @"AccountPortfolio|Position[i]|Product|symbol"]; symbolDescription = [xml GetChildContent: @"AccountPortfolio|Position[i]|symbolDescription"]; dateAcquired = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|dateAcquired"] intValue]; pricePaid = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|pricePaid"] intValue]; commissions = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|commissions"] intValue]; otherFees = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|otherFees"] intValue]; quantity = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|quantity"] intValue]; 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 GetChildIntValue: @"AccountPortfolio|Position[i]|totalCost"] intValue]; totalGain = [xml GetChildContent: @"AccountPortfolio|Position[i]|totalGain"]; totalGainPct = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|totalGainPct"] intValue]; pctOfPortfolio = [xml GetChildContent: @"AccountPortfolio|Position[i]|pctOfPortfolio"]; costPerShare = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|costPerShare"] intValue]; todayCommissions = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|todayCommissions"] intValue]; todayFees = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|todayFees"] intValue]; todayPricePaid = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|todayPricePaid"] intValue]; todayQuantity = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|todayQuantity"] intValue]; adjPrevClose = [xml GetChildContent: @"AccountPortfolio|Position[i]|adjPrevClose"]; 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"] intValue]; quoteStatus = [xml GetChildContent: @"AccountPortfolio|Position[i]|Quick|quoteStatus"]; volume = [[xml GetChildIntValue: @"AccountPortfolio|Position[i]|Quick|volume"] intValue]; lotsDetails = [xml GetChildContent: @"AccountPortfolio|Position[i]|lotsDetails"]; quoteDetails = [xml GetChildContent: @"AccountPortfolio|Position[i]|quoteDetails"]; i = i + 1; } totalPages = [[xml GetChildIntValue: @"AccountPortfolio|totalPages"] intValue]; // <?xml version="1.0" encoding="UTF-8"?> // <PortfolioResponse> // <AccountPortfolio> // <accountId>83554788</accountId> // <Position> // <positionId>10087531</positionId> // <Product> // <expiryDay>0</expiryDay> // <expiryMonth>0</expiryMonth> // <expiryYear>0</expiryYear> // <securityType>EQ</securityType> // <strikePrice>0</strikePrice> // <symbol>A</symbol> // </Product> // <symbolDescription>A</symbolDescription> // <dateAcquired>-68400000</dateAcquired> // <pricePaid>0</pricePaid> // <commissions>0</commissions> // <otherFees>0</otherFees> // <quantity>-120</quantity> // <positionIndicator>TYPE2</positionIndicator> // <positionType>SHORT</positionType> // <daysGain>190.80</daysGain> // <daysGainPct>2.4472</daysGainPct> // <marketValue>-7605.60</marketValue> // <totalCost>0</totalCost> // <totalGain>-7605.60</totalGain> // <totalGainPct>0</totalGainPct> // <pctOfPortfolio>-0.0008</pctOfPortfolio> // <costPerShare>0</costPerShare> // <todayCommissions>0</todayCommissions> // <todayFees>0</todayFees> // <todayPricePaid>0</todayPricePaid> // <todayQuantity>0</todayQuantity> // <adjPrevClose>64.970000</adjPrevClose> // <Quick> // <change>-1.59</change> // <changePct>-2.4472</changePct> // <lastTrade>63.38</lastTrade> // <lastTradeTime>1529429280</lastTradeTime> // <quoteStatus>DELAYED</quoteStatus> // <volume>2431617</volume> // </Quick> // <lotsDetails>https://api.etrade.com/v1/accounts/JDIozUumZpHdgbIjMnAAHQ/portfolio/10087531</lotsDetails> // <quoteDetails>https://api.etrade.com/v1/market/quote/A</quoteDetails> // </Position> // <Position> // <positionId>140357348131</positionId> // <Product> // <expiryDay>0</expiryDay> // <expiryMonth>0</expiryMonth> // <expiryYear>0</expiryYear> // <securityType>EQ</securityType> // <strikePrice>0</strikePrice> // <symbol>TWTR</symbol> // </Product> // <symbolDescription>TWTR</symbolDescription> // <dateAcquired>-68400000</dateAcquired> // <pricePaid>0</pricePaid> // <commissions>0</commissions> // <otherFees>0</otherFees> // <quantity>3</quantity> // <positionIndicator>TYPE2</positionIndicator> // <positionType>LONG</positionType> // <daysGain>-3.915</daysGain> // <daysGainPct>-2.8369</daysGainPct> // <marketValue>134.085</marketValue> // <totalCost>0</totalCost> // <totalGain>134.085</totalGain> // <totalGainPct>0</totalGainPct> // <pctOfPortfolio>0.0235</pctOfPortfolio> // <costPerShare>0</costPerShare> // <todayCommissions>0</todayCommissions> // <todayFees>0</todayFees> // <todayPricePaid>0</todayPricePaid> // <todayQuantity>0</todayQuantity> // <adjPrevClose>46.000000</adjPrevClose> // <Quick> // <change>-1.305</change> // <changePct>-2.8369</changePct> // <lastTrade>44.695</lastTrade> // <lastTradeTime>1529429280</lastTradeTime> // <quoteStatus>DELAYED</quoteStatus> // <volume>26582141</volume> // </Quick> // <lotsDetails>https://api.etrade.com/v1/accounts/yIFaUoJ81qyAhgxLWRQ42g/portfolio/140357348131</lotsDetails> // <quoteDetails>https://api.etrade.com/v1/market/quote/TWTR</quoteDetails> // </Position> // <totalPages>1</totalPages> // </AccountPortfolio> // </PortfolioResponse> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.