Sample code for 30+ languages & platforms
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

AutoIt
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>