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 Preview OrderThe Preview Order API is used to submit an order request for preview before placing it. For more information, see https://apisb.etrade.com/docs/api/order/api-order-v1.html#/definition/orderPreview
Use ChilkatAx-win32.pkg Procedure Test Handle hoHttp Handle hoJsonToken Boolean iSuccess String sSandboxUrl String sLiveUrl Handle hoXml Variant vResp Handle hoResp String sOrderType String sTotalOrderValue 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 i Integer iCount_i Integer iCode String sDescription String sV_type String sEgQual String sEstimatedCommission String sEstimatedTotalAmount Integer iNetPrice Integer iNetBid Integer iNetAsk Integer iGcd Integer iPreviewId String sPreviewTime String sDstFlag Integer iAccountId Integer iOptionLevelCd String sMarginLevelCd String sAhDisclosureFlag String sAoDisclosureFlag String sConditionalDisclosureFlag String sEhDisclosureFlag String sCurrentBp String sCurrentNetBp String sCurrentOor String sCurrentOrderImpact String sNetBp String sTemp1 Integer iTemp1 Boolean bTemp1 // This 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 Authorization Get Create (RefClass(cComChilkatJsonObject)) To hoJsonToken If (Not(IsComObjectCreated(hoJsonToken))) Begin Send CreateComObject of hoJsonToken End Get ComLoadFile Of hoJsonToken "qa_data/tokens/etrade.json" To iSuccess If (iSuccess <> True) Begin Showln "Failed to load OAuth1 token" Procedure_Return End Get ComStringOf Of hoJsonToken "oauth_token" To sTemp1 Set ComOAuthToken Of hoHttp To sTemp1 Get ComStringOf Of hoJsonToken "oauth_token_secret" To sTemp1 Set ComOAuthTokenSecret Of hoHttp To sTemp1 Move "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/orders/preview" To sSandboxUrl Move "https://api.etrade.com/v1/accounts/{$accountIdKey}/orders/preview" To sLiveUrl Get ComSetUrlVar Of hoHttp "accountIdKey" "6_Dpy0rmuQ9cu9IbTfvF2A" To iSuccess // Send a POST with the following XML body // 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> Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End Set ComTag Of hoXml To "PreviewOrderRequest" Send ComUpdateChildContent To hoXml "orderType" "EQ" Send ComUpdateChildContent To hoXml "clientOrderId" "sdfer333" 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" "10" Set ComEmitCompact Of hoXml To True Send ComSetRequestHeader To hoHttp "Content-Type" "application/xml" Get ComGetXml Of hoXml To sTemp1 Get ComPostXml Of hoHttp sSandboxUrl sTemp1 "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 // Make sure a successful response was received. Get ComStatusCode Of hoResp To iTemp1 If (iTemp1 > 200) Begin Get ComStatusLine Of hoResp To sTemp1 Showln sTemp1 Get ComHeader Of hoResp To sTemp1 Showln sTemp1 Get ComBodyStr Of hoResp To sTemp1 Showln sTemp1 Procedure_Return End // Sample XML response: // Use this online tool to generate parsing code from sample XML: // Generate Parsing Code from XML // <?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> // <cashBpDetails> // <settled> // <currentBp>5000.00</currentBp> // <currentNetBp>5000.00</currentNetBp> // <currentOor>0.00</currentOor> // <currentOrderImpact>64.95</currentOrderImpact> // <netBp>4935.05</netBp> // </settled> // <settledUnsettled> // <currentBp>5000.00</currentBp> // <currentNetBp>5000.00</currentNetBp> // <currentOor>0.00</currentOor> // <currentOrderImpact>64.95</currentOrderImpact> // <netBp>4935.05</netBp> // </settledUnsettled> // </cashBpDetails> // </PreviewOrderResponse> Get ComBodyStr Of hoResp To sTemp1 Get ComLoadXml Of hoXml sTemp1 To iSuccess Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 Get ComGetChildContent Of hoXml "orderType" To sOrderType Get ComGetChildContent Of hoXml "totalOrderValue" To sTotalOrderValue 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 Move 0 To i Get ComNumChildrenHavingTag Of hoXml "Order|messages|Message" To iCount_i While (i < iCount_i) Set ComI Of hoXml To i Get ComGetChildIntValue Of hoXml "Order|messages|Message[i]|code" To iCode Get ComGetChildContent Of hoXml "Order|messages|Message[i]|description" To sDescription Get ComGetChildContent Of hoXml "Order|messages|Message[i]|type" To sV_type Move (i + 1) To i Loop 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 ComGetChildIntValue Of hoXml "PreviewIds|previewId" To iPreviewId Get ComGetChildContent Of hoXml "previewTime" To sPreviewTime Get ComGetChildContent Of hoXml "dstFlag" To sDstFlag Get ComGetChildIntValue Of hoXml "accountId" To iAccountId Get ComGetChildIntValue Of hoXml "optionLevelCd" To iOptionLevelCd Get ComGetChildContent Of hoXml "marginLevelCd" To sMarginLevelCd Get ComGetChildContent Of hoXml "Disclosure|ahDisclosureFlag" To sAhDisclosureFlag Get ComGetChildContent Of hoXml "Disclosure|aoDisclosureFlag" To sAoDisclosureFlag Get ComGetChildContent Of hoXml "Disclosure|conditionalDisclosureFlag" To sConditionalDisclosureFlag Get ComGetChildContent Of hoXml "Disclosure|ehDisclosureFlag" To sEhDisclosureFlag Get ComGetChildContent Of hoXml "cashBpDetails|settled|currentBp" To sCurrentBp Get ComGetChildContent Of hoXml "cashBpDetails|settled|currentNetBp" To sCurrentNetBp Get ComGetChildContent Of hoXml "cashBpDetails|settled|currentOor" To sCurrentOor Get ComGetChildContent Of hoXml "cashBpDetails|settled|currentOrderImpact" To sCurrentOrderImpact Get ComGetChildContent Of hoXml "cashBpDetails|settled|netBp" To sNetBp Get ComGetChildContent Of hoXml "cashBpDetails|settledUnsettled|currentBp" To sCurrentBp Get ComGetChildContent Of hoXml "cashBpDetails|settledUnsettled|currentNetBp" To sCurrentNetBp Get ComGetChildContent Of hoXml "cashBpDetails|settledUnsettled|currentOor" To sCurrentOor Get ComGetChildContent Of hoXml "cashBpDetails|settledUnsettled|currentOrderImpact" To sCurrentOrderImpact Get ComGetChildContent Of hoXml "cashBpDetails|settledUnsettled|netBp" To sNetBp Showln "Success." End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.