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
(Swift 3,4,5...) ETrade v1 Preview OrderGets the order details for a selected brokerage account based on the search criteria provided.
func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. let http = CkoHttp()! http.oAuth1 = true 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. let json = CkoJsonObject()! var success: Bool = json.loadFile("qa_data/tokens/etrade.json") if success != true { print("Failed to load OAuth1 token") return } http.oAuthToken = json.string(of: "oauth_token") http.oAuthTokenSecret = json.string(of: "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> let xml = CkoXml()! xml.tag = "PreviewOrderRequest" xml.updateChildContent("orderType", value: "EQ") xml.updateChildContent("clientOrderId", value: "sdfer333") xml.updateChildContent("Order|allOrNone", value: "false") xml.updateChildContent("Order|priceType", value: "LIMIT") xml.updateChildContent("Order|orderTerm", value: "GOOD_FOR_DAY") xml.updateChildContent("Order|marketSession", value: "REGULAR") xml.updateChildContent("Order|stopPrice", value: "") xml.updateChildContent("Order|limitPrice", value: "188.51") xml.updateChildContent("Order|Instrument|Product|securityType", value: "EQ") xml.updateChildContent("Order|Instrument|Product|symbol", value: "FB") xml.updateChildContent("Order|Instrument|orderAction", value: "BUY") xml.updateChildContent("Order|Instrument|quantityType", value: "QUANTITY") xml.updateChildContent("Order|Instrument|quantity", value: "10") var xmlContent: String? = xml.getXml() var endpointUrl: String? = "https://apisb.etrade.com/v1/accounts/{accountIdKey}/orders/preview" var resp: CkoHttpResponse? = http.postXml(endpointUrl, xmlDoc: xmlContent, charset: "utf-8") if http.lastMethodSuccess != true { print("\(http.lastErrorText!)") return } // A 200 status code indicates success. var statusCode: Int = resp!.statusCode.intValue print("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... xml.load(resp!.bodyStr) resp = nil var tagPath: String? var orderType: String? var totalOrderValue: String? var orderTerm: String? var priceType: String? var limitPrice: String? var stopPrice: Int var marketSession: String? var allOrNone: String? var symbol: String? var securityType: String? var symbolDescription: String? var orderAction: String? var quantityType: String? var quantity: Int var cancelQuantity: String? var reserveOrder: String? var reserveQuantity: String? var i: Int var count_i: Int var code: Int var description: String? var v_type: String? var egQual: String? var estimatedCommission: String? var estimatedTotalAmount: String? var netPrice: Int var netBid: Int var netAsk: Int var gcd: Int var previewId: Int var previewTime: String? var dstFlag: String? var accountId: Int var optionLevelCd: Int var marginLevelCd: String? var ahDisclosureFlag: String? var aoDisclosureFlag: String? var conditionalDisclosureFlag: String? var ehDisclosureFlag: String? var marginBuyingPower: String? 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").intValue 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").intValue 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").intValue while i < count_i { xml.i = i code = xml.getChildIntValue("Order|messages|Message[i]|code").intValue description = xml.getChildContent("Order|messages|Message[i]|description") v_type = xml.getChildContent("Order|messages|Message[i]|type") i = i + 1 } egQual = xml.getChildContent("Order|egQual") estimatedCommission = xml.getChildContent("Order|estimatedCommission") estimatedTotalAmount = xml.getChildContent("Order|estimatedTotalAmount") netPrice = xml.getChildIntValue("Order|netPrice").intValue netBid = xml.getChildIntValue("Order|netBid").intValue netAsk = xml.getChildIntValue("Order|netAsk").intValue gcd = xml.getChildIntValue("Order|gcd").intValue previewId = xml.getChildIntValue("PreviewIds|previewId").intValue previewTime = xml.getChildContent("previewTime") dstFlag = xml.getChildContent("dstFlag") accountId = xml.getChildIntValue("accountId").intValue optionLevelCd = xml.getChildIntValue("optionLevelCd").intValue 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> } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.