Java
Chilkat2 Java
ETrade Preview Order
See more ETrade Examples
The Preview Order API is used to submit an order request for preview before placing it.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 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 Authorization
JsonObject jsonToken = new JsonObject();
try {
jsonToken.loadFile("qa_data/tokens/etrade.json");
} catch (ChilkatException e) {
System.out.println("Failed to load OAuth1 token");
return;
}
http.setOAuthToken(jsonToken.stringOf("oauth_token"));
http.setOAuthTokenSecret(jsonToken.stringOf("oauth_token_secret"));
String sandboxUrl = "https://apisb.etrade.com/v1/accounts/{$accountIdKey}/orders/preview";
String liveUrl = "https://api.etrade.com/v1/accounts/{$accountIdKey}/orders/preview";
http.setUrlVar("accountIdKey", "6_Dpy0rmuQ9cu9IbTfvF2A");
// Send a POST with the following XML body
// 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");
xml.setEmitCompact(true);
HttpResponse resp = new HttpResponse();
try {
http.httpStr("POST", sandboxUrl, xml.getXml(), "utf-8", "application/xml", resp);
} catch (ChilkatException e) {
System.out.println(e.getLastErrorText());
return;
}
// Make sure a successful response was received.
if (resp.getStatusCode() > 200) {
System.out.println(resp.getStatusLine());
System.out.println(resp.getHeader());
System.out.println(resp.getBodyStr());
return;
}
// Sample XML response:
// Use this online tool to generate parsing code from sample XML:
// Generate Parsing Code from XML
// <?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>
// <cashBpDetails>
// <settled>
// <currentBp>5000.00</currentBp>
// <currentNetBp>5000.00</currentNetBp>
// <currentOor>0.00</currentOor>
// <currentOrderImpact>64.95</currentOrderImpact>
// <netBp>4935.05</netBp>
// </settled>
// <settledUnsettled>
// <currentBp>5000.00</currentBp>
// <currentNetBp>5000.00</currentNetBp>
// <currentOor>0.00</currentOor>
// <currentOrderImpact>64.95</currentOrderImpact>
// <netBp>4935.05</netBp>
// </settledUnsettled>
// </cashBpDetails>
// </PreviewOrderResponse>
xml.loadXml(resp.getBodyStr());
System.out.println(xml.getXml());
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 currentBp = xml.getChildContent("cashBpDetails|settled|currentBp");
String currentNetBp = xml.getChildContent("cashBpDetails|settled|currentNetBp");
String currentOor = xml.getChildContent("cashBpDetails|settled|currentOor");
String currentOrderImpact = xml.getChildContent("cashBpDetails|settled|currentOrderImpact");
String netBp = xml.getChildContent("cashBpDetails|settled|netBp");
currentBp = xml.getChildContent("cashBpDetails|settledUnsettled|currentBp");
currentNetBp = xml.getChildContent("cashBpDetails|settledUnsettled|currentNetBp");
currentOor = xml.getChildContent("cashBpDetails|settledUnsettled|currentOor");
currentOrderImpact = xml.getChildContent("cashBpDetails|settledUnsettled|currentOrderImpact");
netBp = xml.getChildContent("cashBpDetails|settledUnsettled|netBp");
System.out.println("Success.");
}
}