MultipleLegAccountingTrade True Rebook
How It Works
Tags from EagleML message are compared with tags from database for the trade with same originalTradeTicketNumber:
If at least one tag is different, then trade in database will be canceled by using cancel panel and then new trade will be loaded with data from EagleML message
If all tags are same, then load will be skipped, and record will be ignored in Message Center
How to Activate
There are two ways to activate Rebook logic for AccountingTrade:
Use allowAutoRebookFlag element in AccountingTrade EagleML message to activate Rebook logic only for this message:
<EagleML xmlns="http://www.eagleinvsys.com/2011/EagleML-2-0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:SchemaLocation="http://www.eagleinvsys.com/2011/EagleML-2-0 eagleml-ext-2-0.xsd" xsi:type="AccountingTransactionMessage"> <accountingTransaction> <header> <objectType>MultipleLegAccountingTrade</objectType> </header> <multipleLegAccountingTrade> [...] <allowAutoRebookFlag>Y</allowAutoRebookFlag> [...] </multipleLegAccountingTrade> </accountingTransaction> </EagleML>
Use global option W_ACCTTRADE_ALLOW_AUTOREBOOK that can be set in w_config_custom.inc file to activate Rebook logic for all AccountingTrade messages:
<CODE> :W_ACCTTRADE_ALLOW_AUTOREBOOK: := 'Y'; </CODE>
Supported buySellIndicators
The next set of buySellIndicators supports Rebook logic: BUY, SELL, BUYCVR, SHORTSELL, TRADEFWD, OPENSWAP, CLOSESWAP, DEL, REC, WROFF.
Tags Compared in Rebook Logic
Element | Tag | EagleML Xpath |
---|---|---|
tradeDate | 35 | EagleML/accountingTransaction/multipleLegAccountingTrade/tradeDate |
settlementDate | 37 | EagleML/accountingTransaction/multipleLegAccountingTrade/settlementDate |
sharesParQuantity | 40 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/sharesParQuantity |
price | 45 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/price |
commission | 47 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/commission |
secFee | 48 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/secFee |
taxAmount | 46 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/taxAmount |
stampDutyTax | 51 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/stampDutyTax |
otherFee | 3752 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/otherFee |
clearingBrokerCode | 1237 | EagleML/accountingTransaction/multipleLegAccountingTrade/clearingBrokerCode |
tradedInterest | 49 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/tradedInterest |
buySellIndicator | 55 | EagleML/accountingTransaction/multipleLegAccountingTrade/buySellIndicator |
brokerCode | 88 | EagleML/accountingTransaction/multipleLegAccountingTrade/brokerCode |
principal | 165 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/principal |
settlementCurrency | 63 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/settlementCurrency |
currentFactor | 91 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/currentFactor |
originalFace | 41 | EagleML/accountingTransaction/multipleLegAccountingTrade/contractTradeLeg/originalFace |
NOTE: Tags 91 and 41 are compared only when Sink Flag (tag 1780) in Security is set to Y.