WhiteOak will be connecting to ABN AMRO through Fidessa to trade Futures on ICE and LME.

All the certification and tests are limited to ICE and LME exchanges only. New exchanges and their supported Order Types will need to be certified with Fidessa.


Supported Message Types

DirectionSBE Message TypeDescription
Client → MFNewOrderMultileg (AB)New order instruction
Client → MF

MultilegOrderCancelReplaceRequest (AC) 

Amend order instruction
Client → MF

OrderCancelRequest (F)

Cancel order instruction
Client → MF

ExecutionAck (BN)

Indicating DontKnow on a trade.

ExecutionAck message with ExecAckStatus = Rejected

MF → ClientExecutionReport (8)Execution Report indicating Accepted, Rejected, Replaced, Cancelled, Trade
MF → ClientOrderCancelReject (9)

Reject on an OrderCancelReplaceRequest or OrderCancelRequest


Supported Order Types and TIF

The following Order Types are certified with Fidessa 

Order Types
Market
Limit
Stop
Stop Limit
Iceberg


Time In Force
Good For Day
Good Till Cancelled
Immediate Or Cancel
Fill Or Kill
Good Until Date


Supported Order Types and Time in Force values on ICE and LME 

https://library.tradingtechnologies.com/user-setup/ice-supported-order-types.html

https://library.tradingtechnologies.com/user-setup/lme-supported-order-types.html



Testing in UAT:

Below are some notes to get started on testing in UAT up and running. The following products are available in UAT to test. 

Exchange symbols (Tag55).

ICE Europe

  1. Brent Crude = BRN
  2. GasOil = G
  3. Robusta Coffee = RC
  4. White Sugar = W
  5. London Cocoa = C


ICE US

  1. FCOJ = OJ
  2. Cotton No.2 = CT


LME

  1. AA = AAD
  2. Silver = AGD
  3. Aluminium = AHD
  4. Gold = AUD
  5. Copper = CAD
  6. Lead = PBD
  7. Nickel = NID
  8. Zinc = ZSD


Additional Notes:

ICE

Website: https://www.theice.com/

Look up the products at the website to get the details of ExchangeSymbol(Logical Name) , MIC code, Contract Size, Current trading price, Maturity Date.

Example link of Brent Crude : https://www.theice.com/products/219/Brent-Crude-Futures/data?marketId=5049351


LME

Website: https://www.lme.com/

Look up the products on the website for details such as exchange symbol, mic code = XLME, , contract size, current trading price are available.

Link for Aluminium : https://www.lme.com/Metals/Non-ferrous/Aluminium#tabIndex=0



Sample SBE Messages:

New Order :

{ header={ name=NewOrderMultileg, templateId=(301) "NewOrderMultileg", schemaId=5, version=18320, msgSeqNum=5, sendingTime="20200326-07:56:34.533000000", encodedLength=28, blockLength=332, messageStart=1179469389, messageLength=609 } , body={ NewOrderMultileg.TradingFlags(43): { PossDupFlag=false, }, NewOrderMultileg.OrigSendingTime(122)="20200326-07:56:34.532000000", NewOrderMultileg.TransactTime(60)="20200326-07:56:34.532000000", NewOrderMultileg.OrderRequestID(2422)="", NewOrderMultileg.QuoteID(117)="", NewOrderMultileg.ClOrdID(11)="TEST_AB_1_524819", NewOrderMultileg.OrdType(40)=Limit, NewOrderMultileg.TimeInForce(59)=DAY, NewOrderMultileg.Symbol(55)="G", NewOrderMultileg.SecurityType(167)=FUT, NewOrderMultileg.SecurityGroup(1151)="", NewOrderMultileg.Price(44).mantissa=5335, NewOrderMultileg.Price(44).exponent=-1, NewOrderMultileg.RegulatoryBodies(20021): { SEF=false, EMIR=true, MiFID=true, SFTR=true, }, NewOrderMultileg.HasExtendedOrderFields(20005)=0, NewOrderMultileg.NoPartyIDs(453)=3, NewOrderMultileg.NoPartyIDs[0].PartyRole(452)=ExecutionVenue, NewOrderMultileg.NoPartyIDs[0].PartyID(448)="IFEU", NewOrderMultileg.NoPartyIDs[1].PartyRole(452)=OrderOriginationTrader, NewOrderMultileg.NoPartyIDs[1].PartyID(448)="TESTTRADER", NewOrderMultileg.NoPartyIDs[2].PartyRole(452)=OrderOriginationFirm, NewOrderMultileg.NoPartyIDs[2].PartyID(448)="WOCF", NewOrderMultileg.NoLegs(555)=1, NewOrderMultileg.NoLegs[0].LegSecurityType(609)=FUT, NewOrderMultileg.NoLegs[0].LegSide(624)=Buy, NewOrderMultileg.NoLegs[0].LegCurrency(556)="USD", NewOrderMultileg.NoLegs[0].LegPrice(566).mantissa=5335, NewOrderMultileg.NoLegs[0].LegPrice(566).exponent=-1, NewOrderMultileg.NoLegs[0].LegOrderQty(685).mantissa=2, NewOrderMultileg.NoLegs[0].LegOrderQty(685).exponent=0, NewOrderMultileg.NoLegs[0].LegSettlType(587)=YYYYMM, NewOrderMultileg.NoLegs[0].LegSettlDate(588)="20200801" (raw:18475), NewOrderMultileg.NoLegs[0].HasLegNDFFields(20010)=0, NewOrderMultileg.NoLegs[0].NoLegAllocs(670)=1, NewOrderMultileg.NoLegs[0].NoLegAllocs[0].LegAllocAccount(671)="1515", NewOrderMultileg.NoLegs[0].NoLegAllocs[0].LegIndividualAllocID(672)="0", NewOrderMultileg.NoLegs[0].NoLegAllocs[0].LegAllocQty(673).mantissa=2, NewOrderMultileg.NoLegs[0].NoLegAllocs[0].LegAllocQty(673).exponent=0, NewOrderMultileg.NoLegs[0].NoLegAllocs[0].NoAllocRegulatoryFields(20080)=0, NewOrderMultileg.NoLegs[0].NoLegAllocs[0].NoAllocPassthruFields(20070)=0, NewOrderMultileg.NoLegs[0].NoLegRegulatoryFields(20060)=0, NewOrderMultileg.NoLegs[0].NoLegPassthruFields(20050)=0, NewOrderMultileg.NoBodyRegulatoryFields(20040)=2, NewOrderMultileg.NoBodyRegulatoryFields[0].BodyRegulatoryKey(20041)=MiFIDExecutingDecisionMakerAsAlgorithm, NewOrderMultileg.NoBodyRegulatoryFields[0].BodyRegulatoryValue(20042)="test", NewOrderMultileg.NoBodyRegulatoryFields[1].BodyRegulatoryKey(20041)=MiFIDTradingCapacity, NewOrderMultileg.NoBodyRegulatoryFields[1].BodyRegulatoryValue(20042)="DEAL", NewOrderMultileg.NoBodyPassthruFields(20030)=1, NewOrderMultileg.NoBodyPassthruFields[0].BodyPassthruKey(20031)="PositionEffect", NewOrderMultileg.NoBodyPassthruFields[0].BodyPassthruValue(20032)="C", NewOrderMultileg.NoHops(627)=0, NewOrderMultileg. } }


Amend:

{ header={ name=MultilegOrderCancelRep
laceRequest, templateId=(302) "MultilegOrderCancelReplaceRequest", schemaId=5, version=18320, msgSeqNum=6, sendingTime="20200324-10:57:31.147000000", encodedLength=28, blockLength=268, messageStart=
1179469389, messageLength=454 } , body={ MultilegOrderCancelReplaceRequest.TradingFlags(43): { PossDupFlag=false, }, MultilegOrderCancelReplaceRequest.OrigSendingTime(122)="20200324-10:57:31.14600
0000", MultilegOrderCancelReplaceRequest.TransactTime(60)="20200324-10:57:31.146000000", MultilegOrderCancelReplaceRequest.ClOrdID(11)="TEST_G_32_129731", MultilegOrderCancelReplaceRequest.OrigClOrd
ID(41)="TEST_AB_32_71303", MultilegOrderCancelReplaceRequest.OrderID(37)="00000017479XONC1", MultilegOrderCancelReplaceRequest.OrdType(40)=StopLimit, MultilegOrderCancelReplaceRequest.TimeInForce(59
)=DAY, MultilegOrderCancelReplaceRequest.Symbol(55)="G", MultilegOrderCancelReplaceRequest.SecurityType(167)=FUT, MultilegOrderCancelReplaceRequest.Price(44).mantissa=5475, MultilegOrderCancelReplac
eRequest.Price(44).exponent=-1, MultilegOrderCancelReplaceRequest.RegulatoryBodies(20021): { SEF=false, EMIR=false, MiFID=false, SFTR=false, }, MultilegOrderCancelReplaceRequest.HasExtendedOrde
rFields(20005)=1, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].EffectiveTime(168)="19700101-00:00:00.000000000", MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].ExpireTime
(126)="19700101-00:00:00.000000000", MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].ExposureDuration(1629)=NULL_UINT32, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].StopP
x(99).mantissa=5475, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].StopPx(99).exponent=-1, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].MinQty(110).mantissa=NULL_INT64,
MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].MinQty(110).exponent=0, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].MaxShow(210).mantissa=NULL_INT64, MultilegOrderCancelR
eplaceRequest.HasExtendedOrderFields[0].MaxShow(210).exponent=0, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].DiscretionOffsetValue(389).mantissa=NULL_INT64, MultilegOrderCancelReplac
eRequest.HasExtendedOrderFields[0].DiscretionOffsetValue(389).exponent=0, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].PegPriceType(1094)=, MultilegOrderCancelReplaceRequest.HasExtend
edOrderFields[0].PegOffsetValue(211).mantissa=NULL_INT64, MultilegOrderCancelReplaceRequest.HasExtendedOrderFields[0].PegOffsetValue(211).exponent=0, MultilegOrderCancelReplaceRequest.HasExtendedOrd
erFields[0].NoStrategyParameters(957)=0, MultilegOrderCancelReplaceRequest.NoPartyIDs(453)=3, MultilegOrderCancelReplaceRequest.NoPartyIDs[0].PartyRole(452)=ExecutionVenue, MultilegOrderCancelReplac
eRequest.NoPartyIDs[0].PartyID(448)="IFEU", MultilegOrderCancelReplaceRequest.NoPartyIDs[1].PartyRole(452)=OrderOriginationTrader, MultilegOrderCancelReplaceRequest.NoPartyIDs[1].PartyID(448)="TESTT
RADER", MultilegOrderCancelReplaceRequest.NoPartyIDs[2].PartyRole(452)=OrderOriginationFirm, MultilegOrderCancelReplaceRequest.NoPartyIDs[2].PartyID(448)="WOCF", MultilegOrderCancelReplaceRequest.No
Legs(555)=1, MultilegOrderCancelReplaceRequest.NoLegs[0].LegSecurityType(609)=, MultilegOrderCancelReplaceRequest.NoLegs[0].LegSide(624)=Buy, MultilegOrderCancelReplaceRequest.NoLegs[0].LegCurrency(
556)="", MultilegOrderCancelReplaceRequest.NoLegs[0].LegPrice(566).mantissa=5475, MultilegOrderCancelReplaceRequest.NoLegs[0].LegPrice(566).exponent=-1, MultilegOrderCancelReplaceRequest.NoLegs[0].L
egOrderQty(685).mantissa=2, MultilegOrderCancelReplaceRequest.NoLegs[0].LegOrderQty(685).exponent=0, MultilegOrderCancelReplaceRequest.NoLegs[0].LegSettlType(587)=YYYYMM, MultilegOrderCancelReplaceR
equest.NoLegs[0].LegSettlDate(588)="20200801" (raw:18475), MultilegOrderCancelReplaceRequest.NoLegs[0].HasLegNDFFields(20010)=0, MultilegOrderCancelReplaceRequest.NoLegs[0].NoLegRegulatoryFields(200
60)=0, MultilegOrderCancelReplaceRequest.NoLegs[0].NoLegPassthruFields(20050)=0, MultilegOrderCancelReplaceRequest.NoBodyRegulatoryFields(20040)=0, MultilegOrderCancelReplaceRequest.NoBodyPassthruFi
elds(20030)=1, MultilegOrderCancelReplaceRequest.NoBodyPassthruFields[0].BodyPassthruKey(20031)="PositionEffect", MultilegOrderCancelReplaceRequest.NoBodyPassthruFields[0].BodyPassthruValue(20032)="
C", MultilegOrderCancelReplaceRequest. } }


Cancel:

{ header={ name=OrderCancelRequest, te
mplateId=(303) "OrderCancelRequest", schemaId=5, version=18320, msgSeqNum=8, sendingTime="20200324-08:12:19.457000000", encodedLength=28, blockLength=248, messageStart=1179469389, messageLength=307
} , body={ OrderCancelRequest.TradingFlags(43): { PossDupFlag=false, }, OrderCancelRequest.OrigSendingTime(122)="20200324-08:12:19.457000000", OrderCancelRequest.TransactTime(60)="20200324-08:12:1
9.457000000", OrderCancelRequest.ClOrdID(11)="TEST_F_8_450296", OrderCancelRequest.OrigClOrdID(41)="TEST_AB_8_403812", OrderCancelRequest.OrderID(37)="00000017414XONC1", OrderCancelRequest.Symbol(55
)="G", OrderCancelRequest.NoPartyIDs(453)=3, OrderCancelRequest.NoPartyIDs[0].PartyRole(452)=ExecutionVenue, OrderCancelRequest.NoPartyIDs[0].PartyID(448)="IFEU", OrderCancelRequest.NoPartyIDs[1].Pa
rtyRole(452)=OrderOriginationTrader, OrderCancelRequest.NoPartyIDs[1].PartyID(448)="TESTTRADER", OrderCancelRequest.NoPartyIDs[2].PartyRole(452)=OrderOriginationFirm, OrderCancelRequest.NoPartyIDs[2
].PartyID(448)="WOCF", OrderCancelRequest. } }


ExecutionAck (DontKnow Trade):

{ header={ name=ExecutionAck, template
Id=(307) "ExecutionAck", schemaId=5, version=18320, msgSeqNum=10, sendingTime="20200324-08:05:54.228000000", encodedLength=28, blockLength=322, messageStart=1179469389, messageLength=430 } , body={
ExecutionAck.TradingFlags(43): { PossDupFlag=false, }, ExecutionAck.OrigSendingTime(122)="20200324-08:05:54.227000000", ExecutionAck.TransactTime(60)="20200324-08:05:54.227000000", ExecutionAck.Or
derRequestID(2422)="0", ExecutionAck.ClOrdID(11)="TEST_DK_6_219410", ExecutionAck.OrderID(37)="00000017411XONC1", ExecutionAck.ExecID(17)="00000010456XENC1", ExecutionAck.ExecAckStatus(1036)=Rejecte
d, ExecutionAck.Symbol(55)="G", ExecutionAck.SecurityType(167)=FUT, ExecutionAck.RegulatoryBodies(20021): { SEF=false, EMIR=false, MiFID=false, SFTR=false, }, ExecutionAck.NoPartyIDs(453)=0, Ex
ecutionAck.NoLegs(555)=1, ExecutionAck.NoLegs[0].LegSecurityType(609)=FUT, ExecutionAck.NoLegs[0].LegSide(624)=Buy, ExecutionAck.NoLegs[0].LegCurrency(556)="USD", ExecutionAck.NoLegs[0].LegLastPx(63
7).mantissa=NULL_INT64, ExecutionAck.NoLegs[0].LegLastPx(637).exponent=0, ExecutionAck.NoLegs[0].LegLastForwardPoints(1073).mantissa=NULL_INT64, ExecutionAck.NoLegs[0].LegLastForwardPoints(1073).exp
onent=0, ExecutionAck.NoLegs[0].LegOrderQty(685).mantissa=2, ExecutionAck.NoLegs[0].LegOrderQty(685).exponent=0, ExecutionAck.NoLegs[0].LegLastQty(1418).mantissa=NULL_INT64, ExecutionAck.NoLegs[0].L
egLastQty(1418).exponent=0, ExecutionAck.NoLegs[0].LegCumQty(20016).mantissa=NULL_INT64, ExecutionAck.NoLegs[0].LegCumQty(20016).exponent=0, ExecutionAck.NoLegs[0].LegLeavesQty(20017).mantissa=0, Ex
ecutionAck.NoLegs[0].LegLeavesQty(20017).exponent=0, ExecutionAck.NoLegs[0].LegSettlType(587)=SPT, ExecutionAck.NoLegs[0].LegSettlDate(588)="20200228" (raw:18320), ExecutionAck.NoLegs[0].HasLegNDFFi
elds(20010)=0, ExecutionAck.NoLegs[0].NoLegRegulatoryFields(20060)=0, ExecutionAck.NoLegs[0].NoLegPassthruFields(20050)=0, ExecutionAck.NoBodyRegulatoryFields(20040)=0, ExecutionAck.NoBodyPassthruFi
elds(20030)=0, ExecutionAck.NoHops(627)=0, ExecutionAck. } }