Sample code for 30+ languages & platforms
Chilkat2-Python

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 Chilkat2-Python Downloads

Chilkat2-Python
import sys
import chilkat2

success = False

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

http = chilkat2.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 = chilkat2.JsonObject()
success = json.LoadFile("qa_data/tokens/etrade.json")
if (success != True):
    print("Failed to load OAuth1 token")
    sys.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 = chilkat2.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 = chilkat2.HttpResponse()
success = http.HttpStr("POST",endpointUrl,xmlContent,"utf-8","application/xml",resp)
if (success == False):
    print(http.LastErrorText)
    sys.exit()

# A 200 status code indicates success.
statusCode = resp.StatusCode
print("statusCode = " + str(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 < 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>