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
(DataFlex) ETrade v1 Place OrderSubmits an order after it has been successfully previewed. (Your application must first send the POST to preview the order. Then it can send this POST to place the order.)
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp Handle hoJson Boolean iSuccess Handle hoXml String sXmlContent String sEndpointUrl Variant vResp Handle hoResp Integer iStatusCode String sTagPath String sOrderType String sOrderTerm String sPriceType String sLimitPrice Integer iStopPrice String sMarketSession String sAllOrNone String sSymbol String sSecurityType String sSymbolDescription String sOrderAction String sQuantityType Integer iQuantity String sCancelQuantity String sReserveOrder String sReserveQuantity Integer iCode String sDescription String sV_type String sEgQual String sEstimatedCommission String sEstimatedTotalAmount Integer iNetPrice Integer iNetBid Integer iNetAsk Integer iGcd String sDstFlag Integer iOptionLevelCd String sMarginLevelCd Integer iOrderId String sPlacedTime Integer iAccountId String sTemp1 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatHttp)) To hoHttp If (Not(IsComObjectCreated(hoHttp))) Begin Send CreateComObject of hoHttp End Set ComOAuth1 Of hoHttp To True Set ComOAuthVerifier Of hoHttp To "" Set ComOAuthConsumerKey Of hoHttp To "ETRADE_CONSUMER_KEY" Set ComOAuthConsumerSecret Of hoHttp To "ETRADE_CONSUMER_SECRET" // Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2. Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Get ComLoadFile Of hoJson "qa_data/tokens/etrade.json" To iSuccess If (iSuccess <> True) Begin Showln "Failed to load OAuth1 token" Procedure_Return End Get ComStringOf Of hoJson "oauth_token" To sTemp1 Set ComOAuthToken Of hoHttp To sTemp1 Get ComStringOf Of hoJson "oauth_token_secret" To sTemp1 Set ComOAuthTokenSecret Of hoHttp To sTemp1 // 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"?> // <PlaceOrderRequest> // <orderType>EQ</orderType> // <clientOrderId>sd464333</clientOrderId> // <PreviewIds> // <previewId>730206520</previewId> // </PreviewIds> // <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>150</quantity> // </Instrument> // </Order> // </PlaceOrderRequest> Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End Set ComTag Of hoXml To "PlaceOrderRequest" Send ComUpdateChildContent To hoXml "orderType" "EQ" Send ComUpdateChildContent To hoXml "clientOrderId" "sd464333" Send ComUpdateChildContent To hoXml "PreviewIds|previewId" "730206520" Send ComUpdateChildContent To hoXml "Order|allOrNone" "false" Send ComUpdateChildContent To hoXml "Order|priceType" "LIMIT" Send ComUpdateChildContent To hoXml "Order|orderTerm" "GOOD_FOR_DAY" Send ComUpdateChildContent To hoXml "Order|marketSession" "REGULAR" Send ComUpdateChildContent To hoXml "Order|stopPrice" "" Send ComUpdateChildContent To hoXml "Order|limitPrice" "188.51" Send ComUpdateChildContent To hoXml "Order|Instrument|Product|securityType" "EQ" Send ComUpdateChildContent To hoXml "Order|Instrument|Product|symbol" "FB" Send ComUpdateChildContent To hoXml "Order|Instrument|orderAction" "BUY" Send ComUpdateChildContent To hoXml "Order|Instrument|quantityType" "QUANTITY" Send ComUpdateChildContent To hoXml "Order|Instrument|quantity" "150" Get ComGetXml Of hoXml To sXmlContent Move "https://apisb.etrade.com/v1/accounts/{accountIdKey}/orders/place" To sEndpointUrl Get ComPostXml Of hoHttp sEndpointUrl sXmlContent "utf-8" To vResp If (IsComObject(vResp)) Begin Get Create (RefClass(cComChilkatHttpResponse)) To hoResp Set pvComObject Of hoResp To vResp End Get ComLastMethodSuccess Of hoHttp To bTemp1 If (bTemp1 <> True) Begin Get ComLastErrorText Of hoHttp To sTemp1 Showln sTemp1 Procedure_Return End // A 200 status code indicates success. Get ComStatusCode Of hoResp To iStatusCode Showln "statusCode = " iStatusCode // Use the following online tool to generate parsing code from sample XML: // Generate Parsing Code from XML // A sample XML response is shown below... Get ComBodyStr Of hoResp To sTemp1 Get ComLoadXml Of hoXml sTemp1 To iSuccess Send Destroy of hoResp Get ComGetChildContent Of hoXml "orderType" To sOrderType Get ComGetChildContent Of hoXml "Order|orderTerm" To sOrderTerm Get ComGetChildContent Of hoXml "Order|priceType" To sPriceType Get ComGetChildContent Of hoXml "Order|limitPrice" To sLimitPrice Get ComGetChildIntValue Of hoXml "Order|stopPrice" To iStopPrice Get ComGetChildContent Of hoXml "Order|marketSession" To sMarketSession Get ComGetChildContent Of hoXml "Order|allOrNone" To sAllOrNone Get ComGetChildContent Of hoXml "Order|Instrument|Product|symbol" To sSymbol Get ComGetChildContent Of hoXml "Order|Instrument|Product|securityType" To sSecurityType Get ComGetChildContent Of hoXml "Order|Instrument|symbolDescription" To sSymbolDescription Get ComGetChildContent Of hoXml "Order|Instrument|orderAction" To sOrderAction Get ComGetChildContent Of hoXml "Order|Instrument|quantityType" To sQuantityType Get ComGetChildIntValue Of hoXml "Order|Instrument|quantity" To iQuantity Get ComGetChildContent Of hoXml "Order|Instrument|cancelQuantity" To sCancelQuantity Get ComGetChildContent Of hoXml "Order|Instrument|reserveOrder" To sReserveOrder Get ComGetChildContent Of hoXml "Order|Instrument|reserveQuantity" To sReserveQuantity Get ComGetChildIntValue Of hoXml "Order|messages|Message|code" To iCode Get ComGetChildContent Of hoXml "Order|messages|Message|description" To sDescription Get ComGetChildContent Of hoXml "Order|messages|Message|type" To sV_type Get ComGetChildContent Of hoXml "Order|egQual" To sEgQual Get ComGetChildContent Of hoXml "Order|estimatedCommission" To sEstimatedCommission Get ComGetChildContent Of hoXml "Order|estimatedTotalAmount" To sEstimatedTotalAmount Get ComGetChildIntValue Of hoXml "Order|netPrice" To iNetPrice Get ComGetChildIntValue Of hoXml "Order|netBid" To iNetBid Get ComGetChildIntValue Of hoXml "Order|netAsk" To iNetAsk Get ComGetChildIntValue Of hoXml "Order|gcd" To iGcd Get ComGetChildContent Of hoXml "dstFlag" To sDstFlag Get ComGetChildIntValue Of hoXml "optionLevelCd" To iOptionLevelCd Get ComGetChildContent Of hoXml "marginLevelCd" To sMarginLevelCd Get ComGetChildIntValue Of hoXml "OrderIds|orderId" To iOrderId Get ComGetChildContent Of hoXml "placedTime" To sPlacedTime Get ComGetChildIntValue Of hoXml "accountId" To iAccountId // Sample XML Response // <?xml version="1.0" encoding="UTF-8"?> // <PlaceOrderResponse> // <orderType>EQ</orderType> // <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>150</quantity> // <cancelQuantity>0.0</cancelQuantity> // <reserveOrder>true</reserveOrder> // <reserveQuantity>0.0</reserveQuantity> // </Instrument> // <messages> // <Message> // <code>1027</code> // <description>200|The market was closed when we received your order. It has been entered into our system and will be reviewed prior to market open on the next regular trading day. After market open, please check to make sure your order was accepted.</description> // <type>WARNING</type> // </Message> // </messages> // <egQual>EG_QUAL_NOT_A_MARKET_ORDER</egQual> // <estimatedCommission>6.95</estimatedCommission> // <estimatedTotalAmount>28283.45</estimatedTotalAmount> // <netPrice>0</netPrice> // <netBid>0</netBid> // <netAsk>0</netAsk> // <gcd>0</gcd> // <ratio /> // </Order> // <dstFlag>true</dstFlag> // <optionLevelCd>4</optionLevelCd> // <marginLevelCd>MARGIN_TRADING_ALLOWED</marginLevelCd> // <OrderIds> // <orderId>5</orderId> // </OrderIds> // <placedTime>1528764717641</placedTime> // <accountId>84312767</accountId> // </PlaceOrderResponse End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.