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 ActiveX) ETrade v1 Preview OrderGets the order details for a selected brokerage account based on the search criteria provided.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var http: TChilkatHttp; json: TChilkatJsonObject; success: Integer; xml: TChilkatXml; xmlContent: WideString; endpointUrl: WideString; resp: IChilkatHttpResponse; statusCode: Integer; tagPath: WideString; orderType: WideString; totalOrderValue: WideString; orderTerm: WideString; priceType: WideString; limitPrice: WideString; stopPrice: Integer; marketSession: WideString; allOrNone: WideString; symbol: WideString; securityType: WideString; symbolDescription: WideString; orderAction: WideString; quantityType: WideString; quantity: Integer; cancelQuantity: WideString; reserveOrder: WideString; reserveQuantity: WideString; i: Integer; count_i: Integer; code: Integer; description: WideString; v_type: WideString; egQual: WideString; estimatedCommission: WideString; estimatedTotalAmount: WideString; netPrice: Integer; netBid: Integer; netAsk: Integer; gcd: Integer; previewId: Integer; previewTime: WideString; dstFlag: WideString; accountId: Integer; optionLevelCd: Integer; marginLevelCd: WideString; ahDisclosureFlag: WideString; aoDisclosureFlag: WideString; conditionalDisclosureFlag: WideString; ehDisclosureFlag: WideString; marginBuyingPower: WideString; begin // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. http := TChilkatHttp.Create(Self); http.OAuth1 := 1; 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. json := TChilkatJsonObject.Create(Self); success := json.LoadFile('qa_data/tokens/etrade.json'); if (success <> 1) then begin Memo1.Lines.Add('Failed to load OAuth1 token'); Exit; end; http.OAuthToken := json.StringOf('oauth_token'); http.OAuthTokenSecret := json.StringOf('oauth_token_secret'); // See the ETrade v1 API documentation HERE. // Sample XML Request // Use this online tool to generate the code from sample XML: // Generate Code to Create XML // <?xml version="1.0" encoding="UTF-8"?> // <PreviewOrderRequest> // <orderType>EQ</orderType> // <clientOrderId>sdfer333</clientOrderId> // <Order> // <allOrNone>false</allOrNone> // <priceType>LIMIT</priceType> // <orderTerm>GOOD_FOR_DAY</orderTerm> // <marketSession>REGULAR</marketSession> // <stopPrice /> // <limitPrice>188.51</limitPrice> // <Instrument> // <Product> // <securityType>EQ</securityType> // <symbol>FB</symbol> // </Product> // <orderAction>BUY</orderAction> // <quantityType>QUANTITY</quantityType> // <quantity>10</quantity> // </Instrument> // </Order> // </PreviewOrderRequest> xml := TChilkatXml.Create(Self); xml.Tag := 'PreviewOrderRequest'; xml.UpdateChildContent('orderType','EQ'); xml.UpdateChildContent('clientOrderId','sdfer333'); xml.UpdateChildContent('Order|allOrNone','false'); xml.UpdateChildContent('Order|priceType','LIMIT'); xml.UpdateChildContent('Order|orderTerm','GOOD_FOR_DAY'); xml.UpdateChildContent('Order|marketSession','REGULAR'); xml.UpdateChildContent('Order|stopPrice',''); xml.UpdateChildContent('Order|limitPrice','188.51'); xml.UpdateChildContent('Order|Instrument|Product|securityType','EQ'); xml.UpdateChildContent('Order|Instrument|Product|symbol','FB'); xml.UpdateChildContent('Order|Instrument|orderAction','BUY'); xml.UpdateChildContent('Order|Instrument|quantityType','QUANTITY'); xml.UpdateChildContent('Order|Instrument|quantity','10'); xmlContent := xml.GetXml(); endpointUrl := 'https://apisb.etrade.com/v1/accounts/{accountIdKey}/orders/preview'; resp := http.PostXml(endpointUrl,xmlContent,'utf-8'); if (http.LastMethodSuccess <> 1) then begin Memo1.Lines.Add(http.LastErrorText); Exit; end; // A 200 status code indicates success. statusCode := resp.StatusCode; Memo1.Lines.Add('statusCode = ' + IntToStr(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... xml.LoadXml(resp.BodyStr); orderType := xml.GetChildContent('orderType'); totalOrderValue := xml.GetChildContent('totalOrderValue'); orderTerm := xml.GetChildContent('Order|orderTerm'); priceType := xml.GetChildContent('Order|priceType'); limitPrice := xml.GetChildContent('Order|limitPrice'); stopPrice := xml.GetChildIntValue('Order|stopPrice'); marketSession := xml.GetChildContent('Order|marketSession'); allOrNone := xml.GetChildContent('Order|allOrNone'); symbol := xml.GetChildContent('Order|Instrument|Product|symbol'); securityType := xml.GetChildContent('Order|Instrument|Product|securityType'); symbolDescription := xml.GetChildContent('Order|Instrument|symbolDescription'); orderAction := xml.GetChildContent('Order|Instrument|orderAction'); quantityType := xml.GetChildContent('Order|Instrument|quantityType'); quantity := xml.GetChildIntValue('Order|Instrument|quantity'); cancelQuantity := xml.GetChildContent('Order|Instrument|cancelQuantity'); reserveOrder := xml.GetChildContent('Order|Instrument|reserveOrder'); reserveQuantity := xml.GetChildContent('Order|Instrument|reserveQuantity'); i := 0; count_i := xml.NumChildrenHavingTag('Order|messages|Message'); while i < count_i do begin xml.I := i; code := xml.GetChildIntValue('Order|messages|Message[i]|code'); description := xml.GetChildContent('Order|messages|Message[i]|description'); v_type := xml.GetChildContent('Order|messages|Message[i]|type'); i := i + 1; end; egQual := xml.GetChildContent('Order|egQual'); estimatedCommission := xml.GetChildContent('Order|estimatedCommission'); estimatedTotalAmount := xml.GetChildContent('Order|estimatedTotalAmount'); netPrice := xml.GetChildIntValue('Order|netPrice'); netBid := xml.GetChildIntValue('Order|netBid'); netAsk := xml.GetChildIntValue('Order|netAsk'); gcd := xml.GetChildIntValue('Order|gcd'); previewId := xml.GetChildIntValue('PreviewIds|previewId'); previewTime := xml.GetChildContent('previewTime'); dstFlag := xml.GetChildContent('dstFlag'); accountId := xml.GetChildIntValue('accountId'); optionLevelCd := xml.GetChildIntValue('optionLevelCd'); marginLevelCd := xml.GetChildContent('marginLevelCd'); ahDisclosureFlag := xml.GetChildContent('Disclosure|ahDisclosureFlag'); aoDisclosureFlag := xml.GetChildContent('Disclosure|aoDisclosureFlag'); conditionalDisclosureFlag := xml.GetChildContent('Disclosure|conditionalDisclosureFlag'); ehDisclosureFlag := xml.GetChildContent('Disclosure|ehDisclosureFlag'); marginBuyingPower := xml.GetChildContent('marginBuyingPower'); // Sample XML Response // <?xml version="1.0" encoding="UTF-8"?> // <PreviewOrderResponse> // <orderType>EQ</orderType> // <totalOrderValue>1892.05</totalOrderValue> // <Order> // <orderTerm>GOOD_FOR_DAY</orderTerm> // <priceType>LIMIT</priceType> // <limitPrice>188.51</limitPrice> // <stopPrice>0</stopPrice> // <marketSession>REGULAR</marketSession> // <allOrNone>false</allOrNone> // <Instrument> // <Product> // <symbol>FB</symbol> // <securityType>EQ</securityType> // </Product> // <symbolDescription>FACEBOOK INC CL A</symbolDescription> // <orderAction>BUY</orderAction> // <quantityType>QUANTITY</quantityType> // <quantity>10</quantity> // <cancelQuantity>0.0</cancelQuantity> // <reserveOrder>true</reserveOrder> // <reserveQuantity>0.0</reserveQuantity> // </Instrument> // <messages> // <Message> // <code>1042</code> // <description>200|You have an existing open order for this security on the same side of the market. If you did not intend to place a second order for this security, please modify your order now.</description> // <type>WARNING</type> // </Message> // <Message> // <code>3093</code> // <description>Position Concentrated.</description> // <type>WARNING</type> // </Message> // </messages> // <egQual>EG_QUAL_NOT_A_MARKET_ORDER</egQual> // <estimatedCommission>6.95</estimatedCommission> // <estimatedTotalAmount>1892.05</estimatedTotalAmount> // <netPrice>0</netPrice> // <netBid>0</netBid> // <netAsk>0</netAsk> // <gcd>0</gcd> // <ratio /> // </Order> // <PreviewIds> // <previewId>1020563279</previewId> // </PreviewIds> // <previewTime>1529018458516</previewTime> // <dstFlag>true</dstFlag> // <accountId>84246841</accountId> // <optionLevelCd>4</optionLevelCd> // <marginLevelCd>MARGIN_TRADING_ALLOWED</marginLevelCd> // <Disclosure> // <ahDisclosureFlag>false</ahDisclosureFlag> // <aoDisclosureFlag>false</aoDisclosureFlag> // <conditionalDisclosureFlag>true</conditionalDisclosureFlag> // <ehDisclosureFlag>false</ehDisclosureFlag> // </Disclosure> // <marginBuyingPower>86758.05</marginBuyingPower> // </PreviewOrderResponse> end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.