Java
Chilkat2 Java
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 Java Downloads
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.Http;
import com.chilkatsoft.chilkat2.HttpResponse;
import com.chilkatsoft.chilkat2.JsonObject;
import com.chilkatsoft.chilkat2.Xml;
public class ChilkatExample {
public static void main(String[] args) {
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Http http = new Http();
http.setOAuth1(true);
http.setOAuthVerifier("");
http.setOAuthConsumerKey("ETRADE_CONSUMER_KEY");
http.setOAuthConsumerSecret("ETRADE_CONSUMER_SECRET");
// Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2.
JsonObject json = new JsonObject();
try {
json.loadFile("qa_data/tokens/etrade.json");
} catch (ChilkatException e) {
System.out.println("Failed to load OAuth1 token");
return;
}
http.setOAuthToken(json.stringOf("oauth_token"));
http.setOAuthTokenSecret(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 xml = new Xml();
xml.setTag("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");
String xmlContent = xml.getXml();
String endpointUrl = "https://apisb.etrade.com/v1/accounts/{accountIdKey}/orders/preview";
HttpResponse resp = new HttpResponse();
try {
http.httpStr("POST", endpointUrl, xmlContent, "utf-8", "application/xml", resp);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// A 200 status code indicates success.
int statusCode = resp.getStatusCode();
System.out.println("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.getBodyStr());
int code = 0;
String description = "";
String v_type = "";
String orderType = xml.getChildContent("orderType");
String totalOrderValue = xml.getChildContent("totalOrderValue");
String orderTerm = xml.getChildContent("Order|orderTerm");
String priceType = xml.getChildContent("Order|priceType");
String limitPrice = xml.getChildContent("Order|limitPrice");
int stopPrice = xml.getChildIntValue("Order|stopPrice");
String marketSession = xml.getChildContent("Order|marketSession");
String allOrNone = xml.getChildContent("Order|allOrNone");
String symbol = xml.getChildContent("Order|Instrument|Product|symbol");
String securityType = xml.getChildContent("Order|Instrument|Product|securityType");
String symbolDescription = xml.getChildContent("Order|Instrument|symbolDescription");
String orderAction = xml.getChildContent("Order|Instrument|orderAction");
String quantityType = xml.getChildContent("Order|Instrument|quantityType");
int quantity = xml.getChildIntValue("Order|Instrument|quantity");
String cancelQuantity = xml.getChildContent("Order|Instrument|cancelQuantity");
String reserveOrder = xml.getChildContent("Order|Instrument|reserveOrder");
String reserveQuantity = xml.getChildContent("Order|Instrument|reserveQuantity");
int i = 0;
int count_i = xml.numChildrenHavingTag("Order|messages|Message");
while (i < count_i) {
xml.setI(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;
}
String egQual = xml.getChildContent("Order|egQual");
String estimatedCommission = xml.getChildContent("Order|estimatedCommission");
String estimatedTotalAmount = xml.getChildContent("Order|estimatedTotalAmount");
int netPrice = xml.getChildIntValue("Order|netPrice");
int netBid = xml.getChildIntValue("Order|netBid");
int netAsk = xml.getChildIntValue("Order|netAsk");
int gcd = xml.getChildIntValue("Order|gcd");
int previewId = xml.getChildIntValue("PreviewIds|previewId");
String previewTime = xml.getChildContent("previewTime");
String dstFlag = xml.getChildContent("dstFlag");
int accountId = xml.getChildIntValue("accountId");
int optionLevelCd = xml.getChildIntValue("optionLevelCd");
String marginLevelCd = xml.getChildContent("marginLevelCd");
String ahDisclosureFlag = xml.getChildContent("Disclosure|ahDisclosureFlag");
String aoDisclosureFlag = xml.getChildContent("Disclosure|aoDisclosureFlag");
String conditionalDisclosureFlag = xml.getChildContent("Disclosure|conditionalDisclosureFlag");
String ehDisclosureFlag = xml.getChildContent("Disclosure|ehDisclosureFlag");
String 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>
}
}