AutoIt
AutoIt
ETrade v1 Preview Order
See more HTTP Misc Examples
Gets the order details for a selected brokerage account based on the search criteria provided.Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oHttp = ObjCreate("Chilkat.Http")
$oHttp.OAuth1 = True
$oHttp.OAuthVerifier = ""
$oHttp.OAuthConsumerKey = "ETRADE_CONSUMER_KEY"
$oHttp.OAuthConsumerSecret = "ETRADE_CONSUMER_SECRET"
; Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2.
$oJson = ObjCreate("Chilkat.JsonObject")
$bSuccess = $oJson.LoadFile("qa_data/tokens/etrade.json")
If ($bSuccess <> True) Then
ConsoleWrite("Failed to load OAuth1 token" & @CRLF)
Exit
EndIf
$oHttp.OAuthToken = $oJson.StringOf("oauth_token")
$oHttp.OAuthTokenSecret = $oJson.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>
$oXml = ObjCreate("Chilkat.Xml")
$oXml.Tag = "PreviewOrderRequest"
$oXml.UpdateChildContent "orderType","EQ"
$oXml.UpdateChildContent "clientOrderId","sdfer333"
$oXml.UpdateChildContent "Order|allOrNone","false"
$oXml.UpdateChildContent "Order|priceType","LIMIT"
$oXml.UpdateChildContent "Order|orderTerm","GOOD_FOR_DAY"
$oXml.UpdateChildContent "Order|marketSession","REGULAR"
$oXml.UpdateChildContent "Order|stopPrice",""
$oXml.UpdateChildContent "Order|limitPrice","188.51"
$oXml.UpdateChildContent "Order|Instrument|Product|securityType","EQ"
$oXml.UpdateChildContent "Order|Instrument|Product|symbol","FB"
$oXml.UpdateChildContent "Order|Instrument|orderAction","BUY"
$oXml.UpdateChildContent "Order|Instrument|quantityType","QUANTITY"
$oXml.UpdateChildContent "Order|Instrument|quantity","10"
Local $sXmlContent = $oXml.GetXml()
Local $sEndpointUrl = "https://apisb.etrade.com/v1/accounts/{accountIdKey}/orders/preview"
$oResp = ObjCreate("Chilkat.HttpResponse")
$bSuccess = $oHttp.HttpStr("POST",$sEndpointUrl,$sXmlContent,"utf-8","application/xml",$oResp)
If ($bSuccess = False) Then
ConsoleWrite($oHttp.LastErrorText & @CRLF)
Exit
EndIf
; A 200 status code indicates success.
Local $iStatusCode = $oResp.StatusCode
ConsoleWrite("statusCode = " & $iStatusCode & @CRLF)
; Use the following online tool to generate parsing code from sample XML:
; Generate Parsing Code from XML
; A sample XML response is shown below...
$oXml.LoadXml($oResp.BodyStr)
Local $sTagPath
Local $sOrderType
Local $sTotalOrderValue
Local $sOrderTerm
Local $sPriceType
Local $sLimitPrice
Local $iStopPrice
Local $sMarketSession
Local $sAllOrNone
Local $symbol
Local $securityType
Local $symbolDescription
Local $sOrderAction
Local $sQuantityType
Local $iQuantity
Local $sCancelQuantity
Local $sReserveOrder
Local $sReserveQuantity
Local $i
Local $iCount_i
Local $iCode
Local $sDescription
Local $sV_type
Local $sEgQual
Local $sEstimatedCommission
Local $sEstimatedTotalAmount
Local $iNetPrice
Local $iNetBid
Local $iNetAsk
Local $iGcd
Local $iPreviewId
Local $sPreviewTime
Local $sDstFlag
Local $iAccountId
Local $iOptionLevelCd
Local $sMarginLevelCd
Local $sAhDisclosureFlag
Local $sAoDisclosureFlag
Local $sConditionalDisclosureFlag
Local $sEhDisclosureFlag
Local $sMarginBuyingPower
$sOrderType = $oXml.GetChildContent("orderType")
$sTotalOrderValue = $oXml.GetChildContent("totalOrderValue")
$sOrderTerm = $oXml.GetChildContent("Order|orderTerm")
$sPriceType = $oXml.GetChildContent("Order|priceType")
$sLimitPrice = $oXml.GetChildContent("Order|limitPrice")
$iStopPrice = $oXml.GetChildIntValue("Order|stopPrice")
$sMarketSession = $oXml.GetChildContent("Order|marketSession")
$sAllOrNone = $oXml.GetChildContent("Order|allOrNone")
$symbol = $oXml.GetChildContent("Order|Instrument|Product|symbol")
$securityType = $oXml.GetChildContent("Order|Instrument|Product|securityType")
$symbolDescription = $oXml.GetChildContent("Order|Instrument|symbolDescription")
$sOrderAction = $oXml.GetChildContent("Order|Instrument|orderAction")
$sQuantityType = $oXml.GetChildContent("Order|Instrument|quantityType")
$iQuantity = $oXml.GetChildIntValue("Order|Instrument|quantity")
$sCancelQuantity = $oXml.GetChildContent("Order|Instrument|cancelQuantity")
$sReserveOrder = $oXml.GetChildContent("Order|Instrument|reserveOrder")
$sReserveQuantity = $oXml.GetChildContent("Order|Instrument|reserveQuantity")
$i = 0
$iCount_i = $oXml.NumChildrenHavingTag("Order|messages|Message")
While $i < $iCount_i
$oXml.I = $i
$iCode = $oXml.GetChildIntValue("Order|messages|Message[i]|code")
$sDescription = $oXml.GetChildContent("Order|messages|Message[i]|description")
$sV_type = $oXml.GetChildContent("Order|messages|Message[i]|type")
$i = $i + 1
Wend
$sEgQual = $oXml.GetChildContent("Order|egQual")
$sEstimatedCommission = $oXml.GetChildContent("Order|estimatedCommission")
$sEstimatedTotalAmount = $oXml.GetChildContent("Order|estimatedTotalAmount")
$iNetPrice = $oXml.GetChildIntValue("Order|netPrice")
$iNetBid = $oXml.GetChildIntValue("Order|netBid")
$iNetAsk = $oXml.GetChildIntValue("Order|netAsk")
$iGcd = $oXml.GetChildIntValue("Order|gcd")
$iPreviewId = $oXml.GetChildIntValue("PreviewIds|previewId")
$sPreviewTime = $oXml.GetChildContent("previewTime")
$sDstFlag = $oXml.GetChildContent("dstFlag")
$iAccountId = $oXml.GetChildIntValue("accountId")
$iOptionLevelCd = $oXml.GetChildIntValue("optionLevelCd")
$sMarginLevelCd = $oXml.GetChildContent("marginLevelCd")
$sAhDisclosureFlag = $oXml.GetChildContent("Disclosure|ahDisclosureFlag")
$sAoDisclosureFlag = $oXml.GetChildContent("Disclosure|aoDisclosureFlag")
$sConditionalDisclosureFlag = $oXml.GetChildContent("Disclosure|conditionalDisclosureFlag")
$sEhDisclosureFlag = $oXml.GetChildContent("Disclosure|ehDisclosureFlag")
$sMarginBuyingPower = $oXml.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>