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
(Tcl) ETrade v1 Preview OrderGets the order details for a selected brokerage account based on the search criteria provided.
load ./chilkat.dll # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set http [new_CkHttp] CkHttp_put_OAuth1 $http 1 CkHttp_put_OAuthVerifier $http "" CkHttp_put_OAuthConsumerKey $http "ETRADE_CONSUMER_KEY" CkHttp_put_OAuthConsumerSecret $http "ETRADE_CONSUMER_SECRET" # Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2. set json [new_CkJsonObject] set success [CkJsonObject_LoadFile $json "qa_data/tokens/etrade.json"] if {$success != 1} then { puts "Failed to load OAuth1 token" delete_CkHttp $http delete_CkJsonObject $json exit } CkHttp_put_OAuthToken $http [CkJsonObject_stringOf $json "oauth_token"] CkHttp_put_OAuthTokenSecret $http [CkJsonObject_stringOf $json "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> set xml [new_CkXml] CkXml_put_Tag $xml "PreviewOrderRequest" CkXml_UpdateChildContent $xml "orderType" "EQ" CkXml_UpdateChildContent $xml "clientOrderId" "sdfer333" CkXml_UpdateChildContent $xml "Order|allOrNone" "false" CkXml_UpdateChildContent $xml "Order|priceType" "LIMIT" CkXml_UpdateChildContent $xml "Order|orderTerm" "GOOD_FOR_DAY" CkXml_UpdateChildContent $xml "Order|marketSession" "REGULAR" CkXml_UpdateChildContent $xml "Order|stopPrice" "" CkXml_UpdateChildContent $xml "Order|limitPrice" "188.51" CkXml_UpdateChildContent $xml "Order|Instrument|Product|securityType" "EQ" CkXml_UpdateChildContent $xml "Order|Instrument|Product|symbol" "FB" CkXml_UpdateChildContent $xml "Order|Instrument|orderAction" "BUY" CkXml_UpdateChildContent $xml "Order|Instrument|quantityType" "QUANTITY" CkXml_UpdateChildContent $xml "Order|Instrument|quantity" "10" set xmlContent [CkXml_getXml $xml] set endpointUrl "https://apisb.etrade.com/v1/accounts/{accountIdKey}/orders/preview" # resp is a CkHttpResponse set resp [CkHttp_PostXml $http $endpointUrl $xmlContent "utf-8"] if {[CkHttp_get_LastMethodSuccess $http] != 1} then { puts [CkHttp_lastErrorText $http] delete_CkHttp $http delete_CkJsonObject $json delete_CkXml $xml exit } # A 200 status code indicates success. set statusCode [CkHttpResponse_get_StatusCode $resp] puts "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... CkXml_LoadXml $xml [CkHttpResponse_bodyStr $resp] delete_CkHttpResponse $resp set orderType [CkXml_getChildContent $xml "orderType"] set totalOrderValue [CkXml_getChildContent $xml "totalOrderValue"] set orderTerm [CkXml_getChildContent $xml "Order|orderTerm"] set priceType [CkXml_getChildContent $xml "Order|priceType"] set limitPrice [CkXml_getChildContent $xml "Order|limitPrice"] set stopPrice [CkXml_GetChildIntValue $xml "Order|stopPrice"] set marketSession [CkXml_getChildContent $xml "Order|marketSession"] set allOrNone [CkXml_getChildContent $xml "Order|allOrNone"] set symbol [CkXml_getChildContent $xml "Order|Instrument|Product|symbol"] set securityType [CkXml_getChildContent $xml "Order|Instrument|Product|securityType"] set symbolDescription [CkXml_getChildContent $xml "Order|Instrument|symbolDescription"] set orderAction [CkXml_getChildContent $xml "Order|Instrument|orderAction"] set quantityType [CkXml_getChildContent $xml "Order|Instrument|quantityType"] set quantity [CkXml_GetChildIntValue $xml "Order|Instrument|quantity"] set cancelQuantity [CkXml_getChildContent $xml "Order|Instrument|cancelQuantity"] set reserveOrder [CkXml_getChildContent $xml "Order|Instrument|reserveOrder"] set reserveQuantity [CkXml_getChildContent $xml "Order|Instrument|reserveQuantity"] set i 0 set count_i [CkXml_NumChildrenHavingTag $xml "Order|messages|Message"] while {$i < $count_i} { CkXml_put_I $xml $i set code [CkXml_GetChildIntValue $xml "Order|messages|Message[i]|code"] set description [CkXml_getChildContent $xml "Order|messages|Message[i]|description"] set v_type [CkXml_getChildContent $xml "Order|messages|Message[i]|type"] set i [expr $i + 1] } set egQual [CkXml_getChildContent $xml "Order|egQual"] set estimatedCommission [CkXml_getChildContent $xml "Order|estimatedCommission"] set estimatedTotalAmount [CkXml_getChildContent $xml "Order|estimatedTotalAmount"] set netPrice [CkXml_GetChildIntValue $xml "Order|netPrice"] set netBid [CkXml_GetChildIntValue $xml "Order|netBid"] set netAsk [CkXml_GetChildIntValue $xml "Order|netAsk"] set gcd [CkXml_GetChildIntValue $xml "Order|gcd"] set previewId [CkXml_GetChildIntValue $xml "PreviewIds|previewId"] set previewTime [CkXml_getChildContent $xml "previewTime"] set dstFlag [CkXml_getChildContent $xml "dstFlag"] set accountId [CkXml_GetChildIntValue $xml "accountId"] set optionLevelCd [CkXml_GetChildIntValue $xml "optionLevelCd"] set marginLevelCd [CkXml_getChildContent $xml "marginLevelCd"] set ahDisclosureFlag [CkXml_getChildContent $xml "Disclosure|ahDisclosureFlag"] set aoDisclosureFlag [CkXml_getChildContent $xml "Disclosure|aoDisclosureFlag"] set conditionalDisclosureFlag [CkXml_getChildContent $xml "Disclosure|conditionalDisclosureFlag"] set ehDisclosureFlag [CkXml_getChildContent $xml "Disclosure|ehDisclosureFlag"] set marginBuyingPower [CkXml_getChildContent $xml "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> delete_CkHttp $http delete_CkJsonObject $json delete_CkXml $xml |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.