PowerShell
PowerShell
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 PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$http = New-Object Chilkat.Http
$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.
$json = New-Object Chilkat.JsonObject
$success = $json.LoadFile("qa_data/tokens/etrade.json")
if ($success -ne $true) {
$("Failed to load OAuth1 token")
exit
}
$http.OAuthToken = $json.StringOf("oauth_token")
$http.OAuthTokenSecret = $json.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>
$xml = New-Object Chilkat.Xml
$xml.Tag = "PreviewOrderRequest"
$xml.UpdateChildContent("orderType","EQ")
$xml.UpdateChildContent("clientOrderId","sdfer333")
$xml.UpdateChildContent("Order|allOrNone","false")
$xml.UpdateChildContent("Order|priceType","LIMIT")
$xml.UpdateChildContent("Order|orderTerm","GOOD_FOR_DAY")
$xml.UpdateChildContent("Order|marketSession","REGULAR")
$xml.UpdateChildContent("Order|stopPrice","")
$xml.UpdateChildContent("Order|limitPrice","188.51")
$xml.UpdateChildContent("Order|Instrument|Product|securityType","EQ")
$xml.UpdateChildContent("Order|Instrument|Product|symbol","FB")
$xml.UpdateChildContent("Order|Instrument|orderAction","BUY")
$xml.UpdateChildContent("Order|Instrument|quantityType","QUANTITY")
$xml.UpdateChildContent("Order|Instrument|quantity","10")
$xmlContent = $xml.GetXml()
$endpointUrl = "https://apisb.etrade.com/v1/accounts/{accountIdKey}/orders/preview"
$resp = New-Object Chilkat.HttpResponse
$success = $http.HttpStr("POST",$endpointUrl,$xmlContent,"utf-8","application/xml",$resp)
if ($success -eq $false) {
$($http.LastErrorText)
exit
}
# A 200 status code indicates success.
$statusCode = $resp.StatusCode
$("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.LoadXml($resp.BodyStr)
$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")
$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")
$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")
while ($i -lt $count_i) {
$xml.I = $i
$code = $xml.GetChildIntValue("Order|messages|Message[i]|code")
$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")
$netBid = $xml.GetChildIntValue("Order|netBid")
$netAsk = $xml.GetChildIntValue("Order|netAsk")
$gcd = $xml.GetChildIntValue("Order|gcd")
$previewId = $xml.GetChildIntValue("PreviewIds|previewId")
$previewTime = $xml.GetChildContent("previewTime")
$dstFlag = $xml.GetChildContent("dstFlag")
$accountId = $xml.GetChildIntValue("accountId")
$optionLevelCd = $xml.GetChildIntValue("optionLevelCd")
$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>