Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Perl) ETrade v1 Preview OrderGets the order details for a selected brokerage account based on the search criteria provided.
use chilkat(); # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $http = chilkat::CkHttp->new(); $http->put_OAuth1(1); $http->put_OAuthVerifier(""); $http->put_OAuthConsumerKey("ETRADE_CONSUMER_KEY"); $http->put_OAuthConsumerSecret("ETRADE_CONSUMER_SECRET"); # Load the access token previously obtained via the OAuth1 3-Legged Authorization examples Step1 and Step2. $json = chilkat::CkJsonObject->new(); $success = $json->LoadFile("qa_data/tokens/etrade.json"); if ($success != 1) { print "Failed to load OAuth1 token" . "\r\n"; exit; } $http->put_OAuthToken($json->stringOf("oauth_token")); $http->put_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 = chilkat::CkXml->new(); $xml->put_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 is a HttpResponse $resp = $http->PostXml($endpointUrl,$xmlContent,"utf-8"); if ($http->get_LastMethodSuccess() != 1) { print $http->lastErrorText() . "\r\n"; exit; } # A 200 status code indicates success. $statusCode = $resp->get_StatusCode(); print "statusCode = " . $statusCode . "\r\n"; # 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->put_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> |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.