/
Release notes - KODIAK Oms 2.7

Release notes - KODIAK Oms 2.7

This release has changes related to

New MiFID II requirements dealing with sending party information when creating orders.

New Trade Report protocol changes from INET



Service Changes

Mifid II Related Changes

New Enumeration : PartyRoleQualifier

public enum PartyRoleQualifier
{
  None = 0,
  Algorithm = 22,
  FirmOrLegalEntry = 23,
  NaturalPerson = 24
}

Base Object: Order

public int? MifidClientId { get; set; }
public string MifidClientShortCode { get; set; }
public PartyRoleQualifier? MifidClientQualifier { get; set; }
public string MifidClientDescription { get; set; }

public int? MifidExecutionDecisionMakerId { get; set; }
public string MifidExecutionDecisionMakerShortCode { get; set; }
public PartyRoleQualifier? MifidExecutionDecisionMakerQualifier { get; set; }
public string MifidExecutionDecisionMakerDescription { get; set; }

public int? MifidInvestmentDecisionMakerId { get; set; }
public string MifidInvestmentDecisionMakerShortCode { get; set; }
public PartyRoleQualifier? MifidInvestmentDecisionMakerQualifier { get; set; }
public string MifidInvestmentDecisionMakerDescription { get; set; }

Base Object: OrderInstruction

public int? MifidExecutionDecisionMakerId { get; set; }
public string MifidExecutionDecisionMakerShortCode { get; set; }
public PartyRoleQualifier? MifidExecutionDecisionMakerQualifier { get; set; }
public string MifidExecutionDecisionMakerDescription { get; set; }

public int? MifidInvestmentDecisionMakerId { get; set; }
public string MifidInvestmentDecisionMakerShortCode { get; set; }
public PartyRoleQualifier? MifidInvestmentDecisionMakerQualifier { get; set; }
public string MifidInvestmentDecisionMakerDescription { get; set; }

Base Object: Customer

public string LegalEntityIdentifier { get; set; } //Legal Identity Identifier code (LEI)

Base Object: User

public string SSN { get; set; }

Service: OrderInstructionService

Operation: CreateOrderInstruction

InputParameter: CreateOrderInstructionRequest

public int? MifidExecutionDecisionMakerId { get; set; }
public string MifidExecutionDecisionMakerShortCode { get; set; }
public PartyRoleQualifier? MifidExecutionDecisionMakerQualifier { get; set; }

public int? MifidInvestmentDecisionMakerId { get; set; }
public string MifidInvestmentDecisionMakerShortCode { get; set; }
public PartyRoleQualifier? MifidInvestmentDecisionMakerQualifier { get; set; }

Service: OrderEntryService

Operation: CreateOrder

InputParameter: CreateOrderRequest

public int? MifidClientId {get;set;}
public string MifidClientShortCode { get; set; }
public PartyRoleQualifier? MifidClientQualifier { get; set; }

public int? MifidExecutionDecisionMakerId { get; set; }
public string MifidExecutionDecisionMakerShortCode { get; set; }
public PartyRoleQualifier? MifidExecutionDecisionMakerQualifier { get; set; }

public int? MifidInvestmentDecisionMakerId { get; set; }
public string MifidInvestmentDecisionMakerShortCode { get; set; }
public PartyRoleQualifier? MifidInvestmentDecisionMakerQualifier { get; set; }

AverageTradeDirtyPrice Related Changes

Base Object: Allocation

public double? AverageTradeDirtyPrice { get; set; }

Service: OrderCalculationService

Operation: CalculateOrder

Input Parameter: CalculateOrderResponse

public Kodi.Kodiak.Services.DataContracts.Bonds.BondCalculation TradePriceBondCalculation { get; set; }

Service: AllocationService

Operation: CreateAllocation

Input Parameter: CreateAllocationRequest

public double? AverageTradeDirtyPrice { get; set; }

Service: OffExchangeTradeService

Operation: CreateOffExchangeTrade

InputParameter: CreateOffExchangeTradeRequest.CreateOffExchangeOrderRequest

public double? AverageTradeDirtyPrice { get; set; }

TradeReport Related Changes

These changes are related to internal processing

New Enumeration: ClearingAccountType

public enum ClearingAccountType
{
  [Description("Customer (client)")]
  Customer,
  [Description("Firm (House)")]
  Firm
}

New Enumeration: ExecutionMethod

public enum ExecutionMethod
{
  [Description("Unspecified")]
  Unspecified,
  [Description("Off Book Non-Automated")]
  OffBookNonAutomated,
  [Description("Off Book Automated")]
  OffBookAutomated
}

New Enumeration: TradeClearingInstructions

public enum TradeClearingInstructions
{
  [Description("Clear Against Central Counterparty")]
  ClearAgainstCentralCounterparty,
  [Description("Exclude From Central Counterparty")]
  ExcludeFromCentralCounterParty
}

New Enumeration: TradePriceCondition

public enum TradePriceCondition
{
  [Description("Special Dividend Trade")]
  SpecialDividendTrade
}



Database Changes.

Sql Server

alter table USERS ADD SSN VARCHAR(50) NULL;
alter table CUSTOMERS ADD LEI_CODE VARCHAR(20) NULL;
 
ALTER TABLE INSTRUCTIONS ADD MIFID_EXEC_DEC_ID INT NULL;
ALTER TABLE INSTRUCTIONS ADD MIFID_EXEC_DEC_SHORT_CODE varchar(10) NULL;
ALTER TABLE INSTRUCTIONS ADD MIFID_EXEC_DEC_QUALIFIER int NULL;
 
ALTER TABLE INSTRUCTIONS ADD MIFID_INVEST_DEC_ID INT NULL;
ALTER TABLE INSTRUCTIONS ADD MIFID_INVEST_DEC_SHORT_CODE varchar(10) NULL;
ALTER TABLE INSTRUCTIONS ADD MIFID_INVEST_DEC_QUALIFIER int NULL;
 
ALTER TABLE ORDERS ADD MIFID_CLIENT_ID INT NULL;
ALTER TABLE ORDERS ADD MIFID_CLIENT_SHORT_CODE varchar(10) NULL;
ALTER TABLE ORDERS ADD MIFID_CLIENT_QUALIFIER int NULL;
 
ALTER TABLE ORDERS ADD MIFID_EXEC_DEC_ID INT NULL;
ALTER TABLE ORDERS ADD MIFID_EXEC_DEC_SHORT_CODE varchar(10) NULL;
ALTER TABLE ORDERS ADD MIFID_EXEC_DEC_QUALIFIER int NULL;
 
ALTER TABLE ORDERS ADD MIFID_INVEST_DEC_ID INT NULL;
ALTER TABLE ORDERS ADD MIFID_INVEST_DEC_SHORT_CODE varchar(10) NULL;
ALTER TABLE ORDERS ADD MIFID_INVEST_DEC_QUALIFIER int NULL;
 
ALTER TABLE INSTRUCTIONS  WITH CHECK ADD  CONSTRAINT [FK_INSTRUCT_MIFID_EXEC] FOREIGN KEY(MIFID_EXEC_DEC_ID)
REFERENCES USERS (ID_USERS)
GO
 
ALTER TABLE INSTRUCTIONS  WITH CHECK ADD  CONSTRAINT [FK_INSTRUCT_MIFID_INVEST] FOREIGN KEY(MIFID_INVEST_DEC_ID)
REFERENCES USERS (ID_USERS)
GO
 
ALTER TABLE ORDERS  WITH CHECK ADD  CONSTRAINT [FK_ORDERS_MIFID_CLIENT] FOREIGN KEY(MIFID_CLIENT_ID)
REFERENCES CUSTOMERS (ID_CUSTOMERS)
GO
 
ALTER TABLE ORDERS  WITH CHECK ADD  CONSTRAINT [FK_ORDERS_MIFID_EXEC] FOREIGN KEY(MIFID_EXEC_DEC_ID)
REFERENCES USERS (ID_USERS)
GO
 
ALTER TABLE ORDERS  WITH CHECK ADD  CONSTRAINT [FK_ORDERS_MIFID_INVEST] FOREIGN KEY(MIFID_INVEST_DEC_ID)
REFERENCES USERS (ID_USERS)
GO
ALTER TABLE ALLOCATIONS ADD AVERAGE_TRADE_DIRTY_PRICE FLOAT NULL;
ALTER TABLE TRADE_REPORTS ADD REFERENCE_ID VARCHAR(32) NULL;
ALTER TABLE TRADE_REPORTS ADD CLIENT_REFERENCE VARCHAR(100) NULL;
ALTER TABLE TRADE_REPORTS ADD EXECUTION_METHOD INT NULL;
ALTER TABLE TRADE_REPORTS ADD CLEARING_ACCOUNT_TYPE INT NULL;
ALTER TABLE TRADE_REPORTS ADD TRADE_PRICE_CONDITION INT NULL;
ALTER TABLE TRADE_REPORTS ADD TRADE_CLEARING_INSTRUCTIONS INT NULL;
ALTER TABLE TRADE_REPORTS ADD CONNECTION_ID VARCHAR(255) NULL;	
ALTER TABLE TRADE_REPORTS ADD STATUS VARCHAR(100) NULL;

Oracle

alter table USERS ADD SSN VARCHAR2(50) NULL;
alter table CUSTOMERS ADD LEI_CODE VARCHAR2(20) NULL;
 
ALTER TABLE INSTRUCTIONS ADD MIFID_EXEC_DEC_ID NUMBER(10,0) NULL;
ALTER TABLE INSTRUCTIONS ADD MIFID_EXEC_DEC_SHORT_CODE varchar2(10) NULL;
ALTER TABLE INSTRUCTIONS ADD MIFID_EXEC_DEC_QUALIFIER NUMBER(10,0) NULL;
 
ALTER TABLE INSTRUCTIONS ADD MIFID_INVEST_DEC_ID NUMBER(10,0) NULL;
ALTER TABLE INSTRUCTIONS ADD MIFID_INVEST_DEC_SHORT_CODE varchar2(10) NULL;
ALTER TABLE INSTRUCTIONS ADD MIFID_INVEST_DEC_QUALIFIER NUMBER(10,0) NULL;
 
ALTER TABLE ORDERS ADD MIFID_CLIENT_ID NUMBER(10,0) NULL;
ALTER TABLE ORDERS ADD MIFID_CLIENT_SHORT_CODE varchar2(10) NULL;
ALTER TABLE ORDERS ADD MIFID_CLIENT_QUALIFIER int NULL;
 
ALTER TABLE ORDERS ADD MIFID_EXEC_DEC_ID NUMBER(10,0) NULL;
ALTER TABLE ORDERS ADD MIFID_EXEC_DEC_SHORT_CODE varchar2(10) NULL;
ALTER TABLE ORDERS ADD MIFID_EXEC_DEC_QUALIFIER int NULL;
 
ALTER TABLE ORDERS ADD MIFID_INVEST_DEC_ID NUMBER(10,0) NULL;
ALTER TABLE ORDERS ADD MIFID_INVEST_DEC_SHORT_CODE varchar2(10) NULL;
ALTER TABLE ORDERS ADD MIFID_INVEST_DEC_QUALIFIER NUMBER(10,0) NULL;
 
 
ALTER TABLE INSTRUCTIONS  
ADD  CONSTRAINT FK_INSTRUCT_MIFID_EXEC
FOREIGN KEY(MIFID_EXEC_DEC_ID)
REFERENCES USERS (ID_USERS)
/
 
ALTER TABLE INSTRUCTIONS  
ADD  CONSTRAINT FK_INSTRUCT_MIFID_INVEST 
FOREIGN KEY(MIFID_INVEST_DEC_ID)
REFERENCES USERS (ID_USERS)
/
 
ALTER TABLE ORDERS  
ADD  CONSTRAINT FK_ORDERS_MIFID_CLIENT
FOREIGN KEY(MIFID_CLIENT_ID)
REFERENCES CUSTOMERS (ID_CUSTOMERS)
/
 
ALTER TABLE ORDERS  
ADD  CONSTRAINT FK_ORDERS_MIFID_EXEC
FOREIGN KEY(MIFID_EXEC_DEC_ID)
REFERENCES USERS (ID_USERS)
/
 
ALTER TABLE ORDERS  
ADD  CONSTRAINT FK_ORDERS_MIFID_INVEST 
FOREIGN KEY(MIFID_INVEST_DEC_ID)
REFERENCES USERS (ID_USERS)
/
ALTER TABLE ALLOCATIONS ADD AVERAGE_TRADE_DIRTY_PRICE FLOAT NULL;
ALTER TABLE TRADE_REPORTS ADD REFERENCE_ID VARCHAR(32) NULL;
ALTER TABLE TRADE_REPORTS ADD CLIENT_REFERENCE VARCHAR(100) NULL;
ALTER TABLE TRADE_REPORTS ADD EXECUTION_METHOD INT NULL;
ALTER TABLE TRADE_REPORTS ADD CLEARING_ACCOUNT_TYPE INT NULL;
ALTER TABLE TRADE_REPORTS ADD TRADE_PRICE_CONDITION INT NULL;
ALTER TABLE TRADE_REPORTS ADD TRADE_CLEARING_INSTRUCTIONS INT NULL;
ALTER TABLE TRADE_REPORTS ADD CONNECTION_ID VARCHAR(255) NULL;	
ALTER TABLE TRADE_REPORTS ADD STATUS VARCHAR(100) NULL;

Proxy / Firewall changes

Trade Report Server

It must be open for port 443 on the following IP addresses 

Public IP addresses:

Production : ems-rb-public.livemarketdata.com, IP: 193.4.166.183
Staging : ems-staging.livemarketdata.com, IP: 193.4.166.182

Private IP addresses:

Production : rb-ems-prod-01.livemarketdata.com, IP: 172.28.153.7
Staging : rb-ems-staging-01.livemarketdata.com, IP: 172.28.153.6

OMS Server

Open for port 5000 to the OMS server in order for the OMS client to connect to the trade reporting server

Kodiak OMS Deployment Notes

1: Configure Admin X web.config
 
1: Configure<appSettings> urls
<add key = "Url" value= "http://URL" />
< add key= "UrlPrefix" value= "http://URL:8080/" />
< add key= "ActiveMQ" value= "http://URL:8161/admin/index.jsp" />
 
2: Configure<system.web> <authorization>			
 
 
2: Configure Client Kodi.Kodiak.Clients.Broker.exe.config
 
1: Configure<appSettings>
<!--Contains the url to the virtual directory of the machine running the Kodiak web services-->    
<add key = "UrlPrefix" value= "http://dev:8080/" />
< add key= "ServicePrincipalName" value= "" />
< add key= "ApiUrl" value= "https://api-s.livemarketdata.com" />
< add key= "AuthenticationUrl" value= "http://172.25.112.195:9090" />
< add key= "TradeReportServerUrl" value= "http://dev:5000" />
</ appSettings >
 
2: Mail settings and proxy settings could need to be changed.	
3: WCF Services could be different if the installation has special needs
 
3: Configure Services Server if needed
1: Mail settings and proxy settings could need to be changed.
2: WCF Services could be different if the installation has special needs
 
4: Configure Order Management Server
1: Mail settings and proxy settings could need to be changed.	
2: WCF Services could be different if the installation has special needs
 
5: Configure C:\\KodiakOrderEntryServer\Kodi.Kodiak.WindowsServices.OrderEntryServer.exe.config
1: Mail settings and proxy settings could need to be changed.	
2: WCF Services could be different if the installation has special needs
 
6: Configure C:\\KodiakOrderEntryServer\appSettings.config
 
Add the following
<add key = "TradeReportingServerUrl" value= "http://url:5000" />
< add key= "StatusPagePath" value= "status" />
 
Adapters.config should not need to be changed
Server.config should not need to be changed
 
Place any adapters into KodiakOrderEtnryServer and KodiakOrderManagementServer such as Kodi.Kodiak.Adapters.Libra.dll and pdb
 
Place current C:\\KodiakOrderEntryServer\DropConfig.txt and C:\\KodiakOrderEntryServer\TradeConfig.txt
Configure C:\\KodiakOrderEntryServer\DropConfig.txt and C:\\KodiakOrderEntryServer\TradeConfig.txt by commenting out Trade Report Servers





Related content